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

Disassembly:
sub esp, 0xac
mov eax, dword [0x4cbba0]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
push ebp
push esi
push edi
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov esi, ebp
xor edx, edx
mov ebx, 8
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi]
mov edi, edx
cdq
or ecx, eax
or edi, edx
inc esi
dec ebx
mov eax, ecx
mov edx, edi
jne 0x43f2d5
cmp eax, 0x54203960
jne 0x43f3ad
cmp edx, 0x834
jne 0x43f3ad
xor eax, eax
lea esi, [ebp + 0xc]
xor ecx, ecx
mov edi, 4
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f313
cmp eax, 0x67
jne 0x43f3ad
xor eax, eax
lea esi, [ebp + 0x10]
xor ecx, ecx
mov edi, 4
nop
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f340
cmp eax, dword [esp + 0xc8]
jne 0x43f3ad
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
lea eax, [ebp + 0xc]
push eax
add ecx, 0x10c8
call fcn.00402fa0
mov dword [esp + 0x18], eax
xor eax, eax
lea esi, [ebp + 8]
xor ecx, ecx
mov edi, 4
mov edi, edi
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f390
cmp eax, dword [esp + 0x18]
je 0x43f3b4
xor eax, eax
jmp 0x43f9ed
xor eax, eax
lea esi, [ebp + 0x14]
xor ecx, ecx
mov edi, 4
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f3c0
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
xor eax, eax
lea esi, [ebp + 0x18]
xor ecx, ecx
mov edi, 2
lea esp, [esp]
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f3f0
mov edx, dword [esp + 0x40]
mov word [edx], ax
xor eax, eax
lea esi, [ebp + 0x1a]
xor ecx, ecx
mov edi, 4
lea ebx, [ebx]
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f420
mov ecx, dword [esp + 0x5c]
mov dword [ecx], eax
xor eax, eax
lea esi, [ebp + 0x1e]
xor ecx, ecx
mov edi, 4
lea esp, [esp]
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f450
mov edx, dword [esp + 0x30]
mov dword [edx], eax
xor eax, eax
lea esi, [ebp + 0x22]
xor ecx, ecx
mov edi, 4
lea esp, [esp]
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f480
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x90]
mov dword [ecx], eax
push edx
lea eax, [ebp + 0x26]
push eax
call fcn.0049ba40
add esp, 8
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x3c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
xor eax, eax
lea esi, [ebp + 0x3a]
xor ecx, ecx
mov edi, 4
nop
shld ecx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ecx, edx
inc esi
dec edi
mov eax, ebx
jne 0x43f4d0
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x28]
lea esi, [ebp + 0x3e]
push esi
mov ecx, edi
mov dword [edx], eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov edi, dword [esp + 0x58]
lea esi, [esi + eax + 1]
push esi
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov edi, dword [esp + 0x48]
lea esi, [esi + eax + 1]
push esi
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov edi, dword [esp + 0x64]
lea esi, [esi + eax + 1]
push esi
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
sub esi, ebp
lea ebx, [eax + esi + 1]
cmp dword [esp + 0xc4], ebx
jle 0x43f9e8
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
add ebx, 8
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
lea ecx, [ecx]
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f580
or eax, ecx
je 0x43f5a7
mov al, 1
jmp 0x43f5a9
xor al, al
mov ecx, dword [esp + 0x2c]
mov byte [ecx], al
add ebx, 4
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f5c1
mov edx, dword [esp + 0x34]
add ebx, 4
mov dword [edx], eax
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
jmp 0x43f600
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f600
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
add ebx, 4
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f637
mov edx, dword [esp + 0x44]
add ebx, 4
mov dword [edx], eax
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
mov edi, edi
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f670
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
add ebx, 4
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f6a7
mov edx, dword [esp + 0x54]
add ebx, 4
mov dword [edx], eax
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
mov edi, edi
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f6e0
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [ecx], eax
add ebx, 4
mov dword [esp + 0x8c], edx
xor eax, eax
inc eax
lea ecx, [ebx + ebp]
cmp byte [eax + ecx], 0x7c
jne 0x43f761
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [ebx + ebp]
lea edi, [esp + 0x68]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, 0x10
jle 0x43f740
lea eax, [esp + 0x68]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43f770
sub eax, edx
mov dword [esp + 0x24], eax
je 0x43f7d9
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
je 0x43f7d9
mov esi, dword [esp + 0x14]
lea eax, [ebx + ebp]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov esi, dword [esp + 0x1c]
lea ebx, [ebx + eax + 1]
lea ecx, [ebx + ebp]
push ecx
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov ecx, dword [esp + 0x20]
lea eax, [ebx + eax + 1]
add ebp, eax
push ebp
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
jmp 0x43f9e8
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
jmp 0x43f7f0
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x10], edx
jne 0x43f7f0
add ebx, 4
test eax, eax
mov esi, eax
jle 0x43f9e8
lea esp, [esp]
dec esi
mov dword [esp + 0x10], esi
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x18], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x18]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x18], edx
jne 0x43f834
push eax
add ebx, 4
call dword [sym.imp.WS2_32.dll_htonl]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
test eax, eax
je 0x43f88c
mov edi, dword [esp + 0x14]
push eax
mov ecx, edi
call dword [0x4ab968]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x43f894
push 0x4aec44
mov ecx, edi
call dword [0x4ab968]
jmp 0x43f890
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x43f820
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x14], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x14]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x14], edx
jne 0x43f8a3
add ebx, 4
test eax, eax
mov esi, eax
jle 0x43f9e8
nop
dec esi
mov dword [esp + 0x10], esi
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x14], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x14]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x14], edx
jne 0x43f8e4
push eax
add ebx, 4
call dword [sym.imp.WS2_32.dll_htonl]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
test eax, eax
je 0x43f93c
mov edi, dword [esp + 0x1c]
push eax
mov ecx, edi
call dword [0x4ab968]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x43f944
push 0x4aec44
mov ecx, edi
call dword [0x4ab968]
jmp 0x43f940
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x43f8d0
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x1c], 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or ecx, edx
mov edx, dword [esp + 0x1c]
or edi, eax
inc esi
dec edx
mov eax, edi
mov dword [esp + 0x1c], edx
jne 0x43f953
add ebx, 4
test eax, eax
mov esi, eax
jle 0x43f9e8
add ebx, ebp
lea ecx, [ecx]
dec esi
mov dword [esp + 0x10], esi
xor eax, eax
mov esi, ebx
xor ecx, ecx
mov ebp, 4
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [esi]
cdq
or edi, eax
or ecx, edx
inc esi
dec ebp
mov eax, edi
jne 0x43f990
push eax
add ebx, 4
call dword [sym.imp.WS2_32.dll_htonl]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
test eax, eax
je 0x43f9e0
mov edi, dword [esp + 0x20]
push eax
mov ecx, edi
call dword [0x4ab968]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x43f9e8
push 0x4aec44
mov ecx, edi
call dword [0x4ab968]
jmp 0x43f9e4
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x43f980
mov eax, 1
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004a17d1
add esp, 0xac
ret 0x60