Function at 0x592b30
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using speck
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1dc
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0x1d4], eax
push ebx
push ebp
mov ebp, ecx
movzx eax, word [ebp + 4]
push esi
xor esi, esi
push edi
mov edi, dword [ebp]
cmp dword [edi + 0x14], esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x84], eax
je 0x592b8c
lea eax, [esi + 0xa]
lea ebx, [esp + 0x8c]
call fcn.00410220
jmp 0x592ba8
mov edi, dword [edi + 4]
cmp edi, esi
je 0x592ba8
push edi
push 0xa
lea ecx, [esp + 0x94]
push 1
push ecx
call fcn.0060860a
add esp, 0x10
push 3
lea edx, [esp + 0x90]
push 0x6b5fd0
push edx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x594823
push 3
lea eax, [esp + 0x90]
push 0x6b5fd4
push eax
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x594823
push 4
lea ecx, [esp + 0x90]
push str.IIII
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x594823
push 4
lea edx, [esp + 0x90]
push str.MMMM
push edx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x594823
push 2
lea eax, [esp + 0x90]
push 0x6ad664
push eax
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x59483e
push 3
lea ecx, [esp + 0x90]
push 0x6ad668
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x59483e
mov edi, str.Nikon
lea esi, [esp + 0x8c]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x592ce1
mov eax, dword [ebp]
call fcn.00410270
mov esi, ebp
mov dword [esp + 0x1f0], eax
call fcn.0057df50
mov word [ebp + 4], ax
call fcn.0057df50
cmp ax, 0x2a
jne 0x594817
call fcn.0057e000
mov ecx, dword [ebp]
sub eax, 8
cmp dword [ecx + 0x14], 0
je 0x592cd5
mov edx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x592edc
add eax, edx
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x592ccd
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x592edc
push 1
push eax
mov eax, dword [ecx + 4]
push eax
jmp 0x592ed4
mov edi, 0x6b5ff0
lea esi, [esp + 0x8c]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x592d54
mov eax, dword [ebp]
call fcn.00410270
sub eax, 0xa
mov dword [esp + 0x1f0], eax
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x592d2f
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x592d3f
mov edx, dword [eax + 0x1c]
add ecx, 0xfffffffe
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x592d2a
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x592d3f
mov eax, dword [eax + 4]
push 1
push 0xfffffffffffffffe
push eax
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057df50
mov word [ebp + 4], ax
call fcn.0057df50
jmp 0x592edc
push 8
lea ecx, [esp + 0x90]
push str.FUJIFILM
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x592ea1
push 4
lea edx, [esp + 0x90]
push str.SONY
push edx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x592ea1
mov edi, str.Panasonic
lea esi, [esp + 0x8c]
mov ecx, 0xa
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x592ea1
mov edi, str.OLYMP
lea esi, [esp + 0x8c]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x592e81
mov edi, str.LEICA
lea esi, [esp + 0x8c]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x592e81
mov edi, str.Ricoh
lea esi, [esp + 0x8c]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x592e81
mov edi, str.EPSON
lea esi, [esp + 0x8c]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x592e81
mov edi, 0x6b6018
lea esi, [esp + 0x8c]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x592e62
mov edi, 0x6b601c
lea esi, [esp + 0x8c]
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x592e62
mov eax, dword [ebp]
cmp dword [eax + 0x14], edx
je 0x592e5c
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x592edc
add ecx, 0xfffffff6
jmp 0x592ebb
push 1
push 0xfffffffffffffff6
jmp 0x592ed0
mov eax, dword [ebp]
cmp dword [eax + 0x14], edx
je 0x592e77
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x592edc
add ecx, 0xfffffffc
jmp 0x592ebb
mov edx, dword [eax + 4]
push 1
push 0xfffffffffffffffc
push edx
jmp 0x592ed4
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x592e97
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x592edc
add ecx, 0xfffffffe
jmp 0x592ebb
mov eax, dword [eax + 4]
push 1
push 0xfffffffffffffffe
push eax
jmp 0x592ed4
mov eax, dword [ebp]
mov word [ebp + 4], 0x4949
cmp dword [eax + 0x14], 0
je 0x592ecc
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x592edc
add ecx, 2
mov dword [eax + 0x18], ecx
mov edx, dword [eax + 0x1c]
cmp edx, ecx
ja 0x592ec7
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x592edc
push 1
push 2
mov ecx, dword [eax + 4]
push ecx
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057df50
movzx eax, ax
cmp eax, 0x3e8
mov dword [esp + 0x68], eax
ja 0x594823
test eax, eax
je 0x594817
mov eax, dword [esp + 0x1f4]
shl eax, 0x10
mov dword [esp + 0x88], eax
mov edi, edi
mov ecx, dword [esp + 0x1f0]
sub dword [esp + 0x68], 1
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x24]
push eax
push ecx
lea edi, [esp + 0x54]
lea ebx, [esp + 0x24]
mov eax, ebp
call fcn.005929d0
mov esi, dword [esp + 0x20]
or esi, dword [esp + 0x88]
cmp esi, 2
mov dword [esp + 0x20], esi
jne 0x592f8b
lea edx, [ebp + 0x215]
push 0x6ad564
push edx
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x59341f
mov esi, ebp
call fcn.0057df50
call fcn.0057df50
movzx eax, ax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [ebp + 0x320]
jmp 0x59341f
cmp esi, 4
jne 0x5930f4
mov ecx, dword [esp + 0x48]
add ecx, 0xffffffe5
cmp ecx, 7
ja 0x593100
mov esi, ebp
call fcn.0057e000
call fcn.0057df50
movzx ecx, ax
cmp ecx, 0x7fff
je 0x593001
fldz
fcomp dword [ebp + 0x320]
fnstsw ax
test ah, 0x44
jp 0x593001
test ecx, ecx
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
jge 0x592fdc
fadd qword [0x6c0c98]
fmul qword [0x6c1118]
fsub qword [0x6a5f30]
fld qword [0x6c0b40]
fxch st(1)
call fcn.0066a760
fmul qword [0x6c0b20]
fstp dword [ebp + 0x320]
mov esi, ebp
call fcn.0057df50
call fcn.0057df50
movzx eax, ax
cmp eax, 0x7fff
je 0x593072
cmp dword [ebp + 0x2067c], 0
jne 0x593072
test eax, eax
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
jge 0x593032
fadd dword [0x6c0a38]
fmul qword [0x6c1250]
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x6c0a94]
fstp dword [esp]
call fcn.00418220
lea esi, [esp + 0x78]
fstp qword [esp]
call fcn.005a5900
mov edx, dword [eax]
mov dword [ebp + 0x20678], edx
mov eax, dword [eax + 4]
mov dword [ebp + 0x2067c], eax
mov esi, ebp
call fcn.0057df50
movzx eax, ax
cmp eax, 0xffff
je 0x5930c8
cmp dword [ebp + 0x20674], 0
jne 0x5930c8
movsx ecx, ax
mov dword [esp + 0x14], ecx
sub esp, 8
fild dword [esp + 0x1c]
fmul qword [0x6c1298]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x6c0a94]
fstp dword [esp]
call fcn.00418220
lea ecx, [ebp + 0x20670]
fstp qword [esp]
call fcn.004dc230
mov esi, ebp
call fcn.0057df50
call fcn.0057df50
movzx edx, ax
mov dword [esp + 0x60], edx
call fcn.0057df50
call fcn.0057df50
mov esi, dword [esp + 0x20]
movzx eax, ax
mov dword [ebp + 0x330], eax
jmp 0x593100
cmp esi, 0x114
jne 0x59319d
push 6
lea ecx, [ebp + 0x215]
push str.KONICA
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59319d
mov ecx, dword [ebp]
mov eax, esi
sub eax, 4
neg eax
sbb eax, eax
and eax, 0x14
add eax, 0x8c
cmp dword [ecx + 0x14], 0
je 0x593153
mov edx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x593162
add eax, edx
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x59314e
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x593162
mov edx, dword [ecx + 4]
push 1
push eax
push edx
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057df50
movzx eax, ax
cmp eax, 0x48
je 0x593193
cmp eax, 0x4c
je 0x593187
cmp eax, 0x52
jne 0x59319d
mov dword [ebp + 0x474], 5
jmp 0x59319d
mov dword [ebp + 0x474], 6
jmp 0x59319d
mov dword [ebp + 0x474], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
jne 0x593243
cmp dword [esp + 0x18], 2
jne 0x59341f
cmp dword [esp + 0x48], 0x14
jbe 0x59341f
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
lea esi, [ebp + 0x295]
je 0x593227
test esi, esi
je 0x59341f
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
cmp edx, ecx
jae 0x59341f
mov edi, 0x3f
cmp ecx, edi
jb 0x5931f5
lea ebx, [edx + 0x3f]
cmp ebx, ecx
jbe 0x5931f9
sub ecx, edx
mov edi, ecx
xor ecx, ecx
test edi, edi
jbe 0x59321e
nop
mov ebx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
mov dl, byte [edx + ebx]
mov byte [esi + ecx], dl
add dword [eax + 0x18], 1
add ecx, 1
cmp ecx, edi
jae 0x59321e
cmp byte [esi + ecx - 1], 0xa
jne 0x593200
mov byte [esi + ecx], 0
jmp 0x59341f
mov eax, dword [eax + 4]
test eax, eax
je 0x59341f
push eax
push 0x40
push esi
call fcn.0061b889
add esp, 0xc
jmp 0x59341f
cmp eax, 8
jne 0x593265
cmp dword [esp + 0x18], 4
jne 0x59341f
mov esi, ebp
call fcn.0057e000
mov dword [ebp + 0x330], eax
jmp 0x59341f
cmp eax, 9
jne 0x593295
mov edi, 0x6ad7c8
lea esi, [ebp + 0x215]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59341f
mov edi, dword [ebp]
cmp dword [edi + 0x14], eax
lea ebx, [ebp + 0x2d5]
jmp 0x5933fc
cmp eax, 0xc
jne 0x5932c8
cmp dword [esp + 0x48], 4
jne 0x59341f
mov esi, dword [esp + 0x18]
push esi
push ebp
call fcn.0057e2f0
fstp dword [ebp + 0x205c8]
push esi
push ebp
call fcn.0057e2f0
fstp dword [ebp + 0x205d0]
jmp 0x59341f
cmp eax, 0x10
jne 0x5932ea
cmp dword [esp + 0x18], 4
jne 0x59341f
mov esi, ebp
call fcn.0057e000
mov dword [ebp + 0x340], eax
jmp 0x59341f
cmp eax, 0x11
jne 0x593375
cmp dword [ebp + 0x3c0], 0
je 0x59341f
push 5
lea ecx, [ebp + 0x215]
push 0x6ad564
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59341f
mov esi, ebp
call fcn.0057e000
mov esi, dword [esp + 0x1f0]
mov ecx, dword [ebp]
add eax, esi
cmp dword [ecx + 0x14], 0
je 0x593359
cmp dword [ecx + 0x18], 0xffffffff
je 0x593368
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x593349
mov eax, edx
mov dword [ecx + 0x18], eax
push esi
mov ecx, ebp
call fcn.00595be0
jmp 0x59341f
mov edx, dword [ecx + 4]
push 0
push eax
push edx
call fcn.006081d8
add esp, 0xc
push esi
mov ecx, ebp
call fcn.00595be0
jmp 0x59341f
cmp eax, 0x14
jne 0x5933da
cmp dword [esp + 0x48], 0xa00
jne 0x59341f
cmp dword [esp + 0x18], 7
jne 0x59341f
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x5933c2
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x594341
add ecx, 0x4e0
mov dword [eax + 0x18], ecx
mov edx, dword [eax + 0x1c]
cmp edx, ecx
ja 0x5933ba
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x594341
mov eax, dword [eax + 4]
push 1
push 0x4e0
push eax
call fcn.006081d8
add esp, 0xc
jmp 0x594341
cmp eax, 0x15
jne 0x59341f
cmp dword [esp + 0x18], 2
jne 0x59341f
cmp dword [ebp + 0x3c0], 0
je 0x59341f
mov edi, dword [ebp]
cmp dword [edi + 0x14], 0
lea ebx, [ebp + 0x255]
je 0x59340a
mov eax, 0x40
call fcn.00410220
jmp 0x59341f
mov edi, dword [edi + 4]
test edi, edi
je 0x59341f
push edi
push 1
push 0x40
push ebx
call fcn.0060860a
add esp, 0x10
lea ecx, [ebp + 0x215]
push 0x6b6028
push ecx
call fcn.00607cb0
mov esi, dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x59345f
cmp esi, 0x1b
jne 0x59344d
mov dword [esp + 0x20], 0x1018
jmp 0x594284
cmp esi, 0x1c
jne 0x59345f
mov dword [esp + 0x20], 0x1017
jmp 0x5941ca
cmp esi, 0x1d
jne 0x59352a
mov esi, dword [ebp]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x5934bc
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593488
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593495
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x59448b
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5f]
push ecx
call fcn.0060d1b0
add edi, ebx
add esp, 0xc
cmp ebx, 1
mov dword [esi + 0x18], edi
jne 0x59448b
movzx esi, byte [esp + 0x57]
jmp 0x5934d2
mov esi, dword [esi + 4]
test esi, esi
je 0x5934ce
push esi
call fcn.0060963d
add esp, 4
jmp 0x5934d0
xor eax, eax
mov esi, eax
test esi, esi
je 0x59448b
cmp esi, 0xffffffff
je 0x59448b
push esi
call fcn.00608b07
add esp, 4
test eax, eax
je 0x593506
mov eax, dword [esp + 0x64]
add esi, 0xffffffd0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0x64], ecx
jmp 0x593468
mov eax, 0xcccccccd
mul esi
mov eax, dword [esp + 0x64]
shr edx, 3
lea edx, [edx + edx*4]
add edx, edx
sub esi, edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0x64], ecx
jmp 0x593468
cmp esi, 0x81
jne 0x5935aa
mov edi, dword [esp + 0x18]
cmp edi, 4
jne 0x593652
mov esi, ebp
call fcn.0057e000
mov dword [ebp + 0x348], eax
lea ecx, [eax + 0x29]
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x59356f
cmp dword [eax + 0x18], 0xffffffff
je 0x59357e
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x59356a
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59357e
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057df50
add ax, ax
mov word [ebp + 0x45c], ax
call fcn.0057df50
mov word [ebp + 0x45e], ax
mov dword [ebp + 0x338], 0x61616161
jmp 0x59448b
cmp esi, 0x29
jne 0x593646
cmp dword [esp + 0x18], 1
jne 0x59448b
mov eax, dword [esp + 0x60]
cmp eax, 0x12
jae 0x5935d3
movsx eax, byte [eax + str.012347800000005896]
sub eax, 0x30
jmp 0x5935d5
xor eax, eax
mov ecx, dword [ebp]
shl eax, 5
add eax, 8
cmp dword [ecx + 0x14], 0
je 0x5935ff
mov edx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x59360e
add eax, edx
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x5935fa
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x59360e
push 1
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.006081d8
add esp, 0xc
xor edi, edi
mov esi, ebp
call fcn.0057e000
test eax, eax
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
jge 0x593629
fadd dword [0x6c0a38]
mov ecx, edi
xor ecx, 2
shr ecx, 1
xor ecx, edi
add edi, 1
fstp dword [ebp + ecx*4 + 0x205c8]
cmp edi, 4
jb 0x593610
jmp 0x59448b
cmp esi, 0x100
jne 0x59365c
mov edi, dword [esp + 0x18]
cmp edi, 7
je 0x593677
jmp 0x59448b
cmp esi, 0x280
jne 0x593691
cmp dword [esp + 0x18], 1
jne 0x59448b
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [ebp]
call fcn.00410270
mov ebx, dword [esp + 0x48]
mov dword [ebp + 0x34c], eax
mov dword [ebp + 0x358], ebx
jmp 0x593699
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
cmp esi, 0x88
jne 0x5936d3
cmp edi, 4
jne 0x59448b
mov esi, ebp
call fcn.0057e000
test eax, eax
mov dword [ebp + 0x34c], eax
je 0x59448b
mov edx, dword [esp + 0x1f0]
add eax, edx
mov dword [ebp + 0x34c], eax
jmp 0x59448b
cmp esi, 0x89
jne 0x5936f6
cmp edi, 4
jne 0x59448b
mov esi, ebp
call fcn.0057e000
mov dword [ebp + 0x358], eax
jmp 0x59448b
cmp esi, 0x8c
je 0x593706
cmp esi, 0x96
jne 0x593714
mov eax, dword [ebp]
call fcn.00410270
mov dword [ebp + 0x350], eax
cmp esi, 0x97
jne 0x59394b
mov dword [esp + 0x4c], 4
mov esi, dword [ebp]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x59377a
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593748
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593751
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x593775
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5a]
push ecx
call fcn.0060d1b0
add esp, 0xc
cmp ebx, 1
lea edx, [ebx + edi]
mov dword [esi + 0x18], edx
jne 0x593775
movzx eax, byte [esp + 0x52]
jmp 0x59378e
or eax, 0xffffffff
jmp 0x59378e
mov esi, dword [esi + 4]
test esi, esi
je 0x59378c
push esi
call fcn.0060963d
add esp, 4
jmp 0x59378e
xor eax, eax
sub dword [esp + 0x4c], 1
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x5c], ecx
jne 0x593728
mov eax, ecx
sub eax, 0x64
je 0x593848
sub eax, 2
je 0x593822
sub eax, 1
jne 0x5938b3
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x5937e2
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x5937f2
mov edx, dword [eax + 0x1c]
add ecx, 0x10
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5937dd
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5937f2
mov edx, dword [eax + 4]
push 1
push 0x10
push edx
call fcn.006081d8
add esp, 0xc
lea edi, [ebp + 0x205c8]
mov ebx, 4
lea ecx, [ecx]
mov esi, ebp
call fcn.0057df50
movzx eax, ax
mov dword [esp + 0x14], eax
add edi, 4
sub ebx, 1
fild dword [esp + 0x14]
fstp dword [edi - 4]
jne 0x593800
jmp 0x59448b
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x59383f
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x594622
add ecx, 6
jmp 0x594602
push 1
push 6
jmp 0x594616
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x59386d
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x59387d
mov edx, dword [eax + 0x1c]
add ecx, 0x44
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593868
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59387d
mov edx, dword [eax + 4]
push 1
push 0x44
push edx
call fcn.006081d8
add esp, 0xc
xor edi, edi
nop
mov esi, ebp
call fcn.0057df50
movzx eax, ax
mov ecx, edi
and ecx, 1
mov edx, edi
mov dword [esp + 0x14], eax
add ecx, ecx
shr edx, 1
fild dword [esp + 0x14]
or ecx, edx
add edi, 1
cmp edi, 4
fstp dword [ebp + ecx*4 + 0x205c8]
jb 0x593880
jmp 0x59448b
cmp ecx, 0xc8
jb 0x59448b
cmp dword [esp + 0x5c], 0xcd
je 0x593904
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x5938f1
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x593904
mov edx, dword [eax + 0x1c]
add ecx, 0x118
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5938ec
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593904
mov eax, dword [eax + 4]
push 1
push 0x118
push eax
call fcn.006081d8
add esp, 0xc
mov edi, dword [ebp]
cmp dword [edi + 0x14], 0
je 0x593923
mov eax, 0x144
lea ebx, [esp + 0x98]
call fcn.00410220
jmp 0x59448b
mov edi, dword [edi + 4]
test edi, edi
je 0x59448b
push edi
push 1
lea ecx, [esp + 0xa0]
push 0x144
push ecx
call fcn.0060860a
add esp, 0x10
jmp 0x59448b
cmp esi, 0xa4
jne 0x5939c6
cmp edi, 3
jne 0x59448b
mov ecx, dword [esp + 0x60]
mov eax, dword [ebp]
lea ecx, [ecx + ecx*2]
shl ecx, 4
cmp dword [eax + 0x14], 0
je 0x59398a
mov edx, dword [eax + 0x18]
cmp edx, 0xffffffff
je 0x593999
add ecx, edx
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593985
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593999
mov edx, dword [eax + 4]
push 1
push ecx
push edx
call fcn.006081d8
add esp, 0xc
lea edi, [ebp + 0x205c8]
mov ebx, 3
mov esi, ebp
call fcn.0057df50
movzx eax, ax
mov dword [esp + 0x14], eax
add edi, 4
sub ebx, 1
fild dword [esp + 0x14]
fstp dword [edi - 4]
jne 0x5939a4
jmp 0x59448b
cmp esi, 0xa7
jne 0x593c63
mov ecx, dword [esp + 0x5c]
add ecx, 0xffffff38
cmp ecx, 0xc
jae 0x59448b
fldz
fcomp dword [ebp + 0x205c8]
fnstsw ax
test ah, 0x44
jp 0x59448b
mov edx, dword [esp + 0x64]
mov esi, dword [ebp]
mov ecx, dword [esi + 0x14]
and edx, 0xff
test ecx, ecx
mov al, byte [edx + 0x6b5dd0]
mov byte [esp + 0x51], al
je 0x593a5e
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593a2c
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593a35
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x593a59
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5b]
push ecx
call fcn.0060d1b0
add esp, 0xc
cmp ebx, 1
lea edx, [ebx + edi]
mov dword [esi + 0x18], edx
jne 0x593a59
movzx ebp, byte [esp + 0x53]
jmp 0x593a74
or ebp, 0xffffffff
jmp 0x593a74
mov esi, dword [esi + 4]
test esi, esi
je 0x593a70
push esi
call fcn.0060963d
add esp, 4
jmp 0x593a72
xor eax, eax
mov ebp, eax
mov eax, dword [esp + 0x58]
mov esi, dword [eax]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x593ace
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593a97
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593aa0
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x593ac4
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5e]
push ecx
call fcn.0060d1b0
add esp, 0xc
cmp ebx, 1
lea edx, [ebx + edi]
mov dword [esi + 0x18], edx
jne 0x593ac4
movzx eax, byte [esp + 0x56]
jmp 0x593ae2
mov dword [esp + 0x1c], 0xffffffff
jmp 0x593ae6
mov esi, dword [esi + 4]
test esi, esi
je 0x593ae0
push esi
call fcn.0060963d
add esp, 4
jmp 0x593ae2
xor eax, eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x593b40
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593b09
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593b12
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x593b36
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5d]
push ecx
call fcn.0060d1b0
add esp, 0xc
cmp ebx, 1
lea edx, [ebx + edi]
mov dword [esi + 0x18], edx
jne 0x593b36
movzx eax, byte [esp + 0x55]
jmp 0x593b54
mov dword [esp + 0x4c], 0xffffffff
jmp 0x593b58
mov esi, dword [esi + 4]
test esi, esi
je 0x593b52
push esi
call fcn.0060963d
add esp, 4
jmp 0x593b54
xor eax, eax
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x593bad
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x593b7b
mov edi, dword [esi + 0x18]
lea edx, [edi + 1]
cmp edx, eax
jbe 0x593b84
mov edi, dword [esi + 0x18]
sub eax, edi
mov ebx, eax
je 0x593ba8
lea eax, [edi + ecx]
push ebx
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.0060d1b0
add esp, 0xc
cmp ebx, 1
lea edx, [ebx + edi]
mov dword [esi + 0x18], edx
jne 0x593ba8
movzx eax, byte [esp + 0x54]
jmp 0x593bc1
or eax, 0xffffffff
jmp 0x593bc1
mov esi, dword [esi + 4]
test esi, esi
je 0x593bbf
push esi
call fcn.0060963d
add esp, 4
jmp 0x593bc1
xor eax, eax
xor ebp, dword [esp + 0x1c]
mov bl, 0x60
xor ebp, dword [esp + 0x4c]
xor ecx, ecx
xor ebp, eax
mov al, byte [esp + 0x51]
mov dl, byte [ebp + 0x6b5ed0]
imul bl
jmp 0x593be0
add dl, al
xor byte [esp + ecx + 0x98], dl
add al, byte [esp + 0x51]
add ecx, 1
cmp ecx, 0x144
jb 0x593be0
mov eax, dword [esp + 0x5c]
movsx ecx, byte [eax + 0x6b5f7c]
mov edi, dword [esp + 0x58]
sub ecx, 0x30
mov esi, ecx
xor eax, eax
and esi, 1
and ecx, 0xfffffffe
lea ecx, [esp + ecx + 0x98]
mov ebp, 0x4949
xor edx, edx
cmp word [edi + 4], bp
jne 0x593c2f
mov dh, byte [ecx + 1]
mov dl, byte [ecx]
jmp 0x593c34
mov dh, byte [ecx]
mov dl, byte [ecx + 1]
movzx edx, dx
movzx edx, dx
mov dword [esp + 0x14], edx
mov edx, eax
shr edx, 1
fild dword [esp + 0x14]
xor edx, esi
xor edx, eax
add eax, 1
add ecx, 2
cmp eax, 4
fstp dword [edi + edx*4 + 0x205c8]
jb 0x593c20
mov ebp, edi
jmp 0x59448b
cmp esi, 0x200
jne 0x593cb6
cmp ebx, 3
jne 0x593c87
mov esi, ebp
call fcn.0057e000
call fcn.0057e000
mov dword [ebp + 0x330], eax
jmp 0x59448b
cmp ebx, 4
jne 0x59448b
xor edi, edi
mov esi, ebp
call fcn.0057df50
mov ecx, edi
shr ecx, 1
xor ecx, edi
movzx eax, ax
add edi, 1
cmp edi, 4
mov dword [ebp + ecx*4 + 0x38c], eax
jb 0x593c92
jmp 0x59448b
cmp esi, 0x201
jne 0x593ccc
cmp ebx, 4
je 0x594622
jmp 0x59448b
cmp esi, 0x220
jne 0x593d11
cmp ebx, 0x35
jne 0x59448b
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x593cf7
mov eax, dword [eax + 0x18]
add eax, 0xe
mov dword [ebp + 0x350], eax
jmp 0x59448b
mov edx, dword [eax + 4]
push edx
call fcn.00609413
add esp, 4
add eax, 0xe
mov dword [ebp + 0x350], eax
jmp 0x59448b
cmp esi, 0x401
jne 0x593d51
cmp edi, 4
jne 0x59448b
cmp dword [esp + 0x48], edi
jne 0x59448b
xor edi, edi
mov edi, edi
mov esi, ebp
call fcn.0057e000
mov ecx, edi
shr ecx, 1
xor ecx, edi
add edi, 1
cmp edi, 4
mov dword [ebp + ecx*4 + 0x38c], eax
jb 0x593d30
jmp 0x59448b
cmp esi, 0xe01
jne 0x593e78
movsx edx, word [ebp + 4]
mov eax, dword [ebp]
mov word [ebp + 4], 0x4949
cmp dword [eax + 0x14], 0
mov dword [esp + 0x18], edx
je 0x593d90
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x593da0
mov edx, dword [eax + 0x1c]
add ecx, 0x16
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593d8b
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593da0
mov eax, dword [eax + 4]
push 1
push 0x16
push eax
call fcn.006081d8
add esp, 0xc
cmp ebx, 0x2c
mov dword [esp + 0x4c], 0x16
jbe 0x593e63
mov esi, ebp
call fcn.0057e000
mov ebx, eax
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
mov dword [esp + 0x20], ebx
je 0x593de3
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x593df3
mov edx, dword [eax + 0x1c]
add ecx, 0xe
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593dde
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593df3
mov ecx, dword [eax + 4]
push 1
push 0xe
push ecx
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057e000
mov edi, eax
sub edi, 4
cmp ebx, 0x76a43207
jne 0x593e17
call fcn.0057df50
movzx edx, ax
mov dword [ebp + 0x474], edx
jmp 0x593e4a
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x593e3b
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x593e4a
mov edx, dword [eax + 0x1c]
add ecx, edi
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593e36
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593e4a
mov eax, dword [eax + 4]
push 1
push edi
push eax
call fcn.006081d8
add esp, 0xc
mov ecx, dword [esp + 0x4c]
lea edi, [ecx + edi + 0x16]
mov dword [esp + 0x4c], edi
add edi, 0x16
cmp edi, dword [esp + 0x48]
jb 0x593db1
mov dx, word [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov word [ebp + 4], dx
cmp esi, 0xe80
jne 0x593f21
cmp ebx, 0x100
jne 0x59448b
cmp dword [esp + 0x18], 7
jne 0x59448b
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x593ec0
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x593ed0
mov edx, dword [eax + 0x1c]
add ecx, 0x30
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x593ebb
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x593ed0
mov eax, dword [eax + 4]
push 1
push 0x30
push eax
call fcn.006081d8
add esp, 0xc
mov esi, ebp
call fcn.0057df50
movzx ecx, ax
imul ecx, ecx, 0x1fc
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [0x6c1290]
fmul qword [0x6c0cd0]
fstp dword [ebp + 0x205c8]
call fcn.0057df50
movzx edx, ax
imul edx, edx, 0x17e
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x6c1288]
fmul qword [0x6c0cd0]
jmp 0x594485
cmp esi, 0xf00
jne 0x593fc3
cmp edi, 7
jne 0x59448b
mov eax, dword [esp + 0x48]
cmp eax, 0x266
jne 0x593f79
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x593f61
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x594341
add ecx, 0xb0
jmp 0x5933ae
mov eax, dword [eax + 4]
push 1
push 0xb0
push eax
call fcn.006081d8
add esp, 0xc
jmp 0x594341
cmp eax, 0x2de
je 0x593f8b
cmp eax, 0x5de
jne 0x5947cf
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x593fab
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x594341
add ecx, 0x94
jmp 0x5933ae
mov ecx, dword [eax + 4]
push 1
push 0x94
push ecx
call fcn.006081d8
add esp, 0xc
jmp 0x594341
cmp esi, 0x1011
jne 0x593fd5
cmp ebx, 9
je 0x593fe1
jmp 0x59448b
cmp esi, 0x20400200
jne 0x5940e0
lea edx, [ebp + 0x205e8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x14], 3
jmp 0x594000
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], 3
mov esi, dword [ebp]
mov al, 0xff
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], al
mov edx, dword [esi + 0x14]
test edx, edx
je 0x594059
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x59403a
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
jbe 0x594043
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x594072
add ecx, edx
push edi
push ecx
lea ecx, [esp + 0x34]
push ecx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x594072
mov esi, dword [esi + 4]
test esi, esi
je 0x594072
push esi
push 2
lea edx, [esp + 0x34]
push 1
push edx
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x594089
xor eax, eax
mov ah, byte [esp + 0x2d]
mov al, byte [esp + 0x2c]
movzx eax, ax
jmp 0x59409b
movzx dx, byte [esp + 0x2d]
xor ecx, ecx
mov ch, byte [esp + 0x2c]
or cx, dx
movzx eax, cx
movsx eax, ax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
add eax, 4
fild dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
fmul qword [0x6c0cd8]
fstp dword [eax - 4]
mov eax, 1
sub dword [esp + 0x6c], eax
jne 0x594010
add dword [esp + 0x4c], 0x10
sub dword [esp + 0x14], eax
jne 0x594000
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x48]
cmp esi, 0x1012
je 0x5940f4
cmp esi, 0x20400600
jne 0x5941b6
cmp ebx, 4
jne 0x5941b6
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov esi, dword [ebp]
mov byte [esp + 0x40], 0xff
mov byte [esp + 0x41], 0xff
mov edx, dword [esi + 0x14]
test edx, edx
je 0x594150
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x594131
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
mov ebx, dword [esp + 0x1c]
jbe 0x59413a
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x594169
add ecx, edx
push edi
push ecx
lea ecx, [esp + 0x48]
push ecx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x594169
mov esi, dword [esi + 4]
test esi, esi
je 0x594169
push esi
push 2
lea edx, [esp + 0x48]
push 1
push edx
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x594180
xor eax, eax
mov ah, byte [esp + 0x41]
mov al, byte [esp + 0x40]
movzx eax, ax
jmp 0x594192
movzx dx, byte [esp + 0x41]
xor ecx, ecx
mov ch, byte [esp + 0x40]
or cx, dx
movzx eax, cx
mov ecx, ebx
shr ecx, 1
xor ecx, ebx
movzx eax, ax
add ebx, 1
cmp ebx, 4
mov dword [ebp + ecx*4 + 0x38c], eax
mov dword [esp + 0x1c], ebx
jb 0x594103
mov esi, dword [esp + 0x20]
cmp esi, 0x1017
je 0x5941ca
cmp esi, 0x20400100
jne 0x594270
mov esi, dword [ebp]
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
mov edx, dword [esi + 0x14]
test edx, edx
je 0x594213
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x5941f4
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
jbe 0x5941fd
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x59422c
add ecx, edx
push edi
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x59422c
mov esi, dword [esi + 4]
test esi, esi
je 0x59422c
push esi
push 2
lea eax, [esp + 0x3c]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x594243
xor ecx, ecx
mov ch, byte [esp + 0x35]
mov cl, byte [esp + 0x34]
movzx eax, cx
jmp 0x594255
movzx ax, byte [esp + 0x35]
xor edx, edx
mov dh, byte [esp + 0x34]
or dx, ax
movzx eax, dx
mov esi, dword [esp + 0x20]
movzx ecx, ax
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fmul qword [0x6c0cd8]
fstp dword [ebp + 0x205c8]
cmp esi, 0x1018
je 0x594284
cmp esi, 0x20400100
jne 0x59432a
mov esi, dword [ebp]
mov byte [esp + 0x44], 0xff
mov byte [esp + 0x45], 0xff
mov edx, dword [esi + 0x14]
test edx, edx
je 0x5942cd
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x5942ae
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
jbe 0x5942b7
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x5942e6
add ecx, edx
push edi
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x5942e6
mov esi, dword [esi + 4]
test esi, esi
je 0x5942e6
push esi
push 2
lea eax, [esp + 0x4c]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x5942fd
xor ecx, ecx
mov ch, byte [esp + 0x45]
mov cl, byte [esp + 0x44]
movzx eax, cx
jmp 0x59430f
movzx ax, byte [esp + 0x45]
xor edx, edx
mov dh, byte [esp + 0x44]
or dx, ax
movzx eax, dx
mov esi, dword [esp + 0x20]
movzx ecx, ax
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fmul qword [0x6c0cd8]
fstp dword [ebp + 0x205d0]
cmp esi, 0x2011
jne 0x59448b
cmp dword [esp + 0x48], 2
jne 0x59448b
mov esi, dword [ebp]
mov bl, 0xff
mov word [ebp + 4], 0x4d4d
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bl
mov edx, dword [esi + 0x14]
test edx, edx
je 0x594392
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x594373
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
mov bl, 0xff
jbe 0x59437c
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x5943c2
add ecx, edx
push edi
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x5943ab
mov esi, dword [esi + 4]
test esi, esi
je 0x5943c2
push esi
push 2
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x5943c2
xor ecx, ecx
mov ch, byte [esp + 0x25]
mov cl, byte [esp + 0x24]
movzx eax, cx
jmp 0x5943d4
movzx ax, byte [esp + 0x25]
xor edx, edx
mov dh, byte [esp + 0x24]
or dx, ax
movzx eax, dx
mov esi, dword [ebp]
movzx ecx, ax
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
fild dword [esp + 0x3c]
fmul qword [0x6c0cd8]
fstp dword [ebp + 0x205c8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x594432
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x594413
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
jbe 0x59441c
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x59444b
add ecx, edx
push edi
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x59444b
mov esi, dword [esi + 4]
test esi, esi
je 0x59444b
push esi
push 2
lea eax, [esp + 0x30]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x594462
xor ecx, ecx
mov ch, byte [esp + 0x29]
mov cl, byte [esp + 0x28]
movzx eax, cx
jmp 0x594474
movzx ax, byte [esp + 0x29]
xor edx, edx
mov dh, byte [esp + 0x28]
or dx, ax
movzx eax, dx
movzx ecx, ax
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fmul qword [0x6c0cd8]
fstp dword [ebp + 0x205d0]
mov edx, dword [esp + 0x20]
or edx, 0x70
cmp edx, 0x2070
jne 0x5944de
cmp dword [esp + 0x18], 4
jne 0x5944de
mov esi, ebp
call fcn.0057e000
mov ecx, dword [ebp]
add eax, dword [esp + 0x1f0]
cmp dword [ecx + 0x14], 0
je 0x5944cf
cmp dword [ecx + 0x18], 0xffffffff
je 0x5944de
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x5944ca
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x5944de
push 0
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.006081d8
add esp, 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0x2010
jne 0x594503
cmp dword [esp + 0x18], 7
je 0x5947cf
mov dword [ebp + 0x9692c], 0x5862f0
jmp 0x5947cf
cmp eax, 0x2020
jne 0x594528
mov ecx, dword [esp + 0x1f0]
push 0x102
push 0x101
push ecx
mov eax, ebp
call fcn.00592a70
jmp 0x5947cf
cmp eax, 0x2040
jne 0x594544
mov edx, dword [esp + 0x1f0]
push eax
push edx
mov ecx, ebp
call fcn.00592b30
jmp 0x5947cf
cmp eax, 0xb028
jne 0x5945a1
mov esi, ebp
call fcn.0057e000
mov esi, dword [esp + 0x1f0]
mov ecx, dword [ebp]
add eax, esi
cmp dword [ecx + 0x14], 0
je 0x59457b
cmp dword [ecx + 0x18], 0xffffffff
je 0x59458a
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x594576
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x59458a
push 0
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.006081d8
add esp, 0xc
push 0x89
push 0x88
push esi
mov eax, ebp
call fcn.00592a70
jmp 0x5947cf
cmp eax, 0x4001
jne 0x5947cf
cmp dword [esp + 0x48], 0x1f4
jbe 0x5947cf
mov ecx, dword [esp + 0x48]
cmp ecx, 0x246
jne 0x5945cd
mov ecx, 0x32
jmp 0x5945ef
cmp ecx, 0x28d
jne 0x5945dc
mov ecx, 0x44
jmp 0x5945ef
sub ecx, 0x1400
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x8e
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x594613
mov edx, dword [eax + 0x18]
cmp edx, 0xffffffff
je 0x594622
add ecx, edx
mov dword [eax + 0x18], ecx
mov edx, dword [eax + 0x1c]
cmp edx, ecx
ja 0x59460e
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x594622
push 1
push ecx
mov ecx, dword [eax + 4]
push ecx
call fcn.006081d8
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x1c], ebx
jmp 0x594630
mov esi, dword [ebp]
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov edx, dword [esi + 0x14]
test edx, edx
je 0x59467d
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x59465e
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
mov ebx, dword [esp + 0x1c]
jbe 0x594667
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x594696
add ecx, edx
push edi
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x594696
mov esi, dword [esi + 4]
test esi, esi
je 0x594696
push esi
push 2
lea eax, [esp + 0x38]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x5946ad
xor ecx, ecx
mov ch, byte [esp + 0x31]
mov cl, byte [esp + 0x30]
movzx eax, cx
jmp 0x5946bf
movzx ax, byte [esp + 0x31]
xor edx, edx
mov dh, byte [esp + 0x30]
or dx, ax
movzx eax, dx
movzx ecx, ax
mov edx, ebx
shr edx, 1
mov dword [esp + 0x3c], ecx
xor edx, ebx
add ebx, 1
cmp ebx, 4
fild dword [esp + 0x3c]
mov dword [esp + 0x1c], ebx
fstp dword [ebp + edx*4 + 0x205c8]
jb 0x594630
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x59470c
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x59471c
mov edx, dword [eax + 0x1c]
add ecx, 0x16
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x594707
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59471c
mov eax, dword [eax + 4]
push 1
push 0x16
push eax
call fcn.006081d8
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov esi, dword [ebp]
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
mov edx, dword [esi + 0x14]
test edx, edx
je 0x59476f
mov eax, dword [esi + 0x1c]
mov edi, 2
cmp eax, edi
jb 0x594750
mov ecx, dword [esi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
mov ebx, dword [esp + 0x1c]
jbe 0x594759
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov edi, eax
je 0x594788
add ecx, edx
push edi
push ecx
lea ecx, [esp + 0x40]
push ecx
call fcn.0060d1b0
add esp, 0xc
add dword [esi + 0x18], edi
jmp 0x594788
mov esi, dword [esi + 4]
test esi, esi
je 0x594788
push esi
push 2
lea edx, [esp + 0x40]
push 1
push edx
call fcn.0060860a
add esp, 0x10
cmp word [ebp + 4], 0x4949
jne 0x59479f
xor eax, eax
mov ah, byte [esp + 0x39]
mov al, byte [esp + 0x38]
movzx eax, ax
jmp 0x5947b1
movzx dx, byte [esp + 0x39]
xor ecx, ecx
mov ch, byte [esp + 0x38]
or cx, dx
movzx eax, cx
mov ecx, ebx
shr ecx, 1
xor ecx, ebx
add ebx, 1
cmp ebx, 4
mov word [ebp + ecx*2 + 0x20562], ax
mov dword [esp + 0x1c], ebx
jb 0x594722
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x5947f6
cmp dword [eax + 0x18], 0xffffffff
je 0x59480c
mov ecx, dword [esp + 0x80]
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5947f1
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59480c
mov edx, dword [esp + 0x80]
mov eax, dword [eax + 4]
push 0
push edx
push eax
call fcn.006081d8
add esp, 0xc
cmp dword [esp + 0x68], 0
jne 0x592f10
mov ax, word [esp + 0x84]
mov word [ebp + 4], ax
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00607d6d
add esp, 0x1dc
ret 8
mov word [ebp + 4], 0x4d4d
mov eax, dword [ebp]
cmp dword [eax + 0x14], 0
je 0x594852
mov eax, dword [eax + 0x18]
jmp 0x59485e
mov ecx, dword [eax + 4]
push ecx
call fcn.00609413
add esp, 4
cmp eax, dword [ebp + 0x348]
jae 0x594817
cmp eax, 0x4000
jae 0x594817
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov ebx, esi
mov esi, ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ebx
call fcn.0057df50
cmp ebx, 0x100
movzx esi, ax
mov dword [esp + 0x7c], esi
jne 0x594844
cmp esi, ebx
jne 0x594844
add edi, 0xfffffeff
cmp edi, 0x17e
ja 0x594844
mov eax, dword [esp + 0x78]
add eax, 0xfffffeff
cmp eax, 0x17e
ja 0x594844
xor eax, eax
lea ecx, [ebp + 0x205c8]
mov edx, dword [esp + eax*4 + 0x70]
fild dword [esp + eax*4 + 0x70]
test edx, edx
jge 0x5948d5
fadd dword [0x6c0a38]
fstp dword [ecx]
add eax, 1
add ecx, 4
cmp eax, 4
jb 0x5948c3
jmp 0x594844