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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb0]
test edi, edi
mov dword [esp + 0x48], eax
mov edx, dword [edx + 4]
mov dword [esp + 0x54], edx
js 0x586441
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], 0xb28ae9
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x10], edi
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [esp + 0xc], ebp
call fcn.0090e610
mov edx, dword [esp + 0xb0]
mov edx, dword [edx + ebp*4 + 0x64]
mov ebp, dword [edx + 0x90]
mov dword [esp + 0x78], edx
test ebp, ebp
je 0x58647c
mov edi, dword [edx + 0x94]
mov ecx, dword [esp + 0xc0]
mov esi, edi
mov dword [esp + 0x84], edi
mov eax, esi
mov edi, 0xffffffff
sub eax, edi
or ecx, 1
sub eax, 1
mov dword [esp + 0x7c], ecx
jle 0x585fff
nop
lea edx, [esi + edi]
sar edx, 1
lea eax, [edx + edx*2]
mov ebx, dword [ebp + eax*8 + 0xc]
cmp dword [esp + 0x4c], ebx
mov ecx, dword [ebp + eax*8 + 8]
jg 0x585ff0
jl 0x585ff4
cmp dword [esp + 0x48], ecx
ja 0x585ff0
cmp dword [esp + 0x4c], ebx
jl 0x585ff4
jg 0x585fec
cmp dword [esp + 0x48], ecx
jb 0x585ff4
mov esi, edx
nop
mov edi, edx
mov edx, esi
mov esi, edx
mov eax, esi
sub eax, edi
sub eax, 1
jg 0x585fc0
movzx edx, byte [esp + 0x7c]
and edx, 1
je 0x58600b
mov esi, edi
test byte [esp + 0x7c], 4
je 0x586200
xor edi, edi
xor eax, eax
cmp esi, dword [esp + 0x84]
je 0x586032
mov edi, esi
sar edi, 0x1f
not edi
and edi, esi
lea eax, [edi + edi*2]
shl eax, 3
lea ebx, [ebp + eax]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
jle 0x586265
mov ebp, dword [esp + 0x6c]
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xb0]
mov dword [esp + 0x58], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x5c], ecx
mov dword [esp], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 0xb28b00
mov dword [esp + 4], 2
call fcn.0090e610
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 0x94]
mov ebp, dword [eax + 0x90]
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0x84]
mov edi, 0xffffffff
mov ecx, dword [esp + 0xc0]
mov eax, esi
sub eax, edi
and ecx, 0xfffffffe
sub eax, 1
mov dword [esp + 0x80], ecx
jle 0x58610f
nop
lea edx, [esi + edi]
sar edx, 1
lea eax, [edx + edx*2]
mov ebx, dword [ebp + eax*8 + 0xc]
cmp dword [esp + 0x4c], ebx
mov ecx, dword [ebp + eax*8 + 8]
jg 0x586100
jl 0x586104
cmp dword [esp + 0x48], ecx
ja 0x586100
cmp dword [esp + 0x4c], ebx
jl 0x586104
jg 0x5860fc
cmp dword [esp + 0x48], ecx
jb 0x586104
mov esi, edx
nop
mov edi, edx
mov edx, esi
mov esi, edx
mov eax, esi
sub eax, edi
sub eax, 1
jg 0x5860d0
test byte [esp + 0x80], 4
jne 0x58616d
test esi, esi
js 0x58616d
cmp esi, dword [esp + 0x84]
jge 0x58616d
lea eax, [esi + esi*2]
lea edx, [eax*8]
test byte [ebp + edx + 0x10], 1
jne 0x58616d
xor eax, eax
test al, al
jne 0x5864b1
lea edx, [esi + 1]
lea eax, [edx + edx*2]
lea ecx, [ebp + eax*8]
jmp 0x58615e
movzx eax, byte [ecx + 0x10]
add ecx, 0x18
test al, 1
jne 0x58616d
lea edx, [esi + 1]
test edx, edx
mov esi, edx
js 0x58616d
cmp edx, dword [esp + 0x84]
jl 0x586150
xor eax, eax
cmp esi, dword [esp + 0x84]
setne al
sub eax, 1
or esi, eax
cmp esi, dword [esp + 0x84]
jge 0x586460
test esi, esi
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x80000000
js 0x586312
lea eax, [esi + esi*2]
lea eax, [ebp + eax*8]
mov ebp, dword [eax + 0xc]
mov edi, dword [eax + 8]
cmp dword [esp + 0x4c], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], edi
jl 0x5862b6
jg 0x5861de
cmp dword [esp + 0x48], edi
jbe 0x5862b6
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xb28795
mov dword [esp], 0xb28b52
call sub.msvcrt.dll__assert
lea esi, [esi]
test esi, esi
js 0x586016
cmp esi, dword [esp + 0x84]
jge 0x586016
lea eax, [esi + esi*2]
shl eax, 3
test byte [ebp + eax + 0x10], 1
jne 0x586016
test dl, dl
jne 0x5864db
lea edx, [esi + 1]
lea eax, [edx + edx*2]
lea ecx, [ebp + eax*8]
jmp 0x58624c
movzx eax, byte [ecx + 0x10]
add ecx, 0x18
test al, 1
jne 0x586016
lea edx, [esi + 1]
test edx, edx
mov esi, edx
js 0x586016
cmp dword [esp + 0x84], edx
jle 0x586016
jmp 0x58623a
jge 0x586451
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 4]
mov edx, eax
xor eax, dword [ebx]
sar edx, 0x1f
xor ecx, edx
or ecx, eax
je 0x58604e
test edi, edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x80000000
je 0x5860a9
mov dword [esp + 8], 0x452
mov dword [esp + 4], 0xb28795
mov dword [esp], 0xb28b2c
call sub.msvcrt.dll__assert
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov dword [esp + 8], 0xb28b6c
mov edi, ebx
mov ebp, esi
mov edx, eax
sar edx, 0x1f
sub edi, eax
mov eax, dword [esp + 0x70]
sbb ebp, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 4], 2
mov dword [esp], edx
call fcn.0090e610
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0x64]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.00582cf0
test edx, edx
js 0x586441
mov dword [esp + 4], eax
mov eax, edi
add eax, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0058ba20
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
mov esi, dword [eax + 0x60]
test esi, esi
je 0x586434
xor esi, esi
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x78]
mov ebx, dword [edx + esi*4 + 0x64]
add esi, 1
mov eax, dword [ebx + 0x40]
imul dword [ecx + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [ebx + 0x44]
imul dword [ecx + 0x40]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0090f0e0
mov dword [ebx + 0x78], eax
mov eax, dword [esp + 0xb0]
mov dword [ebx + 0x7c], edx
cmp dword [eax + 0x60], esi
ja 0x5863e8
add esp, 0x9c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x9c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x48], eax
jae 0x58604e
jmp 0x58626b
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xb28795
mov dword [esp], 0xb28b35
call sub.msvcrt.dll__assert
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x80000000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x80000000
jmp 0x586312
lea edx, [ebp + edx - 0x18]
sub esi, 1
js 0x58616d
cmp esi, dword [esp + 0x84]
jge 0x58616d
movzx eax, byte [edx + 0x10]
sub edx, 0x18
test al, 1
je 0x5864b5
jmp 0x58616d
lea edx, [ebp + eax - 0x18]
sub esi, 1
js 0x586016
cmp dword [esp + 0x84], esi
jle 0x586016
movzx eax, byte [edx + 0x10]
sub edx, 0x18
test al, 1
je 0x5864df
jmp 0x586016