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

Disassembly:
mov eax, 0x5c
call fcn.0051f3e0
mov ecx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x64]
mov eax, dword [ebx]
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x60], edi
cmp eax, dword [ecx]
je 0x58c9c3
push 0x174
push 0x61a5b8
push 0x65
push 0xbb
push 0x10
call fcn.00559960
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
push ebp
mov ebp, dword [esp + 0x7c]
cmp dword [esp + 0x78], edi
jne 0x58c9e4
cmp ebp, edi
jne 0x58c9e4
push ecx
push ebx
call fcn.0056d880
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
mov edx, dword [esp + 0x80]
xor ecx, ecx
cmp ebp, edi
jbe 0x58ca01
mov ebx, dword [edx + ecx*4]
cmp eax, dword [ebx]
jne 0x58ca50
inc ecx
cmp ecx, ebp
jb 0x58c9f1
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x88], edi
jne 0x58ca22
call fcn.0056cf20
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], eax
cmp eax, edi
je 0x58d31f
cmp dword [esp + 0x78], edi
je 0x58cb28
push ebx
call fcn.0056d190
mov esi, eax
add esp, 4
mov dword [esp + 0x5c], esi
cmp esi, edi
jne 0x58ca75
push 0x192
push 0x61a5b8
push 0x71
jmp 0x58d263
push 0x181
push 0x61a5b8
push 0x65
push 0xbb
push 0x10
call fcn.00559960
add esp, 0x14
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x44]
push 0x58c6d0
push fcn.0058c670
push 0x58c650
push ecx
call fcn.0056d500
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x3c], ebx
cmp ebx, edi
je 0x58cb17
cmp dword [ebx + 8], edi
je 0x58cb17
mov edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x74]
push ecx
push esi
push edx
call fcn.0056df60
add esp, 0x10
test eax, eax
jne 0x58cb17
mov eax, dword [esp + 0x78]
mov esi, dword [ebx + 4]
push eax
mov dword [esp + 0x44], esi
call fcn.00569250
xor edx, edx
div esi
add esp, 4
mov esi, eax
mov eax, dword [ebx + 8]
inc esi
mov dword [esp + 0x28], esi
cmp esi, eax
jbe 0x58caef
mov esi, eax
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0xc]
dec ecx
mov edx, 1
shl edx, cl
imul eax, edx
mov dword [esp + 0x58], edx
cmp dword [ebx + 0x14], eax
je 0x58cb28
push 0x1ab
push 0x61a5b8
push 0x44
jmp 0x58d263
mov esi, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], esi
lea eax, [esi + ebp]
push 0x1ba
lea esi, [eax*4]
push 0x61a5b8
push esi
mov dword [esp + 0x24], eax
call fcn.0055d180
push 0x1bb
mov ebx, eax
push 0x61a5b8
push esi
mov dword [esp + 0x4c], ebx
call fcn.0055d180
push 0x1bc
lea ecx, [esi + 4]
push 0x61a5b8
push ecx
mov dword [esp + 0x40], eax
call fcn.0055d180
push 0x1bd
push 0x61a5b8
push esi
mov dword [esp + 0x50], eax
call fcn.0055d180
add esp, 0x30
mov dword [esp + 0x10], eax
cmp ebx, edi
je 0x58d257
cmp dword [esp + 0x1c], edi
je 0x58d257
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x58d257
cmp dword [esp + 0x10], edi
je 0x58d257
mov edx, dword [esp + 0x38]
mov dword [eax], edi
lea eax, [edx + ebp]
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], eax
cmp eax, edi
jbe 0x58ccd0
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub ecx, ebx
sub edi, ebx
sub eax, ebx
mov esi, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x68], eax
jmp 0x58cc08
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x14], ebp
jae 0x58cc18
mov eax, dword [ecx + esi]
push eax
jmp 0x58cc19
push ebx
call fcn.00569250
add esp, 4
cmp eax, 0x7d0
jb 0x58cc2f
mov eax, 6
jmp 0x58cc5f
cmp eax, 0x320
jb 0x58cc3d
mov eax, 5
jmp 0x58cc5f
cmp eax, 0x12c
jb 0x58cc4b
mov eax, 4
jmp 0x58cc5f
cmp eax, 0x46
jb 0x58cc57
mov eax, 3
jmp 0x58cc5f
cmp eax, 0x14
sbb eax, eax
add eax, 2
lea ecx, [eax - 1]
mov edx, 1
shl edx, cl
mov dword [esi], eax
mov dword [edi + esi + 4], 0
add dword [esp + 0x30], edx
cmp dword [esp + 0x14], ebp
jae 0x58cc86
mov eax, dword [esp + 0x50]
mov eax, dword [eax + esi]
jmp 0x58cc88
mov eax, ebx
mov ecx, dword [esp + 0x68]
mov edi, dword [esi]
lea ebx, [ecx + esi]
push ebx
push eax
call fcn.0058c750
mov edx, dword [esp + 0x5c]
add esp, 8
mov dword [edx + esi], eax
test eax, eax
je 0x58d272
mov ebx, dword [ebx]
cmp ebx, dword [esp + 0x24]
jbe 0x58ccb6
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x14]
inc eax
add esi, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x2c]
jb 0x58cc00
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x28], 0
je 0x58ce84
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x58ccff
cmp dword [esp + 0x38], 1
je 0x58ce84
push 0x1e1
push 0x61a5b8
push 0x44
jmp 0x58d263
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], 0
je 0x58cd1f
push 0x1ed
push 0x61a5b8
push 0x44
jmp 0x58d263
mov ecx, dword [esp + 0x78]
mov edi, dword [esi + 0xc]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [ebx + ebp*4], edi
call fcn.0058c750
mov ecx, eax
add esp, 8
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x58d272
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x24]
ja 0x58cd7b
lea edx, [ebp + 1]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
mov dword [edx + ebp*4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx + ebp*4 + 4], 0
mov dword [ecx + ebp*4], eax
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x10]
mov dword [eax + ebp*4], edx
jmp 0x58ce84
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
imul edx, edi
cmp eax, edx
jae 0x58cdae
xor edx, edx
lea eax, [eax + edi - 1]
div edi
cmp eax, dword [esi + 8]
jbe 0x58cda8
push 0x215
push 0x61a5b8
push 0x44
jmp 0x58d263
add eax, ebp
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x38], ecx
mov ebx, ebp
cmp ebp, dword [esp + 0x18]
jae 0x58ce7b
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov ecx, ebx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x10]
sub ebp, eax
sub ecx, eax
mov dword [esp + 0x68], ecx
mov edi, edi
mov eax, dword [esp + 0x18]
dec eax
cmp ebx, eax
jae 0x58cdff
mov eax, dword [esp + 0x40]
mov dword [esi], eax
cmp dword [esp + 0x14], eax
jb 0x58ceb4
sub dword [esp + 0x14], eax
jmp 0x58ce05
mov edx, dword [esp + 0x14]
mov dword [esi], edx
push 0x231
mov dword [esi + ebp + 4], 0
mov eax, dword [esi]
push 0x61a5b8
push eax
call fcn.0055d180
add esp, 0xc
mov dword [esi + ebp], eax
test eax, eax
je 0x58cec5
mov ecx, dword [esi]
mov edx, dword [esp + 0x38]
push ecx
push edx
push eax
call fcn.0051ff80
mov eax, dword [esi]
add esp, 0xc
cmp eax, dword [esp + 0x24]
jbe 0x58ce4a
mov dword [esp + 0x24], eax
cmp dword [edi], 0
je 0x58ceef
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
add dword [esp + 0x38], edx
mov dword [eax + esi], edi
inc ebx
add esi, 4
lea edi, [edi + ecx*4]
cmp ebx, dword [esp + 0x18]
jb 0x58cde0
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0055d330
add esp, 4
mov edx, dword [esp + 0x30]
push 0x24e
lea eax, [edx*4 + 4]
push 0x61a5b8
push eax
call fcn.0055d180
add esp, 0xc
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x58cf19
push 0x251
jmp 0x58d25c
push 0x226
push 0x61a5b8
push 0x44
jmp 0x58d263
push 0x234
push 0x61a5b8
push 0x41
push 0xbb
push 0x10
call fcn.00559960
mov eax, dword [esp + 0x64]
push eax
call fcn.0055d330
add esp, 0x18
jmp 0x58d272
push 0x23e
push 0x61a5b8
push 0x44
push 0xbb
push 0x10
call fcn.00559960
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0055d330
add esp, 0x18
jmp 0x58d272
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
lea eax, [edi + ecx*4]
xor ebp, ebp
mov dword [esp + 0x58], eax
mov dword [eax], 0
cmp dword [esp + 0x2c], ebp
jbe 0x58cf9b
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
sub eax, esi
mov dword [esp + 0x68], eax
mov dword [eax + esi], edi
mov ecx, dword [esi]
dec ecx
mov edx, 1
shl edx, cl
xor ebx, ebx
test edx, edx
jbe 0x58cf8d
jmp 0x58cf60
mov eax, dword [esp + 0x70]
push eax
call fcn.0056d680
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x58d272
mov ecx, dword [esi]
dec ecx
mov edx, 1
shl edx, cl
inc ebx
add edi, 4
cmp ebx, edx
jb 0x58cf60
mov eax, dword [esp + 0x68]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x58cf44
mov eax, dword [esp + 0x58]
cmp edi, eax
je 0x58cfb0
push 0x264
push 0x61a5b8
push 0x44
jmp 0x58d263
mov eax, dword [esp + 0x70]
push eax
call fcn.0056d680
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x58d272
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x58d0a3
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x34]
sub edi, esi
mov dword [esp + 0x68], edi
sub ebx, esi
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [edx]
cmp ebp, dword [esp + 0x7c]
jae 0x58cfff
mov ecx, dword [edi + esi]
jmp 0x58d003
mov ecx, dword [esp + 0x5c]
push ecx
push eax
call fcn.0056d7a0
add esp, 8
test eax, eax
je 0x58d272
cmp dword [ebx + esi], 1
jbe 0x58d095
mov edx, dword [esi]
mov ecx, dword [esp + 0x88]
mov eax, dword [edx]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x4c]
push eax
push ecx
push edx
call fcn.0056ddc0
add esp, 0x10
test eax, eax
je 0x58d272
mov ecx, dword [ebx + esi]
mov edi, 1
dec ecx
mov eax, edi
shl eax, cl
cmp eax, edi
jbe 0x58d091
mov ecx, dword [esi]
mov edx, dword [esp + 0x88]
lea eax, [ecx + edi*4]
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [eax - 4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
call fcn.0056dd40
add esp, 0x14
test eax, eax
je 0x58d272
mov ecx, dword [ebx + esi]
dec ecx
mov edx, 1
shl edx, cl
inc edi
cmp edi, edx
jb 0x58d053
mov edi, dword [esp + 0x68]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x58cff0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.0056e030
add esp, 0x10
test eax, eax
je 0x58d272
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffff
mov esi, 1
mov dword [esp + 0x40], esi
js 0x58d214
test esi, esi
jne 0x58d107
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push ecx
push eax
push eax
push edx
call fcn.0056ddc0
add esp, 0x10
test eax, eax
je 0x58d272
cmp dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
jbe 0x58d207
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
sub ebp, eax
sub eax, edi
mov dword [esp + 0x68], eax
jmp 0x58d134
mov eax, dword [esp + 0x68]
add eax, edi
cmp dword [eax + ebp], ebx
jbe 0x58d1ed
mov eax, dword [eax]
movsx esi, byte [eax + ebx]
test esi, esi
je 0x58d1ed
xor eax, eax
test esi, esi
setl al
test eax, eax
je 0x58d15a
neg esi
cmp eax, dword [esp + 0x44]
je 0x58d196
cmp dword [esp + 0x40], 0
jne 0x58d189
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.0056de30
add esp, 0xc
test eax, eax
je 0x58d272
xor ecx, ecx
cmp dword [esp + 0x44], ecx
sete cl
mov dword [esp + 0x44], ecx
sar esi, 1
cmp dword [esp + 0x40], 0
je 0x58d1c4
mov edx, dword [edi]
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.0056d7a0
add esp, 8
test eax, eax
je 0x58d272
mov dword [esp + 0x40], 0
jmp 0x58d1ed
mov eax, dword [edi]
mov edx, dword [esp + 0x88]
mov ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push ecx
push eax
push eax
push edx
call fcn.0056dd40
add esp, 0x14
test eax, eax
je 0x58d272
mov eax, dword [esp + 0x14]
inc eax
add edi, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jb 0x58d130
mov esi, dword [esp + 0x40]
sub ebx, 1
jns 0x58d0e0
test esi, esi
je 0x58d228
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push eax
push ecx
call fcn.0056d880
add esp, 8
jmp 0x58d249
cmp dword [esp + 0x44], 0
je 0x58d24d
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edx
push eax
push ecx
call fcn.0056de30
add esp, 0xc
test eax, eax
je 0x58d272
mov dword [esp + 0x64], 1
jmp 0x58d272
push 0x1c1
push 0x61a5b8
push 0x41
push 0xbb
push 0x10
call fcn.00559960
add esp, 0x14
mov eax, dword [esp + 0x60]
test eax, eax
je 0x58d283
push eax
call fcn.0056cf80
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x58d294
push eax
call fcn.0056d730
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x58d2a5
push eax
call fcn.0055d330
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x58d2b6
push eax
call fcn.0055d330
add esp, 4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x58d2e2
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x58d2d9
push eax
call fcn.0055d330
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x58d2c6
push edi
call fcn.0055d330
add esp, 4
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x58d30e
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x58d305
push eax
call fcn.0056d760
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x58d2f2
push edi
call fcn.0055d330
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x58d31f
push eax
call fcn.0055d330
add esp, 4
mov eax, dword [esp + 0x64]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret