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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xcc
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov edx, dword [ecx + 8]
mov dword [esp + 0xb8], edx
xor eax, eax
xor edx, edx
mov dword [esp + 0x90], eax
mov ecx, dword [ebx]
test ecx, ecx
jle 0x5f1558
mov eax, edx
shl eax, 4
lea eax, [eax + edx*8]
mov ebp, dword [esi + 0x37e0]
test ebp, ebp
je 0x5f280e
mov ebp, dword [ebx + 0x34]
mov edi, dword [eax + ebp + 0x10]
mov dword [esp + edx*4 + 0x30], edi
mov edi, dword [eax + ebp + 0xc]
mov dword [esp + edx*4 + 0x40], edi
mov edi, dword [eax + ebp + 4]
imul edi, dword [eax + ebp + 8]
add eax, 0x18
mov dword [esp + edx*4 + 0x50], edi
inc edx
cmp edx, ecx
jl 0x5f1522
cmp ecx, 1
jne 0x5f1565
mov dword [esp + 0x50], 1
mov eax, dword [esi + 0x37b8]
cmp eax, 1
mov dword [esp + 0xb0], eax
je 0x5f27e4
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0xa8], eax
mov al, 1
xor ecx, ecx
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
test edi, edi
jle 0x5f15de
mov edx, ecx
shl edx, 4
test al, al
je 0x5f27d1
mov ebp, dword [esi + 0x37cc]
mov ebx, dword [ebp + edx + 4]
cmp ebx, dword [ebp + edx + 8]
je 0x5f15bc
xor al, al
cmp ebx, 1
je 0x5f15c8
cmp ebx, 2
je 0x5f15c8
xor al, al
add edx, 0x10
inc ecx
cmp ecx, edi
jl 0x5f15a2
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
mov eax, 8
xor edx, edx
mov ecx, dword [esp + 0xec]
idiv ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb0]
mov eax, dword [esi + 4]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0x9c], eax
mov ebp, dword [esi + 0xc]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esi + 8]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0xbc], eax
mov ebp, dword [esi + 0x10]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov edx, dword [esi + 0x4de8]
cmp edx, 1
mov dword [esp + 0xc0], eax
je 0x5f27b0
xor eax, eax
mov dword [esp + 0xc4], eax
cmp edx, 1
je 0x5f278f
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x5f1692
sub eax, dword [esp + 0xc4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x5f16ab
sub eax, dword [esp + 0x94]
mov dword [esp + 0xbc], eax
mov ecx, dword [esi + 0x78]
mov eax, dword [esp + 0x98]
cmp eax, ecx
jge 0x5f16c7
mov eax, dword [esp + 0xc4]
add dword [esp + 0x98], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0xc0]
cmp edx, eax
mov dword [esp + 0x7c], eax
jge 0x5f16e7
mov eax, dword [esp + 0x94]
add dword [esp + 0xc0], eax
xor ebp, ebp
test edi, edi
jle 0x5f173f
mov edx, dword [esi + 0x37cc]
mov eax, ebp
shl eax, 4
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x90]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [eax + edx + 4]
inc ebp
imul ecx, dword [eax + edx + 8]
add ebx, ecx
add eax, 0x10
cmp ebp, edi
jl 0x5f1710
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x5f1d60
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x5f1d60
mov ebp, dword [ebx + 0x34]
mov eax, dword [esp + 0xb0]
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [ebp + 4]
cdq
idiv ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa8]
add eax, eax
add eax, eax
add eax, eax
mov ebp, dword [ebp + 8]
cdq
idiv ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esi + 0x4c]
mov ecx, dword [esp + 0xac]
lea eax, [ecx + ebp - 1]
cdq
idiv ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x50]
mov ebp, dword [esp + 0xa8]
cdq
xor eax, edx
sub eax, edx
lea eax, [ebp + eax - 1]
cdq
mov ecx, dword [esp + 0x7c]
idiv ebp
mov ebp, dword [ebx + 0x20]
cmp ebp, ecx
jge 0x5f24eb
mov ecx, dword [esp + 0x90]
mov edx, ecx
shl edx, 7
shl ecx, 7
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], eax
jmp 0x5f17f5
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d8]
jl 0x5f1a2b
xor eax, eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 8]
test edx, edx
jle 0x5f1a2b
lea edi, [ebp + ebp]
add edi, edi
add edi, edi
lea ebx, [eax + eax]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x74], edi
mov edi, eax
mov dword [esp + 0x88], ebp
mov ebp, edx
imul ebp, dword [esp + 0x74]
add ebp, ebx
cmp ebp, dword [esi + 0x50]
jge 0x5f2330
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + 0x1c]
mov ebp, dword [esi + 0x78]
cmp eax, ebp
jge 0x5f1a12
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edi
mov edi, ebp
xor ecx, ecx
mov ebx, dword [esp + 0x68]
imul edi, dword [esp + 0x88]
add edi, eax
mov ebx, dword [ebx]
imul edi, dword [esp + 0x84]
add edi, dword [esi + 0x4de4]
mov dword [esp + 0xac], ebx
test ebx, ebx
jle 0x5f18fa
mov ebx, dword [esi + 0x37cc]
mov dword [esp + 0xa4], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + ebx + 4]
shl eax, 7
inc ecx
imul eax, dword [edx + ebx + 8]
add edi, eax
add edx, 0x10
cmp ecx, ebp
jl 0x5f18d1
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 7
imul ebx, dword [esp + 0x78]
add ebx, edi
xor edi, edi
test edx, edx
jle 0x5f19fa
lea ebp, [edi + edi]
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0xe4]
lea eax, [edx + edx]
add eax, eax
add eax, eax
imul eax, dword [esp + 0x7c]
add eax, ebp
mov ecx, dword [esp + 0xe8]
cmp eax, dword [ecx + 0x4c]
jge 0x5f2310
mov eax, dword [esi + 0x10]
test eax, eax
je 0x5f22ca
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.005ccb30
add ebx, 0x80
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xb0]
mov dword [esp], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
imul edx, dword [eax + 4]
add edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x88]
imul edx, dword [eax + 8]
add edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
call fcn.005f00b0
test eax, eax
jne 0x5f2820
add ebp, 8
inc edi
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
mov edx, dword [eax + 4]
cmp edi, edx
jl 0x5f1922
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
inc eax
cmp eax, ebp
jl 0x5f186a
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov edx, dword [ecx + 8]
add ebx, 8
inc edi
cmp edi, edx
jl 0x5f1834
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x5f1d40
cmp edi, dword [esi + 0x37d8]
jg 0x5f1d40
mov eax, dword [esp + 0xbc]
cmp ebp, eax
jl 0x5f1d40
mov eax, dword [esp + 0xc0]
cmp ebp, eax
jge 0x5f1d40
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x5f1a75
mov eax, dword [eax]
test eax, eax
je 0x5f1bb0
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 0x1c]
sub eax, dword [esp + 0x9c]
test eax, eax
jle 0x5f2470
mov edx, ebp
mov ebx, dword [esi + 0x30]
mov ecx, dword [esp + 0x98]
imul ebx, dword [esi + 0x37b8]
imul eax, ebx
mov ebx, dword [esp + 0x9c]
sub edx, dword [esp + 0xbc]
imul edx, dword [esi + 0x37bc]
imul edx, dword [esi + 0x3c]
add edx, eax
mov eax, dword [esp + 0xe0]
imul edx, dword [esp + 0xb4]
add edx, dword [esi + 0x20]
mov dword [eax + 0x2c], edx
cmp ebx, ecx
jge 0x5f23e8
mov eax, ebp
mov edi, dword [esi + 0x4834]
mov edx, dword [esp + 0x80]
imul eax, dword [esi + 0x78]
add eax, ebx
imul eax, dword [esp + 0x84]
add eax, dword [esi + 0x4de4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dword [0xd37148]
mov edx, edi
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x5f237f
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov edi, ecx
mov dword [esp + 0x88], ebp
mov ecx, eax
shl ecx, 4
mov edx, ecx
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x5f2361
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
jmp 0x5f1b7a
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0x78]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul edx, eax, 0xb4
mov ecx, dword [edx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x5f1b70
jmp 0x5f2350
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp ebx, eax
jge 0x5f1d40
mov eax, dword [esi + 0x78]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xe8]
imul edx, dword [esp + 0x88]
add edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [eax + 0x4de4]
xor eax, eax
test edi, edi
jle 0x5f24bd
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x37cc]
mov ebp, dword [esp + 0x88]
shl ebp, 7
mov esi, ebx
shl esi, 4
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ebx
xor ebx, ebx
mov ebp, eax
shl ebp, 4
mov esi, dword [ebp + ecx + 8]
test esi, esi
jle 0x5f24b0
lea edi, [eax + eax]
mov edx, dword [ebp + ecx + 4]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
xor eax, eax
test edx, edx
jle 0x5f2496
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x78]
mov dword [esp + 0xac], ebp
jmp 0x5f1c8b
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x4ddc]
mov ebp, dword [esp + 0x70]
imul ebp, edi
imul ebp, edx
imul esi, ebp
mov ebp, dword [esp + 0x6c]
add esi, dword [ecx + ebx*2 + 4]
imul ebp, edx
add esi, ebp
shl edi, 7
imul edx, edi
xor ebp, ebp
imul edx, dword [esp + 0xa8]
add esi, edx
mov edx, eax
shl edx, 4
add esi, edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xa4], eax
lea esi, [esi]
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0xd37148]
mov edi, dword [esp + 0xe8]
mov ecx, dword [edi + 0x37cc]
mov edi, dword [edi + 0x78]
mov edx, dword [esp + 0xac]
mov edx, dword [edx + ecx + 4]
mov eax, edi
shl eax, 4
imul eax, edx
add esi, eax
add ebx, 0x10
inc ebp
cmp ebp, 8
jl 0x5f1ce0
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
inc eax
cmp eax, edx
jl 0x5f1c80
jmp 0x5f2480
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x5f25dd
inc ebp
mov eax, dword [esi + 0x7c]
cmp ebp, eax
jl 0x5f17ef
jmp 0x5f24e0
mov ebp, dword [ebx + 0x20]
mov eax, dword [esp + 0x7c]
cmp ebp, eax
jge 0x5f229d
mov eax, dword [esp + 0x90]
mov edx, eax
shl edx, 7
shl eax, 7
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], edx
mov edi, dword [ebx + 0x1c]
cmp edi, ecx
jge 0x5f228e
mov eax, ebp
shl eax, 7
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ebp
mov ebp, ecx
xor eax, eax
mov edx, dword [ebx + 0x34]
imul ebp, dword [esp + 0x70]
add ebp, edi
mov edx, dword [edx]
imul ebp, dword [esp + 0x6c]
add ebp, dword [esi + 0x4de4]
mov dword [esp + 0xac], edx
test edx, edx
jle 0x5f1e32
mov edx, dword [esi + 0x37cc]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x88], edx
mov edx, eax
shl edx, 4
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov ecx, edx
mov dword [esp + 0xa4], edi
nop
mov edx, dword [ecx + ebx + 4]
shl edx, 7
inc eax
imul edx, dword [ecx + ebx + 8]
add ebp, edx
add ecx, 0x10
cmp eax, esi
jl 0x5f1e00
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x5f1ee0
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x5f1f4f
mov dword [esp + 0xa4], edi
mov esi, eax
xor edi, edi
mov ecx, dword [esp + esi*4 + 0x50]
test ecx, ecx
jle 0x5f1ebc
lea esi, [esi]
mov dword [esp], ebp
mov dword [esp + 4], 0x80
call dword [0xd37144]
mov edx, dword [ebx + esi*4 + 0x24]
mov ecx, dword [esp + 0xe0]
mov word [esp + 0x60], dx
mov edx, dword [esp + esi*4 + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
lea edx, [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x10], edx
call fcn.005cc830
movsx edx, word [esp + 0x60]
add ebp, 0x80
inc edi
mov dword [ebx + esi*4 + 0x24], edx
cmp edi, dword [esp + esi*4 + 0x50]
jl 0x5f1e60
mov edx, dword [ebx]
inc esi
cmp esi, edx
jl 0x5f1e52
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
jmp 0x5f1f4f
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x5f1f4f
mov dword [esp + 0xa4], edi
xor esi, esi
mov ecx, dword [esp + eax*4 + 0x50]
test ecx, ecx
jle 0x5f1f39
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xe0]
mov esi, esi
lea edi, [edi]
mov dword [esp], edi
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.005cc910
add ebp, 0x80
inc esi
mov eax, dword [esp + 0xac]
cmp esi, dword [esp + eax*4 + 0x50]
jl 0x5f1f10
mov edx, dword [ebx]
inc eax
cmp eax, edx
jl 0x5f1eef
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0xe0]
mov eax, dword [esi + 0x7c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
call fcn.005f00b0
test eax, eax
jne 0x5f2830
mov eax, dword [esp + 0x9c]
cmp edi, eax
jl 0x5f2270
mov eax, dword [esp + 0x98]
cmp edi, eax
jge 0x5f2260
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x70]
cmp edx, eax
jl 0x5f2250
mov eax, dword [esp + 0xc0]
cmp edx, eax
jge 0x5f2240
mov edx, dword [esi + 0x37c0]
cmp edx, dword [esi + 0x37d4]
jg 0x5f2230
cmp edx, dword [esi + 0x37d8]
jg 0x5f2220
mov ecx, dword [esi + 0x78]
mov eax, ecx
imul eax, dword [esp + 0x70]
add eax, edi
imul eax, dword [esp + 0x6c]
add eax, dword [esi + 0x4de4]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x5f2150
mov eax, dword [eax]
test eax, eax
jne 0x5f2150
xor ebp, ebp
test edx, edx
jle 0x5f2273
mov eax, dword [esi + 0x37cc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xa4], edi
xor ecx, ecx
mov edi, ebp
shl edi, 4
mov ebx, dword [edi + eax + 8]
test ebx, ebx
jle 0x5f266d
lea edx, [ebp + ebp]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xa8], edx
mov edx, dword [edi + eax + 4]
shl esi, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0x88], ebp
xor esi, esi
test edx, edx
jle 0x5f2650
mov eax, ecx
shl eax, 7
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x8c]
jmp 0x5f20a8
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx + eax + 8]
mov ebp, esi
shl ebp, 4
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0x4ddc]
add ebp, dword [eax + edi*2 + 4]
mov eax, dword [esp + 0x64]
imul eax, ecx
imul eax, edx
imul ebx, eax
add ebp, ebx
mov ebx, edx
imul ebx, dword [esp + 0x80]
imul edx, dword [esp + 0xac]
imul ecx, ebx
add ebp, ecx
add ebp, edx
xor ebx, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x74]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], 0x10
call dword [0xd37148]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + 0x37cc]
mov ecx, dword [ecx + 0x78]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax + 4]
mov edi, ecx
shl edi, 4
imul edi, edx
add ebp, edi
add esi, 0x10
inc ebx
cmp ebx, 8
jl 0x5f20f0
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0xa8]
inc esi
cmp esi, edx
jl 0x5f20a0
jmp 0x5f263a
mov ebp, dword [esi + 0x4834]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call dword [0xd37148]
mov edx, dword [esi + 0x4834]
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x5f26d2
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 4
mov edx, edi
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x5f26b4
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb0], eax
jmp 0x5f21dd
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0xb4]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul ecx, eax, 0xb4
mov edx, dword [ecx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], edx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x5f21d0
jmp 0x5f26a0
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x5f2730
inc edi
cmp edi, ecx
jl 0x5f1da2
mov ebp, dword [esp + 0x70]
mov eax, dword [esi + 0x7c]
inc ebp
cmp ebp, eax
jl 0x5f1d8a
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x5f22bd
cmp edi, dword [esi + 0x37d8]
jg 0x5f22bd
mov eax, 2
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.005cc980
add ebx, 0x80
jmp 0x5f1981
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
jmp 0x5f19fa
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
jmp 0x5f1a2b
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x7c]
mov edi, dword [esi + 0x37c0]
inc eax
cmp eax, edi
jl 0x5f1b40
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x88]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esi + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esi + 0x78]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.005eea50
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x5f1adc
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x5f1d40
mov eax, dword [esp + 0x98]
cmp ebx, eax
jne 0x5f1d40
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x90]
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.005eea50
jmp 0x5f1d40
xor eax, eax
jmp 0x5f1a8e
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
inc ebx
cmp ebx, esi
jl 0x5f1c4f
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xe8]
mov edi, dword [edx + 0x37c0]
inc eax
cmp eax, edi
jl 0x5f1c2d
mov ebx, dword [esp + 0x7c]
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x5f1bd4
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xe8]
jmp 0x5f1d40
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0xe4]
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x5f24ff
mov eax, dword [eax]
test eax, eax
je 0x5f25ab
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5f25a0
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
cmp edx, eax
jg 0x5f25b6
mov eax, dword [esp + 0x7c]
mov ebp, edx
jmp 0x5f2533
mov eax, dword [esi + 0x7c]
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.005eea50
inc ebp
mov eax, dword [esp + 0x98]
cmp ebp, eax
jle 0x5f2530
jmp 0x5f25b6
mov edi, dword [esi + 0x37c0]
jmp 0x5f229d
mov edi, dword [esi + 0x37c0]
jmp 0x5f229d
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x5f25c8
mov edi, dword [esi + 0x37c0]
jmp 0x5f229d
xor edx, edx
xor eax, eax
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edx
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0xe4]
lea edx, [ebp + 1]
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], 0
add eax, dword [esi + 0x7c]
cmp edx, eax
jne 0x5f2613
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esi + 0x78]
dec edx
mov eax, 1
mov dword [esi + 0xc], edx
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edx
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
mov ebx, dword [edi + eax + 8]
inc ecx
cmp ecx, ebx
jl 0x5f206a
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0xe8]
mov edx, dword [edx + 0x37c0]
inc ebp
cmp ebp, edx
jl 0x5f2030
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
jmp 0x5f2273
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0xb0]
mov ecx, dword [esi + 0x37c0]
inc eax
cmp eax, ecx
jl 0x5f219a
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xe4]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov ecx, dword [esi + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esi + 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0xa0]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x28], al
call fcn.005eea50
mov ecx, dword [esi + 0x78]
jmp 0x5f2273
mov ebp, dword [esp + 0x70]
lea eax, [edi + 1]
cdq
idiv ecx
test edx, edx
mov dword [ebx + 0x1c], edx
je 0x5f2746
mov dword [ebx + 0x20], ebp
jmp 0x5f2765
lea eax, [ebp + 1]
mov dword [ebx + 0x20], eax
cmp eax, dword [esi + 0x7c]
jne 0x5f2765
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
sub edi, dword [esp + 0xc4]
mov eax, 1
mov dword [esi + 0xc], edi
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edi
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xa8]
cmp eax, 2
jne 0x5f1670
mov eax, 1
mov dword [esp + 0x94], eax
jmp 0x5f1679
mov eax, dword [esp + 0xb0]
cmp eax, 2
jne 0x5f165e
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x5f1667
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
jmp 0x5f15de
mov eax, dword [esi + 0x37bc]
cmp eax, 1
mov dword [esp + 0xa8], eax
jne 0x5f1588
xor al, al
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
jmp 0x5f15de
mov dword [ebx + edx*4 + 0x24], 0
mov ecx, dword [ebx]
jmp 0x5f1530
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret