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

Disassembly:
push 0xffffffffffffffff
push 0x6f56eb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0xa78]
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [esp + 0x1c], ebp
je 0x589fba
push eax
call fcn.0065d0d4
add esp, 4
mov dword [ebp + 0xa78], ebx
mov dword [ebp + 0xa7c], ebx
mov dword [ebp + 0xa80], ebx
mov eax, dword [ebp + 0x460]
cmp eax, ebx
je 0x589fdf
push eax
call fcn.0065d0d4
add esp, 4
mov dword [ebp + 0x460], ebx
mov dword [ebp + 0x464], ebx
mov dword [ebp + 0x468], ebx
mov eax, dword [0x77da48]
mov ecx, dword [eax + 0x458]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
xor esi, esi
jmp 0x58a010
mov ecx, dword [ebp + 0xa58]
cmp ecx, ebx
je 0x58a925
mov eax, dword [ebp + 0xa5c]
sub eax, ecx
mov ecx, dword [esp + 0x28]
sar eax, 2
cmp ecx, eax
jae 0x58a925
mov ecx, dword [0x76ec70]
xor eax, eax
cmp ecx, ebx
mov byte [esp + 0x13], bl
jle 0x58a065
mov dl, byte [ebp + 0x4e0]
mov edi, 0x71995c
cmp byte [edi - 4], dl
jne 0x58a05d
cmp dword [edi], ebx
je 0x58a13f
inc eax
add edi, 0xc
cmp eax, ecx
jl 0x58a050
or eax, 0xffffffff
mov edx, dword [ebp + 0xa58]
mov edx, dword [edx + esi]
mov edx, dword [edx]
push str.1_1_0
push edx
lea ecx, [ebp + 0x440]
push eax
call fcn.00586410
push eax
lea ecx, [esp + 0x30]
call fcn.00585930
mov edi, dword [esp + 0x30]
cmp edi, ebx
mov dword [esp + 0x230], ebx
je 0x58a8fd
mov eax, dword [esp + 0x34]
sub eax, edi
sar eax, 2
cmp eax, ebx
jbe 0x58a8fd
mov al, byte [ebp + 0x4e0]
cmp al, 7
jne 0x58a158
push ebx
push 0x14
mov ecx, ebp
call fcn.00619800
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x60]
push eax
call fcn.0065dcfa
mov dword [edi], eax
mov eax, dword [0x77da48]
mov ecx, dword [eax + 0x458]
mov eax, dword [ebp + 0xa4c]
add esp, 4
push eax
lea edx, [esp + 0x1a8]
push edx
mov dword [esp + 0x1c], ecx
call fcn.00437670
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x14c4]
je 0x58a14f
mov eax, dword [eax]
cmp eax, ebx
je 0x58a14f
movzx eax, word [eax + 0x4f4]
imul eax, dword [edi]
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x58a131
mov ecx, ebp
call fcn.00614e00
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x58a13a
mov eax, ecx
mov dword [edi + 4], eax
jmp 0x58a1ba
lea edx, [eax + eax*2]
movzx eax, word [edx*4 + 0x719960]
jmp 0x58a068
mov ecx, ebp
call fcn.00614e00
jmp 0x58a1ba
cmp al, 0x98
je 0x58a1a6
cmp al, 0x99
je 0x58a1a6
cmp al, 0x9a
je 0x58a1a6
cmp al, 0x9b
je 0x58a1a6
cmp al, 0x9c
je 0x58a1a6
cmp al, 0x9d
je 0x58a1a6
cmp al, 0x9e
je 0x58a1a6
cmp al, 0x9f
je 0x58a1a6
cmp al, 0xa0
je 0x58a1a6
cmp al, 0xa1
je 0x58a1a6
cmp al, 0xa2
jne 0x58a193
mov dword [edi], 5
mov dword [edi + 4], 5
jmp 0x58a1b3
cmp al, 0xa3
jne 0x58a1ba
mov dword [edi], 5
mov dword [edi + 4], 5
jmp 0x58a1b3
mov dword [edi], 2
mov dword [edi + 4], 2
mov dword [edi + 8], 1
mov eax, dword [edi + 8]
sub eax, ebx
je 0x58a615
dec eax
je 0x58a33f
dec eax
jne 0x58a7af
mov edx, dword [esp + 0x238]
mov ecx, dword [ebp + 0xa58]
xor eax, eax
cmp edx, ebx
mov dword [esp + 0x14], ebx
jle 0x58a212
mov edx, dword [ecx + esi]
mov edx, dword [edx]
nop
mov ecx, dword [esp + 0x23c]
cmp edx, dword [ecx + eax*8]
je 0x58a20a
mov ecx, dword [esp + 0x238]
inc eax
cmp eax, ecx
jl 0x58a1f0
jmp 0x58a212
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xa58]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + esi]
cmp ecx, dword [edx + 0x74]
mov dword [esp + 0x18], ecx
ja 0x58a7af
lea esp, [esp]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + esi]
mov eax, dword [edx]
push ecx
mov ecx, dword [esp + 0x24]
push 1
push eax
call fcn.004378c0
cmp eax, ebx
mov dword [esp + 0x24], eax
jle 0x58a31f
mov eax, dword [ebp + 0xa58]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x66], bl
mov word [esp + 0x64], bx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov word [esp + 0x80], bx
mov ecx, dword [eax + esi]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + esi]
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + esi]
mov ecx, dword [edx + 0x7c]
mov dword [esp + 0x7c], ecx
mov edx, dword [eax + esi]
mov eax, dword [eax + esi]
mov ecx, edx
movzx edx, byte [edx + 0x74]
add dl, byte [ecx + 0x70]
mov ecx, dword [esp + 0x7c]
add eax, 4
push edx
mov edx, dword [esp + 0x1c]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
push ecx
lea ecx, [ebp + 0x440]
call fcn.00581cd0
mov edx, dword [esp + 0x24]
mov ax, word [esp + 0x18]
mov dword [esp + 0x68], edx
mov dx, word [esp + 0x14]
mov word [esp + 0x64], ax
mov dword [esp + 0x6c], ebx
mov eax, dword [edi]
mov dword [esp + 0x70], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x74], ecx
push eax
lea ecx, [ebp + 0xa74]
mov byte [esp + 0x6a], 1
mov word [esp + 0x84], dx
mov byte [esp + 0x17], 1
call fcn.00585d10
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0xa58]
mov edx, dword [eax + esi]
inc ecx
cmp ecx, dword [edx + 0x74]
mov dword [esp + 0x18], ecx
jbe 0x58a230
jmp 0x58a7a5
cmp byte [ebp + 0x4e0], 0x1c
jne 0x58a483
xor eax, eax
mov byte [esp + 0x1a8], bl
mov ecx, 0x1f
lea edi, [esp + 0x1a9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0xa58]
mov eax, dword [eax + esi]
add eax, 4
push eax
lea ecx, [esp + 0x1ac]
push str._____s
push ecx
call fcn.0065c60e
mov eax, dword [ebp + 0xa58]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov byte [esp + 0x128], bl
mov byte [esp + 0x14a], bl
mov word [esp + 0x148], bx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
mov word [esp + 0x164], bx
mov edx, dword [eax + esi]
mov eax, dword [edx]
push eax
call fcn.004049c0
mov dword [esp + 0x124], eax
mov eax, dword [ebp + 0xa58]
mov ecx, dword [eax + esi]
mov edx, dword [ecx]
add esp, 0x10
mov dword [esp + 0x118], edx
mov eax, dword [eax + esi]
mov eax, dword [eax + 0x7c]
push ebx
push eax
push ebx
lea ecx, [esp + 0x1b4]
push ecx
lea edx, [esp + 0x12c]
push edx
lea ecx, [ebp + 0x440]
mov dword [esp + 0x168], eax
call fcn.00581cd0
or edi, 0xffffffff
lea eax, [esp + 0x114]
push eax
lea ecx, [ebp + 0xa74]
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], edi
mov word [esp + 0x140], 0xffff
mov dword [esp + 0x14c], edi
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], edi
mov byte [esp + 0x142], 1
call fcn.00585d10
mov dword [esp + 0x230], edi
jmp 0x58a908
mov dword [esp + 0x18], ebx
jmp 0x58a490
mov eax, dword [ebp + 0xa58]
mov ecx, dword [eax + esi]
mov eax, dword [ecx]
mov edx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x238]
push edx
mov edx, dword [esp + 0x1c]
push ecx
push edx
push eax
lea ecx, [ebp + 0x440]
call fcn.00581c00
test al, al
je 0x58a5f3
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 0xa58]
mov ecx, dword [eax + esi]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x24]
push 1
push edx
call fcn.004378c0
cmp eax, ebx
mov dword [esp + 0x24], eax
jle 0x58a5f3
mov eax, dword [ebp + 0xa58]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov byte [esp + 0x8c], bl
mov byte [esp + 0xae], bl
mov word [esp + 0xac], bx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov word [esp + 0xc8], bx
mov ecx, dword [eax + esi]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + esi]
mov ecx, dword [edx]
mov dword [esp + 0x88], ecx
mov edx, dword [eax + esi]
mov ecx, dword [edx + 0x7c]
mov dword [esp + 0xc4], ecx
mov edx, dword [eax + esi]
mov eax, dword [eax + esi]
mov ecx, edx
movzx edx, byte [edx + 0x74]
add dl, byte [ecx + 0x70]
mov ecx, dword [esp + 0xc4]
add eax, 4
push edx
mov edx, dword [esp + 0x1c]
push ecx
push edx
push eax
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [ebp + 0x440]
call fcn.00581cd0
mov edx, dword [esp + 0x24]
mov ax, word [esp + 0x18]
mov word [esp + 0xac], ax
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ebx
mov eax, dword [edi]
mov dword [esp + 0xb8], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0xbc], ecx
mov dl, byte [edi + 8]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x84]
push eax
lea ecx, [ebp + 0xa74]
mov byte [esp + 0xb2], dl
mov byte [esp + 0x17], 1
call fcn.00585d10
mov ecx, dword [ebp + 0xa58]
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + esi]
mov edx, dword [ecx + 0x74]
inc eax
cmp eax, edx
mov dword [esp + 0x18], eax
jbe 0x58a490
jmp 0x58a7a5
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x14c0]
cmp ecx, dword [eax + 0x14c4]
mov dword [esp + 0x14], ecx
je 0x58a7af
nop
mov edx, dword [esp + 0x1c]
mov ebp, dword [ecx]
mov eax, dword [edx + 0xa58]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + esi]
cmp ecx, dword [edx]
jne 0x58a784
cmp dword [ebp + 0x54], 1
jne 0x58a784
movzx ecx, byte [ebp + 0x64]
mov eax, edx
mov edx, dword [esp + 0x23c]
mov eax, dword [eax]
push edx
mov edx, dword [esp + 0x23c]
push edx
push ecx
mov ecx, dword [esp + 0x28]
push eax
call fcn.00581f40
test al, al
je 0x58a784
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x160], ebx
mov dword [esp + 0x15c], ebp
mov byte [esp + 0x164], bl
mov byte [esp + 0x186], bl
mov word [esp + 0x184], bx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
mov word [esp + 0x1a0], bx
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x160], eax
mov eax, dword [ebp + 0x548]
mov ecx, dword [eax + 0x7c]
mov eax, dword [edx + 0xa58]
mov dword [esp + 0x19c], ecx
mov edx, dword [eax + esi]
mov eax, edx
movzx edx, byte [edx + 0x74]
add dl, byte [eax + 0x70]
movzx eax, byte [ebp + 0x64]
add ebp, 4
push edx
push ecx
push eax
push ebp
lea ecx, [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
add ecx, 0x440
call fcn.00581cd0
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], ebx
movzx dx, byte [eax + 0x64]
mov word [esp + 0x184], dx
mov eax, dword [edi]
mov dword [esp + 0x190], eax
mov dword [esp + 0x198], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x194], eax
mov cl, byte [edi + 8]
mov byte [esp + 0x186], cl
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x15c]
push edx
add ecx, 0xa74
mov byte [esp + 0x17], 1
call fcn.00585d10
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x14c4]
add ecx, 4
cmp ecx, edx
mov dword [esp + 0x14], ecx
jne 0x58a630
mov ebp, dword [esp + 0x1c]
cmp byte [esp + 0x13], bl
jne 0x58a8fd
mov eax, dword [ebp + 0xa58]
mov ecx, dword [eax + esi]
mov edx, dword [ecx]
push edx
mov ecx, ebp
call fcn.00586bc0
test al, al
jne 0x58a8fd
mov eax, dword [ebp + 0xa58]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xd4], bl
mov byte [esp + 0xf6], bl
mov word [esp + 0xf4], bx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov word [esp + 0x110], bx
mov ecx, dword [eax + esi]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + esi]
mov ecx, dword [edx]
mov dword [esp + 0xd0], ecx
mov eax, dword [eax + esi]
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x238]
xor eax, eax
cmp edx, ebx
mov dword [esp + 0x14], ebx
jle 0x58a875
mov edx, dword [esp + 0x23c]
cmp ecx, dword [edx + eax*8]
je 0x58a86d
mov edx, dword [esp + 0x238]
inc eax
cmp eax, edx
jl 0x58a853
jmp 0x58a875
mov eax, dword [edx + eax*8 + 4]
mov dword [esp + 0x14], eax
mov cx, word [esp + 0x14]
mov eax, dword [ebp + 0xa58]
mov word [esp + 0xf4], cx
mov edx, dword [eax + esi]
mov eax, dword [eax + esi]
mov ecx, edx
movzx edx, byte [edx + 0x74]
add dl, byte [ecx + 0x70]
mov ecx, dword [esp + 0x10c]
add eax, 4
push edx
movzx edx, word [esp + 0x18]
push ecx
push edx
push eax
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [ebp + 0x440]
call fcn.00581cd0
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov edi, dword [edi]
lea edx, [esp + 0xcc]
push edx
lea ecx, [ebp + 0xa74]
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], ebx
mov byte [esp + 0xfa], 1
mov dword [esp + 0x10c], edi
call fcn.00585d10
mov dword [esp + 0x230], 0xffffffff
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ecx
add esi, 4
jmp 0x58a010
mov ecx, ebp
call fcn.00583230
mov ecx, dword [ebp + 0x4e4]
call fcn.006392d0
xor esi, esi
xor edi, edi
jmp 0x58a940
mov eax, dword [ebp + 0xa78]
cmp eax, ebx
je 0x58a99c
mov ecx, dword [ebp + 0xa7c]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x58a99c
mov eax, dword [ebp + 0xa78]
mov ecx, dword [ebp + 0x4e4]
push 0xffffffffffffffff
add eax, edi
push eax
push 0x6fe416
call fcn.00639650
mov ecx, dword [ebp + 0x4e4]
mov eax, dword [ecx]
call dword [eax + 0x6c]
dec eax
push eax
mov ecx, ebp
call fcn.00584290
inc esi
add edi, 0x48
jmp 0x58a940
mov ecx, dword [esp + 0x228]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x224
ret 8