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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, eax
mov esi, dword [edi + 8]
mov ebx, dword [edi]
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], eax
add esi, 0x28
mov eax, 8
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.05384fa0
cmp dword [edi + 0x50], 7
mov dword [edi + 0x14], 0
jne 0x539e8a9
mov eax, 1
mov byte [ebx + 0x40], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x58]
mov ebx, dword [edi + 0x20]
and ecx, 3
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], ecx
cmp ecx, 1
jne 0x539e933
mov eax, dword [edi + 8]
add eax, 0x168
test byte [eax + 0x1c], 0x10
mov dword [ebp - 0x14], eax
je 0x539e8df
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 4]
shr ebx, 2
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], eax
jmp 0x539e8e2
mov ebx, dword [ebp - 4]
xor ecx, ecx
xor edx, edx
xor eax, eax
cmp ebx, 2
jl 0x539e911
lea ecx, [ecx]
mov ebx, dword [ebp - 0xc]
mov ebx, dword [ebx + eax*4]
add ecx, dword [ebx + 4]
mov ebx, dword [ebp - 0xc]
mov ebx, dword [ebx + eax*4 + 4]
add edx, dword [ebx + 4]
mov ebx, dword [ebp - 4]
add eax, 2
dec ebx
cmp eax, ebx
jl 0x539e8f0
mov ebx, dword [ebp - 4]
cmp eax, ebx
jge 0x539e923
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 8]
add ebx, dword [eax + 4]
jmp 0x539e926
mov ebx, dword [ebp - 8]
add ecx, edx
add ebx, ecx
lea ebx, [ebx]
mov ecx, dword [ebp - 0x10]
mov eax, dword [edi + 0x4c]
lea edx, [eax + 1]
mov dword [edi + 0x4c], edx
cmp eax, ebx
jge 0x539e997
cmp ecx, 2
jne 0x539e951
mov edx, dword [edi + 4]
lea ecx, [eax + eax*4]
cmp byte [edx + ecx*4], 0x9c
jne 0x539e930
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xe8]
test ecx, ecx
je 0x539e9ac
mov dword [edi + 0x50], 9
mov ecx, dword [str.interrupted]
mov esi, 1
mov eax, str.unknown_error
test ecx, ecx
je 0x539e97b
mov eax, ecx
push eax
push 0x53fe650
push edx
add edi, 0x2c
push edi
call fcn.053865c0
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 0x65
mov dword [edi + 0x50], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x20]
cmp eax, ecx
jge 0x539e9c1
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
lea ebx, [ecx + edx*4]
mov dword [ebp - 8], ebx
jmp 0x539e9ef
mov ebx, dword [ebp - 0xc]
sub eax, ecx
mov ecx, dword [ebx]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp eax, ecx
jl 0x539e9df
sub eax, ecx
mov ecx, dword [ebx + edx*4 + 4]
mov ecx, dword [ecx + 4]
inc edx
cmp eax, ecx
jge 0x539e9d1
mov edx, dword [ebx + edx*4]
mov edx, dword [edx]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*4]
mov dword [ebp - 8], ecx
mov ebx, ecx
mov edx, dword [edi + 0x58]
and dl, 3
cmp dl, 1
jne 0x539eab1
cdq
mov dword [esi + 0x14], edx
mov ecx, 4
mov word [esi + 0x1c], cx
mov dword [esi + 0x10], eax
mov edx, 0xa02
mov word [esi + 0x44], dx
movzx eax, byte [ebx]
mov eax, dword [eax*4 + 0x53f9be8]
mov dword [esi + 0x2c], eax
mov ecx, eax
test eax, eax
je 0x539ea3e
cmp byte [eax], 0
je 0x539ea36
nop
inc ecx
cmp byte [ecx], 0
jne 0x539ea30
sub ecx, eax
and ecx, 0x3fffffff
mov dword [esi + 0x40], ecx
mov byte [esi + 0x46], 1
add esi, 0x50
cmp byte [ebx + 1], 0xee
jne 0x539eab1
mov ecx, dword [ebp - 4]
lea edx, [ecx*4 + 4]
xor eax, eax
mov dword [ebp - 0x10], edx
test ecx, ecx
jle 0x539ea74
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + eax*4], edx
mov ecx, dword [ebp - 4]
je 0x539ea74
inc eax
cmp eax, ecx
jl 0x539ea64
cmp eax, ecx
jne 0x539eab1
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
xor edx, edx
test ecx, ecx
setne dl
push edx
push eax
push ebx
call fcn.0539c430
add esp, 0xc
test eax, eax
jne 0x539eaae
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 4]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x10]
or word [ebx + 0x1c], 0x10
mov dword [ebx + 0x18], eax
mov ebx, dword [ebp - 8]
mov ecx, 4
mov word [esi + 0x1c], cx
mov eax, dword [ebx + 4]
cdq
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov edx, ecx
mov word [esi + 0x44], dx
mov eax, dword [ebx + 8]
cdq
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov eax, ecx
mov word [esi + 0x6c], ax
mov eax, dword [ebx + 0xc]
cdq
push 0
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edx
add esi, 0x78
push 0x20
push esi
call fcn.0539c430
add esp, 0xc
test eax, eax
je 0x539eb04
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esi + 4]
mov eax, dword [ebp - 8]
mov ecx, 0x202
mov word [esi + 0x1c], cx
call fcn.0538da00
mov ecx, dword [esi + 4]
mov ebx, eax
cmp ebx, ecx
je 0x539ebd3
test ebx, ebx
jne 0x539eb6a
test byte [esi + 0x1c], 0x40
je 0x539eb43
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb4]
mov dword [eax + 4], edx
mov dword [ecx + 0xb4], eax
test byte [esi + 0x1c], 0x20
je 0x539eb51
mov ebx, dword [esi + 0x10]
call fcn.0537e5b0
mov ax, word [esi + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [esi + 0x1c], ax
jmp 0x539ebf4
mov eax, dword [esi]
test eax, eax
je 0x539eb75
mov ecx, dword [eax + 0x58]
jmp 0x539eb7a
mov ecx, 0x3b9aca00
xor eax, eax
mov dword [ebp - 0xc], eax
test ecx, ecx
js 0x539eb91
cmp byte [eax + ebx], 0
je 0x539eb8e
inc eax
cmp eax, ecx
jle 0x539eb83
mov dword [ebp - 0xc], eax
xor edx, edx
mov dword [ebp - 0x18], 0x202
push esi
cmp edx, 0x53733d0
jne 0x539ebb0
call fcn.05382550
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x24], ebx
jmp 0x539ebba
call fcn.05382550
mov eax, 0xa02
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x20], 0
mov dword [esi + 4], ebx
add esp, 4
mov dword [esi + 0x18], ecx
mov word [esi + 0x1c], ax
jmp 0x539ebf0
mov eax, ecx
test ecx, ecx
je 0x539ebed
cmp byte [ecx], 0
je 0x539ebe6
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x539ebe0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esi + 0x18], eax
mov byte [esi + 0x1e], 1
mov edx, dword [edi + 0x58]
and dl, 3
add esi, 0x28
cmp dl, 1
jne 0x539ec4f
push 0
push 4
push esi
call fcn.0539c430
add esp, 0xc
test eax, eax
jne 0x539eaf8
mov ecx, dword [ebp - 8]
mov eax, 0x202
mov word [esi + 0x1c], ax
mov eax, dword [esi + 4]
mov dword [esi + 0x18], 2
movzx edx, byte [ecx + 3]
push edx
push str._.2x
push eax
push 3
call fcn.05388a50
mov ecx, 1
mov byte [esi + 0x1e], 1
add esp, 0x10
mov word [esi + 0x44], cx
mov dx, word [edi + 0x58]
mov ecx, dword [edi + 8]
and dx, 3
dec dx
mov eax, 2
sub ax, dx
add ax, ax
add ax, ax
add ecx, 0x28
mov word [edi + 0x54], ax
mov esi, 0x64
mov dword [edi + 0x14], ecx
mov dword [edi + 0x50], 0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret