Function at 0x496400
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4d79b9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x84
mov eax, dword [esp + 0x94]
push ebp
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x2c], ecx
je 0x496ceb
cmp byte [eax], 0x80
push ebx
mov ebx, eax
mov dword [esp + 0x34], ebx
jae 0x49645c
lea ecx, [ecx]
movsx eax, byte [ebx]
push eax
call fcn.004be03a
add esp, 4
test eax, eax
je 0x496458
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x80
jb 0x496440
mov dword [esp + 0x34], ebx
push edi
xor edi, edi
push esi
mov esi, dword [edi*8 + 0x6cc4cc]
call fcn.0048da70
cmp eax, ebp
je 0x49647b
mov edx, dword [eax]
push ebp
push esi
mov ecx, eax
call dword [edx + 8]
jmp 0x49647d
mov eax, esi
cmp eax, ebp
jne 0x496486
mov eax, 0x4e34b4
mov ecx, dword [0x504ebc]
push ecx
push ebp
push eax
lea ecx, [esp + 0x24]
call fcn.0048b8c0
mov edx, dword [esp + 0x18]
mov esi, dword [edx - 8]
mov eax, ebx
mov dword [esp + 0x9c], ebp
lea edx, [eax + 1]
jmp 0x4964b0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4964b0
sub eax, edx
cmp eax, esi
jb 0x49650a
push esi
push ebp
push ebx
lea ecx, [esp + 0x20]
call fcn.0048b8c0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xa0], 1
call fcn.0048b4f0
test eax, eax
je 0x49664d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov byte [esp + 0x9c], 0
je 0x49650a
dec eax
cmp eax, ebp
mov dword [ecx], eax
jne 0x49650a
call fcn.0048a9b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov dword [esp + 0x9c], 0xffffffff
je 0x496530
dec eax
cmp eax, ebp
mov dword [ecx], eax
jne 0x496530
call fcn.0048a9b0
inc edi
cmp edi, 3
jb 0x496460
mov eax, dword [str..____t_r_n]
xor esi, esi
cmp eax, esi
mov byte [esp + 0x10], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov dword [esp + 0x40], 7
mov dword [esp + 0x18], esi
mov ebp, 0xc
mov dword [esp + 0x14], esi
mov dword [esp + 0x4c], esi
jne 0x496577
mov eax, 0x4e34b4
mov ecx, dword [0x504ebc]
push ecx
push esi
push eax
lea ecx, [esp + 0x54]
call fcn.0048b8c0
mov edx, dword [0x504ebc]
push edx
push esi
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0xa8], 2
call fcn.0048b8c0
push esi
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x84]
mov byte [esp + 0xa8], 3
call fcn.004a1a90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov byte [esp + 0x9c], 6
je 0x4965e8
dec eax
cmp eax, esi
mov dword [ecx], eax
jne 0x4965e8
call fcn.0048a9b0
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov bl, 5
mov byte [esp + 0x9c], bl
je 0x49660a
dec eax
mov dword [ecx], eax
jne 0x49660a
call fcn.0048a9b0
lea ecx, [esp + 0x78]
call fcn.004a17e0
test al, al
je 0x4968bf
jmp 0x496620
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x7c]
call fcn.004a18d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 8]
test ecx, ecx
mov byte [esp + 0x9c], 7
jne 0x496703
lea ecx, [eax - 0xc]
jmp 0x496864
lea ecx, [esp + 0x24]
add ebx, esi
mov esi, dword [edi*8 + 0x6cc4d0]
push ecx
call fcn.00401af3
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00494030
cmp esi, ebp
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [eax], edx
mov dword [eax + 4], ecx
je 0x49669d
lea edx, [esp + 0x24]
push edx
mov ecx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], esi
call fcn.004940a0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov byte [esp + 0x9c], 0
je 0x4966c0
dec eax
cmp eax, ebp
mov dword [ecx], eax
jne 0x4966c0
call fcn.0048a9b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov dword [esp + 0x9c], 0xffffffff
je 0x4966e6
dec eax
cmp eax, ebp
mov dword [ecx], eax
jne 0x4966e6
call fcn.0048a9b0
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
add esp, 0x90
ret 4
push 0xa
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
call fcn.0048b640
test al, al
je 0x4967b3
mov cl, byte [esp + 0x12]
test cl, cl
mov eax, dword [esp + 0x50]
jne 0x496730
test eax, eax
jbe 0x496730
cmp eax, 0xc
jbe 0x4967a6
mov dl, byte [esp + 0x10]
test dl, dl
jne 0x496780
test cl, cl
je 0x496770
mov al, byte [esp + 0x11]
test al, al
mov eax, dword [esp + 0x14]
jne 0x49674d
mov eax, 0x7b8
push 0
push eax
call fcn.004938c0
movzx eax, al
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x58]
lea edx, [ebp + ecx*4]
mov cx, word [edx*2 + 0x6cc444]
add esp, 8
jmp 0x496775
mov ecx, 0x1f
test eax, eax
je 0x496780
movzx ecx, cx
cmp eax, ecx
jbe 0x49679d
mov cl, byte [esp + 0x11]
test cl, cl
jne 0x49688f
movzx edx, ax
mov byte [esp + 0x11], 1
mov dword [esp + 0x14], edx
jmp 0x496852
mov dword [esp + 0x18], eax
jmp 0x49684d
mov byte [esp + 0x12], 1
lea ebp, [eax - 1]
jmp 0x496852
push 3
lea edi, [esp + 0x20]
call fcn.00493670
add esp, 4
cmp eax, 0xc
je 0x4967ed
mov cl, byte [esp + 0x12]
test cl, cl
je 0x4967e4
mov cl, byte [esp + 0x10]
test cl, cl
jne 0x49688f
inc ebp
mov dword [esp + 0x18], ebp
mov byte [esp + 0x10], 1
mov ebp, eax
mov byte [esp + 0x12], 1
jmp 0x496852
push 3
lea edi, [esp + 0x20]
call fcn.00493760
add esp, 4
cmp eax, 7
mov dword [esp + 0x40], eax
je 0x496817
mov al, byte [esp + 0x13]
test al, al
jne 0x49688f
mov byte [esp + 0x13], 1
jmp 0x496852
xor esi, esi
lea esp, [esp]
mov eax, dword [esi*4 + 0x6cc478]
push eax
lea ecx, [esp + 0x20]
call fcn.0048b510
test eax, eax
je 0x49683b
inc esi
cmp esi, 0x14
jb 0x496820
cmp esi, 0x14
je 0x49688f
mov al, byte [esp + 0x10]
test al, al
jne 0x49688f
inc esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x10], 1
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
mov eax, dword [ecx]
cmp eax, 0xffffffff
mov byte [esp + 0x9c], bl
je 0x49687c
dec eax
mov dword [ecx], eax
jne 0x49687c
call fcn.0048a9b0
lea ecx, [esp + 0x78]
call fcn.004a17e0
test al, al
jne 0x496620
jmp 0x4968af
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
cmp eax, 0xffffffff
mov byte [esp + 0x9c], bl
je 0x4968af
dec eax
mov dword [ecx], eax
jne 0x4968af
call fcn.0048a9b0
mov al, byte [esp + 0x10]
test al, al
mov dl, byte [esp + 0x13]
jne 0x4968da
test dl, dl
jne 0x4968de
lea ecx, [esp + 0x78]
mov dword [esp + 0x9c], 0xffffffff
call fcn.00412780
xor eax, eax
jmp 0x4966e8
test dl, dl
je 0x496943
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x4968f4
mov bl, byte [esp + 0x11]
test bl, bl
jne 0x4968f4
test al, al
je 0x496904
jmp 0x4968bf
test al, al
je 0x4968bf
test cl, cl
je 0x4968bf
mov bl, byte [esp + 0x11]
test bl, bl
je 0x4968bf
test dl, dl
je 0x496947
test cl, cl
jne 0x496a05
call fcn.004920c0
neg eax
xor edi, edi
push edi
mov dword [esp + 0x24], eax
call fcn.004be9cd
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x3c], eax
call fcn.004c0580
add esp, 8
cmp eax, edi
jne 0x496a3d
xor eax, eax
jmp 0x496a50
mov cl, byte [esp + 0x12]
mov dl, byte [esp + 0x11]
test dl, dl
je 0x496908
test al, al
je 0x4969fd
test cl, cl
jne 0x496a05
mov eax, dword [esp + 0x18]
cmp ax, 0xc
ja 0x4968bf
mov esi, dword [esp + 0x14]
movzx ebp, ax
xor edi, edi
dec ebp
cmp esi, edi
jle 0x4968bf
call fcn.004920c0
lea edx, [esp + 0x24]
neg eax
push edx
mov dword [esp + 0x18], eax
call fcn.00401af3
add esp, 4
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x58]
push edx
mov ecx, eax
call fcn.004930a0
mov ecx, dword [eax + 0x10]
mov eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x4969b9
dec eax
or eax, 0xfffffffc
inc eax
jne 0x4969db
mov eax, ecx
cdq
mov ebx, 0x64
idiv ebx
test edx, edx
jne 0x4969d7
mov eax, ecx
cdq
mov ecx, 0x190
idiv ecx
test edx, edx
jne 0x4969db
mov al, 1
jmp 0x4969dd
xor al, al
movzx eax, al
lea edx, [eax + eax*2]
lea eax, [ebp + edx*4]
movzx ecx, word [eax*2 + 0x6cc444]
cmp esi, ecx
jg 0x4968bf
mov dword [esp + 0x18], esi
jmp 0x496a13
test cl, cl
je 0x4968bf
xor edi, edi
mov al, byte [esp + 0x11]
test al, al
jne 0x496ab7
call fcn.004920c0
neg eax
push edi
mov dword [esp + 0x38], eax
call fcn.004be9cd
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], eax
call fcn.004c0580
add esp, 8
cmp eax, edi
jne 0x496a7a
xor eax, eax
jmp 0x496a8d
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
xor edi, edi
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.004927a0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004930a0
mov ebp, dword [eax + 0xc]
jmp 0x496a07
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
xor edi, edi
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.004927a0
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004930a0
mov esi, dword [eax + 0x10]
jmp 0x496abb
mov esi, dword [esp + 0x14]
mov al, byte [esp + 0x10]
test al, al
je 0x496bc5
cmp esi, 0xffff8000
mov ecx, esi
jne 0x496afd
call fcn.004920c0
lea edx, [esp + 0x24]
neg eax
push edx
mov dword [esp + 0x24], eax
call fcn.00401af3
add esp, 4
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x58]
push edx
mov ecx, eax
call fcn.004930a0
mov ecx, dword [eax + 0x10]
mov eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x496b0b
dec eax
or eax, 0xfffffffc
inc eax
jne 0x496b2d
mov eax, ecx
cdq
mov ebx, 0x64
idiv ebx
test edx, edx
jne 0x496b29
mov eax, ecx
cdq
mov ecx, 0x190
idiv ecx
test edx, edx
jne 0x496b2d
mov al, 1
jmp 0x496b2f
xor al, al
movzx eax, al
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x18]
lea ecx, [ebp + edx*4]
cmp ax, word [ecx*2 + 0x6cc444]
ja 0x4968bf
push edi
push edi
push edi
push edi
push esi
mov esi, dword [esp + 0x4c]
push ebp
push eax
mov ecx, esi
call fcn.00493ce0
mov al, byte [esp + 0x13]
test al, al
je 0x496ca9
call fcn.004920c0
neg eax
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x58]
push eax
mov ecx, esi
call fcn.004930a0
mov esi, eax
cmp word [esi + 0x18], 7
jne 0x496bb2
mov eax, dword [esi + 0x10]
xor ecx, ecx
mov cx, word [esi + 8]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.00492100
add eax, 2
cdq
mov ecx, 7
add esp, 4
idiv ecx
mov word [esi + 0x18], dx
movzx edx, word [esi + 0x18]
cmp edx, dword [esp + 0x40]
je 0x496ca9
jmp 0x4968bf
push edi
call fcn.004be9cd
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
call fcn.004c0580
add esp, 8
cmp eax, edi
jne 0x496be4
xor eax, eax
jmp 0x496bf7
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
xor edi, edi
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.004927a0
mov al, byte [0x6e3e14]
test al, al
jne 0x496c36
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], edi
call fcn.004c0580
mov eax, dword [0x6ce400]
add esp, 4
mov byte [0x6e3e14], 1
mov dword [0x6cc3c8], eax
jmp 0x496c3b
mov eax, dword [0x6cc3c8]
neg eax
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x2c]
call fcn.004930a0
cmp word [esp + 0x5a], di
jne 0x496c70
cmp word [esp + 0x58], di
jne 0x496c70
cmp word [esp + 0x56], di
jne 0x496c70
cmp word [esp + 0x54], di
je 0x496c8c
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
push edi
push edi
push edi
push edi
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
call fcn.00493ce0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
push 1
push edx
mov dword [ecx + 4], eax
call fcn.00495430
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
add esi, eax
cmp eax, edi
je 0x496cd0
movsx eax, byte [esi - 1]
mov ecx, dword [str..____t_r_n]
push eax
push ecx
call fcn.004bdda0
add esp, 8
test eax, eax
je 0x496cd0
dec esi
lea ecx, [esp + 0x78]
mov dword [esp + 0x9c], 0xffffffff
call fcn.00412780
mov eax, esi
jmp 0x4966e8
mov ecx, dword [esp + 0x88]
xor eax, eax
pop ebp
mov dword fs:[0], ecx
add esp, 0x90
ret 4