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

Disassembly:
push 0xffffffffffffffff
push 0x6402291c
mov eax, dword fs:[0]
push eax
mov eax, 0x10074
call fcn.64017df0
mov eax, dword [0x6402c09c]
xor eax, esp
mov dword [esp + 0x10070], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6402c09c]
xor eax, esp
push eax
lea eax, [esp + 0x10088]
mov dword fs:[0], eax
mov eax, dword [esp + 0x10098]
mov esi, dword [esp + 0x100a0]
mov ebp, dword [sym.imp.ws2_32.dll_htonl]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x100b8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x100bc]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x100c0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x100c4]
sub ebx, ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov byte [esp + 0x17], bl
sub edi, edi
jmp 0x6400a6c0
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x10090], ebx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x100a8]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x6c], edx
mov dl, byte [esp + 0x100ac]
push eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edi
mov byte [esp + 0x84], dl
call ebp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
push eax
call ebp
push 0x19
lea ecx, [esp + 0x6c]
mov dword [esp + 0x80], eax
push ecx
lea eax, [esp + 0x40]
call fcn.6400a150
cmp esi, ebx
je 0x6400a752
mov edx, dword [esp + 0x100a4]
push edx
push esi
lea eax, [esp + 0x40]
call fcn.6400a150
cmp dword [esp + 0x50], 0x10
mov eax, dword [esp + 0x3c]
jae 0x6400a761
lea eax, [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
push ecx
push eax
lea ecx, [esp + 0x2c]
lea ebx, [esp + 0x38]
call fcn.6400d8e0
mov edx, dword [eax]
push edx
pop esi
mov dword [eax], 0
mov dword [esp + 0x28], esi
mov byte [esp + 0x10098], 1
mov eax, dword [esp + 0x38]
push eax
call fcn.64011d22
add esp, 0xc
lea ecx, [esp + 0x34]
push 0
push ecx
mov dword [esp + 0x3c], 0
call fcn.6400e330
call eax
or eax, eax
je 0x6400a83e
mov eax, dword [esp + 0x100b0]
cmp eax, 0x1388
jb 0x6400a7c8
mov eax, 0x1388
mov ecx, dword [esp + 0x1009c]
push eax
mov eax, dword [esp + 0x28]
push 0xffff
lea edx, [esp + 0x8c]
push edx
mov edx, dword [esp + 0x24]
push 0
push eax
mov eax, dword [edx]
push esi
push ecx
push eax
call fcn.6400db10
call eax
push eax
pop ebx
or ebx, ebx
jne 0x6400a841
push esi
call fcn.64011d22
add esp, 4
cmp byte [esp + 0x100b4], bl
mov dword [esp + 0x10090], 0xffffffff
je 0x6400a863
cmp dword [esp + 0x50], 0x10
jb 0x6400a82b
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.64011d22
add esp, 4
add edi, 1
cmp edi, 5
je 0x6400a877
mov esi, dword [esp + 0x1c]
sub ebx, ebx
jmp 0x6400a6c0
or ebx, 0xffffffff
push esi
call fcn.64011d22
add esp, 4
mov dword [esp + 0x10090], 0xffffffff
cmp dword [esp + 0x50], 0x10
jb 0x6400a877
mov edx, dword [esp + 0x3c]
push edx
jmp 0x6400a86f
cmp dword [esp + 0x50], 0x10
jb 0x6400a877
mov eax, dword [esp + 0x3c]
push eax
call fcn.64011d22
add esp, 4
or ebx, ebx
je 0x6400aa1f
mov ax, word [esp + 0x90]
test ax, ax
je 0x6400aa13
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xa4]
movzx ebx, ax
push edx
lea edi, [esp + 0x24]
call fcn.6400da10
mov ecx, dword [eax]
mov ebp, ecx
sub ebx, ebx
mov dword [eax], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10098], 2
mov edx, dword [esp + 0x24]
push edx
call fcn.64011d22
add esp, 0xc
cmp ebp, ebx
je 0x6400aa02
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.ws2_32.dll_ntohl]
cmp byte [esp + 0x100ac], bl
mov dword [esp + 0x18], eax
mov dword [ebp + 0x10], eax
jne 0x6400a8ff
cmp dword [esp + 0x100a8], ebx
jle 0x6400a8ff
mov dword [esp + 0x100a8], ebx
push 0x10
pop ecx
nop
nop
lea edx, [esp + 0x54]
mov esi, ebp
lea ebx, [ebx]
mov eax, dword [esi]
cmp eax, dword [edx]
jne 0x6400a928
sub ecx, 4
sub edx, 0xfffffffc
sub esi, 0xfffffffc
cmp ecx, 4
jae 0x6400a910
cmp ecx, ebx
je 0x6400a985
movzx edi, byte [esi]
movzx eax, byte [edx]
sbb edi, eax
jne 0x6400a977
sub ecx, 1
sub edx, 0xffffffff
add esi, 1
cmp ecx, ebx
je 0x6400a985
movzx edi, byte [esi]
movzx eax, byte [edx]
sbb edi, eax
jne 0x6400a977
sub ecx, 1
sub edx, 0xffffffff
add esi, 1
cmp ecx, ebx
je 0x6400a985
movzx edi, byte [esi]
movzx eax, byte [edx]
sbb edi, eax
jne 0x6400a977
sub ecx, 1
sub edx, 0xffffffff
add esi, 1
cmp ecx, ebx
je 0x6400a985
movzx edi, byte [esi]
movzx ecx, byte [edx]
sbb edi, ecx
je 0x6400a985
cmp edi, ebx
pushfd
xor ecx, ecx
inc ecx
popfd
jg 0x6400a987
or ecx, 0xffffffff
jmp 0x6400a987
sub ecx, ecx
cmp ecx, ebx
jne 0x6400aa02
mov edx, dword [esp + 0x100a8]
cmp dword [esp + 0x18], edx
jne 0x6400aa02
mov al, byte [ebp + 0x14]
mov ecx, dword [esp + 0x28]
mov byte [ecx], al
mov eax, dword [esp + 0x24]
add eax, 0xffffffeb
push eax
lea edx, [ebp + 0x15]
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.64001860
mov ecx, dword [esp + 0x2c]
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x1009c], 3
call fcn.64001780
cmp dword [esp + 0x50], 0x10
jb 0x6400a9f3
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.64011d22
add esp, 4
push ebp
mov bl, 1
call fcn.64011d22
add esp, 4
mov al, bl
jmp 0x6400aa23
mov bl, byte [esp + 0x17]
push ebp
call fcn.64011d22
add esp, 4
mov al, bl
jmp 0x6400aa23
cmp byte [esp + 0x100ac], 0
mov al, 1
jne 0x6400aa23
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x10088]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10070]
xor ecx, esp
call fcn.6401257c
add esp, 0x10080
ret 0x30