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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3bc]
cmp eax, dword [ecx + 8]
jbe 0x58fc4f
sub esp, 0x43c
lea edi, [esp + 0x1b8]
mov ecx, 0xa0
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x440]
mov ebx, dword [edx]
mov ebp, dword [edx + 4]
mov esi, dword [edx + 8]
mov eax, ebx
mov ebx, dword [edx + 0xc]
mov ecx, ebx
mov ebx, dword [edx + 0x10]
mov edi, ebx
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x60], ebx
mov ebx, dword [edx + 0x18]
mov dword [esp + 0x54], ebx
mov ebx, dword [edx + 0x1c]
mov dword [esp + 0x58], ebx
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x4c], ebx
mov ebx, dword [edx + 0x24]
mov dword [esp + 0x50], ebx
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x44], ebx
mov ebx, dword [edx + 0x2c]
mov dword [esp + 0x48], ebx
mov ebx, dword [edx + 0x30]
mov dword [esp + 0x3c], ebx
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x40], ebx
mov ebx, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0xd4], eax
mov dword [esp + 0x1a8], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x1a0], edx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1a8]
jmp 0x58f3ba
mov edx, dword [esp + 0x6c]
add eax, edx
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x70]
adc ebp, edx
mov edx, dword [esp + 0x64]
add esi, edx
mov edx, dword [esp + 0x68]
adc ecx, edx
mov dword [esp + 0xc8], ecx
mov edx, dword [esp + 0x5c]
add edi, edx
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x60]
adc edx, eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x54]
add eax, ecx
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x58]
adc ecx, eax
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0x4c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x50]
adc eax, ecx
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x88]
adc eax, ecx
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
add ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x80]
adc eax, ecx
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x38]
adc eax, ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xd0]
add ecx, 0xffffff80
mov dword [esp + 0xd0], ecx
neg ecx
sar ecx, 0x1f
and ecx, 0x80
mov eax, dword [esp + 0x438]
add eax, ecx
mov ecx, dword [esp + 0xd4]
add ecx, 0xffffff80
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x438], eax
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x180], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xd4]
cmp edx, 0x80
jl 0x58f50c
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x178], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x178]
jmp 0x58f5a1
mov ebx, 0x10
jmp 0x58f6f6
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x170], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x160], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x88], edx
mov dword [esp + 0x158], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x150], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x148], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x7c], esi
mov ebp, dword [esp + 0x150]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x168]
mov esi, dword [esp + 0x148]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x130], ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x94], ebp
mov ebx, dword [esp + 0x158]
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x90], ebx
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x168]
mov ebp, dword [esp + 0x150]
mov ebx, dword [esp + 0x158]
jmp 0x58fa93
mov edx, dword [esp + 0x440]
mov dword [edx], eax
mov dword [edx + 4], ebp
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], edi
mov eax, dword [esp + 0x60]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 0x34], eax
mov dword [edx + 0x38], ebx
mov eax, dword [esp + 0x38]
mov dword [edx + 0x3c], eax
add esp, 0x43c
ret
lea ebx, [esp + edi*8 + 0x1b8]
mov dword [ebx], esi
lea ebx, [esp + edi*8 + 0x1bc]
mov dword [ebx], ebp
lea ebx, [edi + 1]
mov ebp, dword [esp + 0x438]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
cmp ebx, 0x10
jge 0x58f3fa
shl ebx, 3
cmp edx, ebx
jbe 0x58fc45
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x438]
lea edi, [esi + ebp*8]
movzx edi, byte [edi]
inc ebx
cmp edx, ebx
jbe 0x58fc3c
shl edi, 0x18
lea ebx, [esi + ebp*8 + 1]
movzx ebx, byte [ebx]
shl ebx, 0x10
or ebx, edi
mov edi, dword [esp + 0x24]
add edi, 2
cmp edx, edi
jbe 0x58fc33
lea edi, [esi + ebp*8 + 2]
movzx edi, byte [edi]
shl edi, 8
or edi, ebx
mov ebx, dword [esp + 0x24]
add ebx, 3
cmp edx, ebx
jbe 0x58fc2a
lea ebx, [esi + ebp*8 + 3]
movzx ebx, byte [ebx]
or ebx, edi
mov edi, dword [esp + 0x24]
add edi, 4
cmp edx, edi
jbe 0x58fc21
lea edi, [esi + ebp*8 + 4]
movzx edi, byte [edi]
mov dword [esp + 0xcc], edi
shr edi, 8
or ebx, edi
mov edi, dword [esp + 0x24]
add edi, 5
cmp edx, edi
jbe 0x58fc18
mov edi, dword [esp + 0xcc]
shl edi, 0x18
lea ebp, [esi + ebp*8 + 5]
movzx ebp, byte [ebp]
mov dword [esp + 0xcc], ebp
shl ebp, 0x10
or ebp, edi
mov edi, dword [esp + 0xcc]
shr edi, 0x10
or edi, ebx
mov ebx, dword [esp + 0x24]
add ebx, 6
cmp edx, ebx
jbe 0x58fc0f
mov ebx, dword [esp + 0x30]
lea ebx, [esi + ebx*8 + 6]
movzx ebx, byte [ebx]
mov dword [esp + 0xcc], ebx
shl ebx, 8
or ebx, ebp
mov ebp, dword [esp + 0xcc]
shr ebp, 0x18
or ebp, edi
mov edi, dword [esp + 0x24]
add edi, 7
cmp edx, edi
jbe 0x58fc06
mov edi, dword [esp + 0x30]
lea esi, [esi + edi*8 + 7]
movzx esi, byte [esi]
or esi, ebx
cmp edi, 0x50
jb 0x58f571
jmp 0x58fbfa
lea edx, [esp + ebx*8 + 0x1b8]
mov dword [edx], edi
lea edx, [esp + ebx*8 + 0x1bc]
mov dword [edx], esi
inc ebx
mov edx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x5c]
cmp ebx, 0x50
jge 0x58f404
lea edx, [ebx - 2]
cmp edx, 0x50
jae 0x58fbee
lea edx, [esp + ebx*8 + 0x1a8]
mov ebp, dword [edx + 4]
mov dword [esp + 0x14], ebp
mov edx, dword [edx]
mov dword [esp + 0x10], edx
shl edx, 0xd
shr ebp, 0x13
or ebp, edx
mov edx, dword [esp + 0x14]
shl edx, 3
mov esi, dword [esp + 0x10]
shr esi, 0x1d
or esi, edx
xor esi, ebp
mov edx, dword [esp + 0x14]
mov ebp, edx
shl edx, 0xd
mov edi, dword [esp + 0x10]
shr edi, 0x13
or edx, edi
mov edi, dword [esp + 0x10]
shl edi, 3
shr ebp, 0x1d
or ebp, edi
xor edx, ebp
mov ebp, dword [esp + 0x14]
mov edi, ebp
shr ebp, 6
xor esi, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 6
shl edi, 0x1a
or edi, ebp
xor edi, edx
lea edx, [ebx - 0xf]
cmp edx, 0x50
jae 0x58fbe2
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edi
lea edx, [esp + ebx*8 + 0x140]
mov ebp, dword [edx + 4]
mov dword [esp + 0xc], ebp
mov edx, dword [edx]
mov dword [esp + 8], edx
shl edx, 0x1f
shr ebp, 1
or ebp, edx
mov edx, dword [esp + 8]
shl edx, 0x18
mov esi, dword [esp + 0xc]
shr esi, 8
or esi, edx
xor esi, ebp
mov edx, dword [esp + 8]
mov ebp, edx
shr edx, 1
mov edi, dword [esp + 0xc]
shl edi, 0x1f
or edi, edx
mov edx, ebp
shr ebp, 8
mov ebx, dword [esp + 0xc]
shl ebx, 0x18
or ebx, ebp
xor ebx, edi
mov ebp, dword [esp + 0xc]
mov edi, ebp
shr ebp, 7
xor esi, ebp
shr edx, 7
shl edi, 0x19
or edi, edx
xor edi, ebx
mov edx, dword [esp + 0x2c]
lea ebx, [edx - 7]
cmp ebx, 0x50
jae 0x58fbd6
lea ebx, [esp + edx*8 + 0x180]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
add edx, ebp
mov ebp, dword [esp + 0x20]
adc ebp, ebx
add edx, edi
adc ebp, esi
mov ebx, dword [esp + 0x2c]
lea esi, [ebx - 0x10]
cmp esi, 0x50
jae 0x58fbca
lea esi, [esp + ebx*8 + 0x138]
mov edi, dword [esi]
mov esi, dword [esi + 4]
add edi, edx
adc esi, ebp
cmp ebx, 0x50
jb 0x58f6d0
jmp 0x58fbbe
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
lea esi, [edi + ebp*8]
mov edi, dword [esi]
mov esi, dword [esi + 4]
add ebx, edi
adc esi, edx
lea edx, [esp + ebp*8 + 0x1b8]
mov edi, dword [edx]
mov edx, dword [edx + 4]
add ebx, edi
mov dword [esp + 0x18], ebx
adc edx, esi
mov dword [esp + 0xc8], edx
mov esi, eax
shl eax, 4
mov edi, dword [esp + 0xb0]
shr edi, 0x1c
or edi, eax
mov eax, esi
shr esi, 2
mov ebp, dword [esp + 0xb0]
shl ebp, 0x1e
or ebp, esi
xor ebp, edi
mov esi, dword [esp + 0xb0]
mov edi, esi
shl esi, 4
shr eax, 0x1c
or eax, esi
mov esi, dword [esp + 0xac]
shl esi, 0x1e
shr edi, 2
or edi, esi
xor eax, edi
mov esi, dword [esp + 0xac]
mov edi, esi
shr esi, 7
mov edx, dword [esp + 0xb0]
shl edx, 0x19
or esi, edx
xor ebp, esi
mov dword [esp + 0xcc], ebp
mov esi, edi
shl edi, 0x19
mov edx, dword [esp + 0xb0]
shr edx, 7
or edx, edi
xor eax, edx
mov edx, dword [esp + 0xb0]
mov edi, edx
and edx, ecx
mov ebx, dword [esp + 0xa4]
and esi, ebx
mov ebp, dword [esp + 0xa0]
and ebp, edi
xor ebp, edx
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0x9c]
and edx, edi
xor edx, esi
mov esi, dword [esp + 0xa0]
and esi, ecx
xor ebp, esi
and ebx, edi
xor ebx, edx
add eax, ebx
mov edx, dword [esp + 0xcc]
adc ebp, edx
mov ebx, dword [esp + 0x94]
mov edx, dword [esp + 0x18]
add ebx, edx
mov dword [esp + 0xcc], ebx
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0x98]
adc ebx, ecx
add eax, edx
adc ebp, ecx
mov ecx, dword [esp + 0x28]
inc ecx
mov edx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x108], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x108]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], eax
mov dword [esp + 0xf8], ebp
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x94], ebp
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x88], ebx
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x84], edi
mov dword [esp + 0xe0], ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x120]
mov ebp, dword [esp + 0x108]
mov ebx, dword [esp + 0xcc]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xd4]
mov edx, dword [esp + 0x28]
cmp edx, 0x50
jge 0x58f23c
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x8c], ebx
shl ebx, 0x12
mov edi, dword [esp + 0x90]
shr edi, 0xe
or edi, ebx
mov ebx, dword [esp + 0x8c]
shl ebx, 0xe
mov esi, dword [esp + 0x90]
shr esi, 0x12
or esi, ebx
xor edi, esi
mov ebx, dword [esp + 0x8c]
mov esi, ebx
shr ebx, 0xe
mov ebp, dword [esp + 0x90]
shl ebp, 0x12
or ebp, ebx
mov ebx, dword [esp + 0x90]
shl ebx, 0xe
shr esi, 0x12
or ebx, esi
xor ebx, ebp
mov ebp, dword [esp + 0x8c]
mov esi, ebp
shr ebp, 9
mov edx, dword [esp + 0x90]
shl edx, 0x17
or ebp, edx
xor ebp, edi
mov edx, esi
shl esi, 0x17
mov edi, dword [esp + 0x90]
shr edi, 9
or edi, esi
xor ebx, edi
mov esi, dword [esp + 0x74]
add ebx, esi
mov esi, dword [esp + 0x78]
adc ebp, esi
mov dword [esp + 0xc8], ebp
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x88]
and esi, edi
mov edi, dword [esp + 0x84]
and edx, edi
mov edi, dword [esp + 0x90]
xchg edi, ebx
not ebx
xchg edi, ebx
mov ebp, dword [esp + 0x80]
and edi, ebp
xor edi, esi
mov esi, dword [esp + 0x8c]
xchg esi, ebx
not ebx
xchg esi, ebx
mov ebp, dword [esp + 0x7c]
and esi, ebp
xor esi, edx
add ebx, esi
mov edx, dword [esp + 0xc8]
adc edx, edi
mov esi, dword [0x868384]
mov edi, dword [0x868380]
mov ebp, dword [esp + 0x28]
cmp ebp, esi
jb 0x58f847
mov eax, ebp
mov ecx, esi
call fcn.00463700
mov eax, ebx
mov ecx, 0x50
call fcn.00463700
mov eax, esi
mov ecx, 0x50
call fcn.00463700
mov eax, ebx
mov ecx, 0x50
call fcn.00463700
mov eax, edx
mov ecx, 0x50
call fcn.00463700
mov eax, edx
mov ecx, 0x50
call fcn.00463700
mov eax, edi
mov ecx, 0x50
call fcn.00463700
mov eax, edi
mov ecx, edx
call fcn.00463700
mov eax, ebx
mov ecx, edx
call fcn.00463700
mov eax, edi
mov ecx, edx
call fcn.00463700
mov eax, edi
mov ecx, edx
call fcn.00463700
mov eax, ebx
mov ecx, edx
call fcn.00463700
mov eax, edi
mov ecx, edx
call fcn.00463700
mov eax, ebx
mov ecx, edx
call fcn.00463700
mov eax, ebx
mov ecx, edx
call fcn.00463700
nop
call fcn.00462270
jmp fcn.0058f150