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

Disassembly:
sub esp, 0xac
mov eax, dword [0x4bc410]
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 0x435895
cmp eax, 0x54203960
jne 0x43596d
cmp edx, 0x834
jne 0x43596d
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 0x4358d3
cmp eax, 0x67
jne 0x43596d
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 0x435900
cmp eax, dword [esp + 0xc8]
jne 0x43596d
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.00402fc0
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 0x435950
cmp eax, dword [esp + 0x18]
je 0x435974
xor eax, eax
jmp 0x435fad
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 0x435980
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 0x4359b0
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 0x4359e0
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 0x435a10
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 0x435a40
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x90]
mov dword [ecx], eax
push edx
lea eax, [ebp + 0x26]
push eax
call fcn.0048f3d0
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 0x435a90
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 0x435fa8
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 0x435b40
or eax, ecx
je 0x435b67
mov al, 1
jmp 0x435b69
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 0x435b81
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 0x435bc0
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 0x435bc0
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 0x435bf7
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 0x435c30
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 0x435c67
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 0x435ca0
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 0x435d21
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 0x435d00
lea eax, [esp + 0x68]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435d30
sub eax, edx
mov dword [esp + 0x24], eax
je 0x435d99
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
je 0x435d99
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 0x435fa8
xor eax, eax
lea esi, [ebx + ebp]
xor ecx, ecx
mov dword [esp + 0x10], 4
jmp 0x435db0
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 0x435db0
add ebx, 4
test eax, eax
mov esi, eax
jle 0x435fa8
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 0x435df4
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 0x435e4c
mov edi, dword [esp + 0x14]
push eax
mov ecx, edi
call dword [0x49f900]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x435e54
push 0x4a2338
mov ecx, edi
call dword [0x49f900]
jmp 0x435e50
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x435de0
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 0x435e63
add ebx, 4
test eax, eax
mov esi, eax
jle 0x435fa8
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 0x435ea4
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 0x435efc
mov edi, dword [esp + 0x1c]
push eax
mov ecx, edi
call dword [0x49f900]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x435f04
push 0x4a2338
mov ecx, edi
call dword [0x49f900]
jmp 0x435f00
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x435e90
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 0x435f13
add ebx, 4
test eax, eax
mov esi, eax
jle 0x435fa8
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 0x435f50
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 0x435fa0
mov edi, dword [esp + 0x20]
push eax
mov ecx, edi
call dword [0x49f900]
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x435fa8
push 0x4a2338
mov ecx, edi
call dword [0x49f900]
jmp 0x435fa4
mov esi, dword [esp + 0x10]
test esi, esi
jg 0x435f40
mov eax, 1
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00496ace
add esp, 0xac
ret 0x60