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

Disassembly:
sub esp, 0x128
mov eax, dword [0x93e25c]
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, dword [esi + 0x60]
push edi
lea edi, [esi + 0x77c]
lea ebp, [esi + 0x60]
push edi
mov dword [esp + 0x138], eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [esi + 0xa74], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 0x81c]
test eax, eax
jne 0x5318f1
mov eax, dword [ebp]
lea ecx, [esi + 0x87c]
push ecx
lea edx, [esp + 0x44]
push edx
push eax
call dword [eax + 0x80]
add esp, 0xc
test al, al
je 0x5317e7
pop edi
pop esi
pop ebp
mov eax, 0x412
pop ebx
mov ecx, dword [esp + 0x124]
call fcn.006cedd0
add esp, 0x128
ret
lea eax, [esp + 0x40]
push 0
push eax
call fcn.005d8c40
add esp, 8
test eax, eax
mov dword [esi + 0x828], eax
je 0x531cb4
mov dword [esi + 0x86c], eax
mov eax, dword [ebp]
lea edi, [esi + 0x384]
push edi
push eax
call dword [eax + 0x84]
mov al, byte [0x974be0]
add esp, 8
test al, 0x40
jne 0x5318bb
mov eax, dword [ebp]
push edi
push eax
call dword [eax + 0x84]
lea ecx, [esp + 0x20]
push ecx
push edi
call fcn.0040989a
add esp, 0x10
test eax, eax
mov dword [esi + 0x81c], eax
je 0x531893
cmp eax, dword [str.localhost]
je 0x531887
mov ecx, eax
lea edi, [ecx + 1]
jmp 0x531860
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x531860
sub ecx, edi
cmp ecx, 0x3c
jae 0x53187e
mov ecx, eax
lea edi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x531873
sub ecx, edi
jmp 0x531883
mov ecx, 0x3c
mov byte [ecx + eax], 0
mov edx, dword [esi + 0x81c]
mov dword [esi + 0x86c], edx
mov eax, dword [esp + 0x18]
cmp eax, dword [0x974b54]
jbe 0x5318bb
pop edi
pop esi
pop ebp
mov eax, 0x469
pop ebx
mov ecx, dword [esp + 0x124]
call fcn.006cedd0
add esp, 0x128
ret
mov ecx, dword [esi + 0x828]
mov edx, dword [esi + 0x81c]
push ecx
push edx
call fcn.00406591
add esp, 8
test eax, eax
je 0x531914
pop edi
pop esi
pop ebp
mov eax, 0x46a
pop ebx
mov ecx, dword [esp + 0x124]
call fcn.006cedd0
add esp, 0x128
ret
mov dword [esi + 0x86c], eax
mov dword [esi + 0x828], 0
xor eax, eax
lea ecx, [esi + 0x380]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov eax, dword [ebp]
push 1
push eax
call dword [eax + 0x78]
mov eax, dword [0x974310]
add esp, 8
test eax, eax
mov dword [esp + 0x10], 0x820c
je 0x531939
mov dword [esp + 0x10], 0xa20c
mov ecx, dword [esp + 0x10]
mov eax, dword [0x974164]
or ecx, 0x20
test eax, eax
mov dword [esp + 0x10], ecx
je 0x531958
mov eax, ecx
or eax, 0x800
mov dword [esp + 0x10], eax
push 0x3c
lea edx, [esp + 0xa8]
push 0x973f20
push edx
call fcn.006316e0
lea ecx, [esi + 0x390]
push ecx
mov edi, eax
mov eax, dword [esi + 0xb40]
lea ebx, [esi + 0xba0]
push 0x14
inc edi
push ebx
mov dword [edi], eax
call fcn.0040952f
push 8
push ebx
add edi, 4
push edi
call fcn.0062b670
mov dx, word [esp + 0x34]
mov word [eax + 1], dx
mov ecx, dword [0x8410fc]
mov dl, byte [ecx]
inc eax
mov byte [eax + 2], dl
mov cx, word [esi + 0xb68]
mov word [eax + 3], cx
lea edi, [esi + 0xb68]
xor edx, edx
lea ecx, [eax + 5]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov byte [ecx + 0xc], dl
push 0xc
lea edx, [esi + 0xba8]
push edx
add eax, 0x12
push eax
call fcn.0062b670
inc eax
lea ecx, [esp + 0xd4]
sub eax, ecx
push eax
xor eax, eax
mov al, byte [0x974348]
mov edx, ecx
push edx
push 0
push 0x73a01c
push eax
push ebp
call fcn.0040132f
add esp, 0x48
test al, al
jne 0x531cff
push ebp
call fcn.00406d6b
add esp, 4
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x531cff
cmp eax, 2
jb 0x531cff
mov eax, dword [esp + 0x18]
test eax, eax
je 0x531a44
lea ecx, [esi + 0x384]
push ecx
call fcn.00404fb1
add esp, 4
mov eax, dword [esi + 0x40c]
mov edx, dword [esi + 0x360]
cmp eax, edx
lea ecx, [esi + 0x358]
jb 0x531a68
push eax
call fcn.00405524
test eax, eax
jne 0x531cb4
mov edx, dword [ebp + 0x10]
movzx eax, word [edx]
test ah, 2
mov dword [esi + 0x884], eax
mov ecx, dword [ebp + 0x10]
je 0x531ab7
movzx edx, word [ecx + 2]
shl edx, 0x10
or edx, eax
mov dword [esi + 0x884], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov dword [esi + 0x888], ecx
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx + 8]
push eax
push esi
call fcn.0040662c
add esp, 8
mov ecx, esi
call fcn.0040b4f1
mov ebx, dword [ebp + 0x10]
add ebx, 0x20
jmp 0x531acc
mov edx, dword [ecx + 2]
and edx, 0xffffff
mov dword [esi + 0x888], edx
mov ebx, dword [ebp + 0x10]
add ebx, 5
mov eax, dword [esi + 0x884]
test ah, 1
je 0x531ade
or dword [esi + 0x454], 8
mov eax, dword [esi + 0x884]
test ah, 8
je 0x531b2e
mov eax, dword [0x974164]
test eax, eax
je 0x531cff
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp]
push ecx
push edx
push eax
call fcn.0063ed70
add esp, 0xc
test eax, eax
jne 0x531cff
push ebp
call fcn.00406d6b
add esp, 4
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x531cff
cmp eax, 6
jb 0x531cff
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + eax + 2]
cmp ebx, edx
jae 0x531cff
mov eax, dword [esi + 0x884]
test ah, 4
je 0x531b58
mov eax, dword [esi + 0x410]
mov dword [esi + 0x41c], eax
mov eax, dword [esi + 0x884]
test ah, 0x20
je 0x531b6f
mov eax, dword [0x974310]
test eax, eax
je 0x531b6f
mov dword [ebp + 0x4c], edi
push ebx
call fcn.0062b6a0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x884]
inc edi
mov ecx, edi
sub ecx, ebx
dec ecx
test ah, ah
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
jns 0x531b9c
movzx edx, byte [edi]
mov dword [esp + 0x14], edx
inc edi
jmp 0x531bb4
mov eax, edi
lea edx, [eax + 1]
mov dword [esp + 0x14], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x531ba5
sub eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
test byte [esi + 0x884], 8
je 0x531be5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea eax, [eax + edx + 1]
test eax, eax
mov dword [esp + 0x10], eax
je 0x531bed
lea edx, [eax + 1]
mov dword [esp + 0x24], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x531bd8
sub eax, dword [esp + 0x24]
jmp 0x531bef
mov dword [esp + 0x10], 0
xor eax, eax
mov edx, dword [esp + 0x14]
mov ebp, dword [ebp + 0x10]
add ebp, dword [esp + 0x1c]
add edx, eax
add edx, edi
cmp edx, ebp
ja 0x531cff
mov edx, dword [esp + 0x10]
test edx, edx
je 0x531c42
mov ecx, dword [esi + 0x494]
lea ebp, [esp + 0x28]
push ebp
push ecx
push eax
mov eax, dword [0x9749e0]
push edx
push eax
lea ecx, [esp + 0x74]
push 0x40
push ecx
call fcn.00404f70
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x7c]
add esp, 0x1c
mov byte [esp + eax + 0x60], 0
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x494]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [0x9749e0]
push ecx
push ebx
push eax
lea ecx, [esp + 0x40]
push 0x10
push ecx
call fcn.00404f70
add esp, 0x1c
cmp eax, 1
lea ecx, [esp + eax + 0x2c]
mov byte [ecx], 0
lea ebx, [esp + 0x2c]
jbe 0x531c8c
mov dl, byte [esp + 0x2c]
mov al, 0x27
cmp dl, al
jne 0x531c8c
cmp byte [ecx - 1], al
jne 0x531c8c
mov byte [ecx - 1], 0
lea ebx, [esp + 0x2d]
mov eax, dword [esi + 0x820]
test eax, eax
je 0x531c9f
push eax
call fcn.005d8be0
add esp, 4
push 0
push ebx
call fcn.005d8c40
add esp, 8
test eax, eax
mov dword [esi + 0x820], eax
jne 0x531cd0
pop edi
pop esi
pop ebp
mov eax, 0x411
pop ebx
mov ecx, dword [esp + 0x124]
call fcn.006cedd0
add esp, 0x128
ret
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push 1
push edx
push eax
push edi
push 0xb
push esi
call fcn.004063b1
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x124]
call fcn.006cedd0
add esp, 0x128
ret
add esi, 0x384
push esi
call fcn.00406069
mov ecx, dword [esp + 0x138]
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0x413
pop ebx
call fcn.006cedd0
add esp, 0x128
ret