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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4ec3b4
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x670f1c]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
mov dword [esi + 0x11f6], eax
mov dword [esi + 0x11fa], eax
movzx eax, word [ebp + 0x14]
cmp eax, 5
jg 0x491ed7
je 0x491ee2
sub eax, 3
je 0x491ee2
sub eax, 1
jne 0x492183
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push eax
push ebx
call fcn.0045ddc0
lea ecx, [ebp + 0x10]
push ecx
lea ecx, [esi + 0xbc6]
mov edi, eax
mov dword [esp + 0x3c], edx
call fcn.00492cb0
mov edx, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edx
call fcn.0045f080
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x64]
mov dword [esp + 0x78], ecx
push edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x78], eax
call fcn.0045f080
lea eax, [ebp + 0x10]
lea edi, [esi + 0xbd2]
push eax
mov ecx, edi
mov byte [esp + 0x9c], 1
call fcn.00493450
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x4c]
push edx
mov ecx, eax
call fcn.004928f0
lea ecx, [esp + 0x74]
mov byte [esp + 0x98], 0
call fcn.004450c0
lea ecx, [esp + 0x5c]
mov dword [esp + 0x98], 0xffffffff
call fcn.004450c0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push ecx
push edx
movzx ecx, bx
push ecx
push 0x507970
lea eax, [esi + 0x142]
push 2
push eax
call fcn.00418e80
add esp, 0x18
cmp bx, word [esi + 0x55a]
jne 0x491ea5
mov edx, dword [ebp + 0xc]
cmp edx, dword [esi + 0x560]
jne 0x491ea5
lea eax, [ebp + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x18], 0
call fcn.00493450
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov ebx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ebx
lea ebx, [ebx]
lea edx, [ebp + 0x10]
lea edi, [esi + 0xbd2]
push edx
mov ecx, edi
call fcn.00493450
test ebx, ebx
mov ecx, dword [eax + 4]
mov dword [esp + 0x44], ecx
je 0x491980
cmp ebx, eax
je 0x491985
call fcn.004c000c
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x44]
je 0x491cd9
test ebx, ebx
jne 0x49199c
call fcn.004c000c
mov eax, dword [esp + 0x30]
cmp eax, dword [ebx + 4]
jne 0x4919aa
call fcn.004c000c
mov eax, dword [esp + 0x30]
add eax, 0x10
push eax
lea ecx, [ebp + 0x10]
push ecx
mov ecx, edi
call fcn.00493450
mov ecx, eax
call fcn.004922a0
cmp eax, 1
jbe 0x491cc7
cmp dword [esi + 0xb78], 0
je 0x491c90
lea ecx, [esp + 0x2c]
call fcn.00474610
mov ecx, dword [eax + 0xc]
mov ebx, dword [ecx]
add eax, 8
mov edi, eax
mov eax, dword [esp + 0x30]
add eax, 0x18
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
cmp edx, dword [eax + 4]
jne 0x491a12
call fcn.004c000c
test edi, edi
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov dword [esp + 0x4c], ecx
je 0x491a25
cmp edi, eax
je 0x491a2a
call fcn.004c000c
cmp ebx, dword [esp + 0x4c]
je 0x491c90
test edi, edi
jne 0x491a3d
call fcn.004c000c
cmp ebx, dword [edi + 4]
jne 0x491a47
call fcn.004c000c
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0xc]
mov ax, word [eax + 4]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esi + 0xb78]
call fcn.004749b0
mov ecx, dword [esi + 0xb78]
lea edx, [esp + 0x54]
push edx
call fcn.00474860
mov edi, eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x491a8a
cmp eax, dword [edi]
je 0x491a8f
call fcn.004c000c
mov eax, dword [esp + 0x38]
cmp eax, dword [edi + 4]
je 0x491c7a
lea ecx, [esp + 0x34]
call fcn.004108b0
mov edi, dword [eax + 8]
test edi, edi
je 0x491c7a
movzx eax, word [edi + 0x10]
movzx eax, ax
sub eax, 2
je 0x491bbb
sub eax, 1
je 0x491b1d
sub eax, 1
je 0x491bbb
push 4
mov ecx, edi
call fcn.00441970
test ax, ax
jne 0x491c7a
lea ecx, [esp + 0x24]
call fcn.004108b0
mov edx, dword [eax]
mov ax, word [eax + 4]
push 4
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, dword [esi + 0xb78]
call fcn.00476210
lea ecx, [esp + 0x24]
call fcn.00440430
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jmp 0x491a00
cmp byte [esi + 0xb6c], 0
jne 0x491b34
push 4
mov ecx, edi
call fcn.00441970
test ax, ax
je 0x491ae0
lea ecx, [esp + 0x24]
call fcn.004108b0
mov ecx, dword [eax + 2]
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [esp + 0x1c]
call fcn.00410de0
movzx edi, word [edi + 0x10]
lea ecx, [esp + 0x24]
mov dword [esp + 0x98], 2
call fcn.004108b0
movzx eax, word [eax]
movzx edx, di
push 4
push edx
push eax
lea ecx, [esp + 0x24]
call fcn.00410900
push eax
lea eax, [esi + 0x142]
push 0x5079c8
push eax
call fcn.00418e60
add esp, 0x18
lea ecx, [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
call fcn.00406960
lea ecx, [esp + 0x24]
call fcn.00440430
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jmp 0x491a00
push 4
mov ecx, edi
call fcn.00441970
test ax, ax
jne 0x491c7a
cmp byte [esi + 0xb6c], al
lea ecx, [esp + 0x24]
jne 0x491bfe
call fcn.004108b0
mov edx, dword [eax]
mov ax, word [eax + 4]
push 4
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov word [ecx + 4], ax
mov ecx, dword [esi + 0xb78]
call fcn.00476210
jmp 0x491c6b
call fcn.004108b0
mov ecx, dword [eax + 2]
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [esp + 0x20]
call fcn.00410de0
movzx edi, word [edi + 0x10]
lea ecx, [esp + 0x24]
mov dword [esp + 0x98], 3
call fcn.004108b0
movzx eax, word [eax]
movzx edx, di
push 4
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.00410900
push eax
lea eax, [esi + 0x142]
push 0x507a48
push eax
call fcn.00418e60
add esp, 0x18
lea ecx, [esp + 0x1c]
mov dword [esp + 0x98], 0xffffffff
call fcn.00406960
mov eax, dword [esi + 0x1176]
test eax, eax
je 0x491c7a
add word [eax + 0x24], 1
lea ecx, [esp + 0x24]
call fcn.00440430
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jmp 0x491a00
call fcn.00419310
mov eax, dword [eax + 0x162]
and eax, 0x200
xor ecx, ecx
or eax, ecx
je 0x491cb6
push 0x507ac8
lea ecx, [esi - 0x1916a]
call fcn.00436c50
cmp byte [esi + 0xb6c], 0
je 0x491cc7
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2c]
call fcn.00440300
mov ebx, dword [esp + 0x2c]
jmp 0x491960
cmp dword [esp + 0x14], 0
jne 0x491d1d
cmp byte [esi + 0xb6c], 0
je 0x491d04
lea ecx, [ebp + 0x10]
push ecx
mov ecx, edi
call fcn.00493450
cmp dword [eax + 8], 2
jb 0x491d1d
mov dword [esp + 0x14], 2
jmp 0x491d1d
lea edx, [ebp + 0x10]
push edx
mov ecx, edi
call fcn.00493450
cmp dword [eax + 8], 3
jb 0x491d1d
mov dword [esp + 0x14], 1
mov ecx, dword [ebp + 0x18]
mov edx, dword [esi + 0x5d0]
mov edi, dword [esi + 0x5cc]
xor eax, eax
sub dword [esi + 0x3aa], ecx
sbb dword [esi + 0x3ae], eax
sub dword [esi + 0x5b4], ecx
sbb dword [esi + 0x5b8], eax
add dword [esi + 0x510], ecx
adc dword [esi + 0x514], eax
cmp edx, eax
jl 0x491d6e
jg 0x491d5c
cmp edi, ecx
jbe 0x491d6e
sub edi, ecx
sbb edx, eax
mov dword [esi + 0x5cc], edi
mov dword [esi + 0x5d0], edx
jmp 0x491d7a
sub dword [esi + 0x5c4], ecx
sbb dword [esi + 0x5c8], eax
mov ecx, dword [esi + 0x504]
test ecx, ecx
mov edi, dword [ebp + 0x10]
lea ebx, [esi + 0x500]
je 0x491db6
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x491db6
push edi
mov ecx, ebx
call fcn.00490170
push edi
mov ecx, ebx
mov dword [eax + 4], 0
call fcn.00490170
mov dword [eax], 0
mov eax, dword [esp + 0x14]
sub eax, 0
je 0x491e5b
sub eax, 1
je 0x491e20
sub eax, 1
jne 0x491e70
push 2
push edi
push 0x507bc0
lea eax, [esi + 0x142]
push 2
push eax
call fcn.00418e80
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add esp, 0x14
push eax
push ecx
mov ecx, esi
call fcn.0043fec0
mov ebx, eax
test ebx, ebx
je 0x491e70
mov ecx, ebx
call fcn.004402a0
cmp eax, edi
jbe 0x491e70
push edi
mov ecx, ebx
call fcn.004402c0
test eax, eax
je 0x491e70
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x491e70
push 3
push edi
push 0x507b58
lea eax, [esi + 0x142]
push 2
push eax
call fcn.00418e80
add esp, 0x14
push 0x11
lea ecx, [esi - 0x1916a]
mov dword [esi + 0x54c], 4
mov word [esi + 0xb60], 2
call fcn.00482e40
jmp 0x491e70
push edi
lea eax, [esi + 0x142]
push 0x507b18
push eax
call fcn.00418e60
add esp, 0xc
mov ecx, dword [esi + 0xd14]
test ecx, ecx
je 0x491e82
push 0
push edi
call fcn.00470370
lea ecx, [esi - 0x1916a]
call fcn.00436d30
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp + 0xc]
push edx
push ebx
mov ecx, esi
call fcn.0045d040
test eax, eax
je 0x492183
mov word [eax + 0x12], 6
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x1000
jne 0x492183
mov ecx, dword [ebp + 0xc]
mov ax, word [ebp + 8]
lea edx, [esp + 0x34]
mov dword [esp + 0x36], ecx
xor ebx, ebx
push edx
mov ecx, esi
mov word [esp + 0x3e], bx
mov word [esp + 0x38], ax
call fcn.0045dc50
mov dword [esp + 0x14], eax
lea eax, [ebp + 0x10]
push eax
lea ecx, [esp + 0x30]
lea edi, [esi + 0xbd2]
push ecx
mov ecx, edi
call fcn.00492300
cmp dword [esp + 0x2c], ebx
mov edx, dword [edi + 4]
mov dword [esp + 0x4c], edx
je 0x491f32
cmp dword [esp + 0x2c], edi
je 0x491f37
call fcn.004c000c
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x4c]
je 0x491fd8
cmp dword [esp + 0x2c], ebx
jne 0x491f50
call fcn.004c000c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 4]
jne 0x491f62
call fcn.004c000c
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x18], 2
jb 0x491f99
cmp dword [esp + 0x14], ebx
je 0x491f99
mov ecx, dword [esp + 0x14]
call fcn.004402a0
cmp eax, dword [ebp + 0x10]
jbe 0x491f99
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004402c0
mov ebx, eax
test ebx, ebx
je 0x491f99
mov word [ebx + 0x18], 5
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, edi
call fcn.004471c0
test ebx, ebx
je 0x491fd8
movzx eax, word [ebx + 0x18]
cmp ax, 5
jne 0x491fd8
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
movzx ecx, word [ebp + 8]
push edx
push eax
push ecx
push 0x507c60
lea edx, [esi + 0x142]
push edx
jmp 0x491ff1
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
movzx edx, word [ebp + 8]
push eax
push ecx
push edx
push 0x507cd0
lea eax, [esi + 0x142]
push eax
call fcn.00418ea0
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
add esp, 0x14
push ecx
lea edi, [esi - 0x1916a]
push ebx
mov ecx, edi
call fcn.00437d10
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x44], esp
xor edx, edx
push 0xffffffffffffffff
push edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], edx
push eax
mov word [ecx + 4], dx
call fcn.00401640
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, dword [ebp + 0xc]
push ecx
push ebx
mov ecx, esi
call fcn.0045d040
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x4920c7
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
sub esp, 0x1c
mov ebx, esp
mov dword [esp + 0x38], esp
push edx
push eax
mov ecx, edi
call fcn.00437d10
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
xor edx, edx
push 0xffffffffffffffff
push edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], edx
push eax
mov word [ecx + 4], dx
call fcn.00401640
push ebx
mov ecx, esi
call fcn.0045fdf0
mov ebx, dword [esp + 0x3c]
sub esp, 0x1c
lea edx, [ebx + 0x224]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov dword [esp + 0xd4], 4
call fcn.00401430
mov ecx, edi
mov dword [esp + 0xd0], 0xffffffff
call fcn.00480c10
mov ax, word [ebp + 8]
cmp ax, word [esi + 0x55a]
jne 0x492183
mov edi, dword [ebp + 0xc]
cmp edi, dword [esi + 0x560]
jne 0x492183
movzx eax, word [ebx + 0x12]
cmp ax, 4
je 0x4920f7
cmp ax, 5
jne 0x49211d
mov ecx, dword [esi + 0x5a4]
cmp ecx, dword [esi + 0x5b4]
jne 0x49211d
mov edx, dword [esi + 0x5a8]
cmp edx, dword [esi + 0x5b8]
jne 0x49211d
mov dword [esi + 0x54c], 0xc
mov ecx, dword [esi + 0xd14]
test ecx, ecx
je 0x492132
mov eax, dword [ebp + 0x10]
push 1
push eax
call fcn.00470370
call fcn.00419310
cmp dword [eax + 0x282], 1
jl 0x492183
cmp word [esi + 0x3a0], 0x10
jne 0x492183
cmp byte [esi + 0xb89], 0
jne 0x492183
mov cx, word [ebp + 8]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x4c]
mov word [esp + 0x38], cx
push eax
lea ecx, [esi + 0xd6a]
mov word [esp + 0x42], 0
mov dword [esp + 0x3e], edi
call fcn.0047a5b0
mov byte [esi + 0xb89], 1
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14