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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x174]
cmp eax, dword [ecx + 8]
jbe 0x5958d3
sub esp, 0x1f4
mov eax, dword [esp + 0x1f8]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jne 0x595163
mov ecx, dword [esp + 0x204]
test ecx, ecx
je 0x594bcf
mov edx, dword [esp + 0x200]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
mov esi, dword [eax + 0x24]
cmp dword [eax + 0x28], ebp
jne 0x594b43
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.00402870
movzx eax, byte [esp + 0xc]
test al, al
je 0x594b3c
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x204]
jmp 0x594bcf
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], 5
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
lea eax, [0x69c3a0]
mov dword [esp], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.00408750
mov eax, dword [esp + 8]
lea ecx, [0x895804]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
mov edx, dword [esp + 0x20c]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0x120]
call fcn.0045fc4e
lea edi, [esp + 0x10c]
lea esi, [esp + 0x120]
call fcn.0045fc4e
mov ecx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
test ebx, 0x80000000
je 0x594c34
shl ebx, 1
mov ebp, ecx
shr ecx, 0x1f
or ebx, ecx
mov ecx, ebp
shl ebp, 1
mov esi, ebx
shl ebx, 1
shr ebp, 0x1f
or ebp, ebx
shr esi, 0x1f
add ebp, 0xd7b17f80
adc esi, 0xd
jmp 0x594c42
mov ebp, dword [esp + 0x114]
mov esi, dword [esp + 0x118]
test ebp, ebp
sete bl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x594c7b
test ecx, 0x3fffffff
jne 0x594c7b
call fcn.00480f00
lea edi, [esp + 0x120]
lea esi, [esp]
call fcn.0045fc4e
mov eax, dword [esp + 0x1f8]
lea esi, [eax + 0x158]
mov dword [esp + 0xd8], esi
lea edi, [esp + 0x170]
call fcn.0045fc4e
lea edi, [esp]
lea esi, [esp + 0x120]
call fcn.0045fc4e
lea edi, [esp + 0x14]
lea esi, [esp + 0x170]
call fcn.0045fc4e
call fcn.0047f3a0
movzx eax, byte [esp + 0x28]
test al, al
jne 0x594fbc
mov eax, dword [esp + 0x1f8]
lea esi, [eax + 0x16c]
mov dword [esp + 0xd8], esi
lea edi, [esp + 0x148]
call fcn.0045fc4e
lea edi, [esp]
lea esi, [esp + 0x120]
call fcn.0045fc4e
lea edi, [esp + 0x14]
lea esi, [esp + 0x148]
call fcn.0045fc4e
call fcn.0047f280
movzx eax, byte [esp + 0x28]
test al, al
jne 0x594e15
mov ecx, dword [esp + 0x20c]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x594d30
mov dword [esp + 0x40], 0x3d090
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x1fc]
cmp ecx, 1
jne 0x594d4f
mov edx, dword [esp + 0x204]
test edx, edx
jmp 0x594d5d
cmp ecx, 2
jne 0x594da9
mov edx, dword [esp + 0x204]
test edx, edx
je 0x594d6d
mov ebx, dword [esp + 0x200]
mov ebx, dword [ebx]
cmp ecx, 1
jmp 0x594db8
lea eax, [0x687ca0]
mov dword [esp], eax
call fcn.0040af90
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x38
lea ecx, [0x6cb005]
mov dword [eax], ecx
lea ecx, [0x8953a4]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
cmp ecx, 1
mov edx, dword [esp + 0x204]
mov ebx, 0
mov dword [esp + 0xc8], ebx
je 0x594dc6
cmp ecx, 2
jne 0x594e0e
nop
mov ebp, dword [0xa17638]
mov dword [esp + 0xb8], ebp
mov eax, edx
mov edx, dword [0xa1763c]
mov dword [esp + 0x3c], edx
mov esi, ecx
mov ecx, dword [esp + 0x1f8]
mov edi, ebx
mov ebx, dword [ecx + 0x184]
mov ecx, dword [ecx + 0x188]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
jmp 0x59581d
xor eax, eax
jmp 0x595184
lea edi, [esp]
lea esi, [esp + 0x120]
call fcn.0045fc4e
lea eax, [0x6bf901]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004791c0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0x134]
mov esi, dword [esp + 0xd8]
call fcn.0045fc4e
lea edi, [esp]
lea esi, [esp + 0x134]
call fcn.0045fc4e
lea ecx, [0x6bf901]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004791c0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
call fcn.00408970
mov eax, dword [esp + 8]
lea ecx, [0x67e720]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00408970
mov eax, dword [esp + 8]
lea ecx, [0x67e720]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], eax
lea eax, [0x6c0e78]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.00514480
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], 1
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ecx
lea eax, [0x69c3a0]
mov dword [esp], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.00408750
mov eax, dword [esp + 8]
lea ecx, [0x895804]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
lea edi, [esp]
lea esi, [esp + 0x120]
call fcn.0045fc4e
lea eax, [0x6bf901]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004791c0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0x15c]
mov esi, dword [esp + 0xd8]
call fcn.0045fc4e
lea edi, [esp]
lea esi, [esp + 0x15c]
call fcn.0045fc4e
lea ecx, [0x6bf901]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004791c0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
call fcn.00408970
mov eax, dword [esp + 8]
lea ecx, [0x67e720]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00408970
mov eax, dword [esp + 8]
lea ecx, [0x67e720]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], eax
lea eax, [0x6c173e]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.00514480
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], 1
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ecx
lea eax, [0x69c3a0]
mov dword [esp], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.00408750
mov eax, dword [esp + 8]
lea ecx, [0x895804]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
lea eax, [0x895868]
mov dword [esp + 0x210], eax
lea eax, [0xa43ac4]
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
test al, al
je 0x5951ce
mov ebp, dword [0xa17648]
mov dword [esp + 0xb4], ebp
mov eax, edx
mov edx, dword [0xa1764c]
mov dword [esp + 0x38], edx
mov esi, ecx
mov ecx, dword [ebx + 0x188]
mov dword [esp + 0x58], ecx
mov edi, ebx
mov ebx, dword [ebx + 0x184]
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa0]
jmp 0x595317
cmp ecx, 1
jne 0x595250
mov eax, dword [esp + 0x1f8]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x5951f0
movzx ecx, byte [eax + 0x1c1]
test cl, cl
jne 0x595257
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
lea eax, [0x69c3a0]
mov dword [esp], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.00408750
mov eax, dword [esp + 8]
lea ecx, [0x895804]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
mov eax, dword [esp + 0x1f8]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x5952d1
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x5952d1
dec edx
cmp ecx, edx
jge 0x5952d1
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], 3
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
lea eax, [0x69c3a0]
mov dword [esp], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.00408750
mov eax, dword [esp + 8]
lea ecx, [0x895804]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], eax
add esp, 0x1f4
ret
mov dword [esp + 0x210], 0
mov dword [esp + 0x214], 0
add esp, 0x1f4
ret
add ebx, 0x1c
lea ecx, [esi + 1]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xb4]
mov ebp, esi
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
cmp ebp, ecx
jge 0x59537f
lea edi, [esp + 0x1a0]
mov esi, ebx
call fcn.0045fc3a
mov ecx, dword [esp + 0x1a4]
mov esi, ebp
mov ebp, dword [esp + 0x1a0]
cmp ecx, edx
jne 0x5952ee
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc0], ebp
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x80]
jmp 0x5957c2
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0xcc]
jmp 0x5952ee
jl 0x59538b
lea edi, [esp + 0x2c]
xor ecx, ecx
xor edx, edx
jmp 0x5953f5
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
lea eax, [0x6ab020]
mov dword [esp + 0x10], eax
call fcn.00447800
mov edi, dword [esp + 0x14]
mov eax, dword [0xa43e50]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x5953d6
mov edx, dword [esp + 0xc8]
mov dword [edi], edx
jmp 0x5953e2
mov eax, dword [esp + 0xc8]
call fcn.0045f670
mov eax, dword [esp + 0x204]
mov esi, dword [esp + 0x1fc]
mov edx, 1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0xa8], edi
mov ebx, dword [0xa17648]
mov dword [esp + 0xb0], ebx
mov ebp, dword [0xa1764c]
mov dword [esp + 0x34], ebp
mov ecx, dword [esp + 0x1f8]
mov edx, dword [ecx + 0x184]
mov ecx, dword [ecx + 0x188]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x98]
jmp 0x595471
add edx, 0x1c
lea ecx, [esi + 1]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0xb0]
mov ebx, esi
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x6c]
cmp ebx, ecx
jge 0x5954d9
lea edi, [esp + 0x184]
mov esi, edx
call fcn.0045fc3a
mov ecx, dword [esp + 0x188]
mov esi, ebx
mov ebx, dword [esp + 0x184]
cmp ecx, ebp
jne 0x595448
mov dword [esp + 0xcc], edx
mov dword [esp + 0xbc], ebx
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x88]
jmp 0x59577b
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x34]
jmp 0x595448
jge 0x59555a
mov ecx, dword [esp + 0x2c]
inc ecx
mov edx, dword [esp + 0x30]
cmp edx, ecx
jae 0x595520
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6ab020]
mov dword [esp + 0x10], eax
call fcn.00447800
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x204]
mov esi, dword [esp + 0x1fc]
mov edx, dword [0xa43e50]
lea ebx, [edi + ecx*4 - 4]
test edx, edx
jne 0x59553b
mov edx, dword [esp + 0x1f8]
mov dword [edi + ecx*4 - 4], edx
jmp 0x595565
mov edx, edi
mov edi, ebx
mov ebp, eax
mov eax, dword [esp + 0x1f8]
call fcn.0045f670
mov eax, ebp
mov edi, edx
mov edx, dword [esp + 0x1f8]
jmp 0x595565
mov edx, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xa8], edi
xor ebx, ebx
jmp 0x59559b
mov ebp, dword [esp + 0x6c]
lea ebx, [ebp + 1]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa8]
mov eax, dword [esp + 0x204]
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1fc]
cmp ecx, ebx
jle 0x595663
mov dword [esp + 0x6c], ebx
mov ebp, dword [edi + ebx*4]
mov eax, dword [ebp + 0x184]
mov ebp, dword [ebp + 0x188]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x90], eax
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x90]
jmp 0x595697
xor eax, eax
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
lea ebx, [0x5958e0]
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], edx
lea esi, [esp + 0x60]
mov dword [esp + 0xe4], esi
lea esi, [esp + 0x40]
mov dword [esp + 0xe8], esi
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0xdc]
mov dword [esp + 0xc], eax
call fcn.0058bc20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x595574
jmp 0x595702
cmp esi, 1
mov edx, eax
jmp 0x5951d1
add eax, 0x1c
mov ecx, dword [esp + 0x64]
inc ecx
mov edx, dword [esp + 0x68]
mov edx, edi
mov ebx, esi
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
cmp ecx, ebp
jge 0x5955d3
lea edi, [esp + 0x1d8]
mov esi, eax
call fcn.0045fc3a
mov ecx, dword [esp + 0x1dc]
mov esi, ebx
mov ebx, dword [esp + 0x1d8]
mov edi, edx
mov edx, dword [0xa17648]
lea ebp, [0xa17648]
cmp dword [ebp + 4], ecx
jne 0x59566d
mov dword [esp + 0xcc], eax
mov dword [esp + 0xac], edx
xor ebp, ebp
mov dword [esp + 0x50], ebp
lea ebp, [0xa17648]
jmp 0x595732
mov eax, dword [esp + 0xcc]
lea ebp, [0xa17648]
jmp 0x59566d
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], edx
add esp, 0x1f4
ret
lea eax, [ebp + 1]
mov edx, dword [esp + 0xac]
lea ebp, [0xa17648]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
mov ebp, dword [esp + 0x50]
cmp ebp, ecx
jge 0x595746
mov eax, dword [ebx + ebp*4]
lea edx, [edx + ebp*4]
cmp dword [edx], eax
je 0x595717
jmp 0x5956f0
mov ebp, dword [esp + 0x1e8]
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1f0]
mov edx, edi
jmp 0x5955d9
lea edx, [ebp + 1]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x44]
cmp ebp, ecx
jge 0x595792
mov edx, dword [ebx + ebp*4]
lea ebx, [edi + ebp*4]
cmp dword [ebx], edx
je 0x595762
jmp 0x5954c9
mov ecx, dword [esp + 0x54]
cmp esi, ecx
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xa8]
jmp 0x5954d9
inc edx
mov ebp, dword [esp + 0xc0]
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
cmp edx, ecx
jge 0x5957db
mov ebx, dword [ebp + edx*4]
lea ebp, [edi + edx*4]
cmp dword [ebp], ebx
je 0x5957ab
jmp 0x59536f
mov ecx, dword [esp + 0x58]
cmp esi, ecx
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xc8]
jmp 0x59537f
add ebx, 0x1c
lea ecx, [esi + 1]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xb8]
mov ebp, esi
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x6c]
cmp ebp, ecx
jge 0x59587c
lea edi, [esp + 0x1bc]
mov esi, ebx
call fcn.0045fc3a
mov ecx, dword [esp + 0x1c0]
mov esi, ebp
mov ebp, dword [esp + 0x1bc]
cmp ecx, edx
jne 0x5957f4
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xcc], ebx
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
jmp 0x5958a7
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xcc]
jmp 0x5957f4
xchg ebp, ebx
setl bl
xchg ebp, ebx
mov ecx, esi
mov edx, eax
mov ebx, edi
mov eax, ebp
jmp 0x595184
inc edx
mov ebp, dword [esp + 0xc4]
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
cmp edx, ecx
jge 0x5958bd
mov ebx, dword [ebp + edx*4]
lea ebp, [edi + edx*4]
cmp dword [ebp], ebx
je 0x595890
jmp 0x59586c
mov ecx, dword [esp + 0x5c]
cmp esi, ecx
mov esi, dword [esp + 0x1fc]
mov edi, dword [esp + 0xc8]
jmp 0x59587c
call fcn.0045e260
jmp fcn.00594ab0