Function at 0x41388c
Capabilities:
Access peb ldr_data
Check for software breakpoints
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x58
push 0
push 0
dec ecx
jne 0x413895
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
call fcn.0040477c
mov eax, dword [ebp - 0x14]
call fcn.0040477c
xor eax, eax
push ebp
push 0x416819
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.ole32.dll_CoInitialize
mov al, byte [0x41682c]
push eax
lea eax, [ebp - 0xec]
push eax
mov ecx, 0x416838
mov edx, 0x416844
mov eax, dword [ebp - 0x10]
call fcn.0040b90c
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0x20]
call fcn.00412f84
lea eax, [ebp - 0x18]
call fcn.00405808
push eax
push 0
push 0
push 0x10
push 0
lea eax, [ebp - 0x20]
call fcn.004047e4
push eax
call sub.ole32.dll_StgOpenStorage
lea eax, [ebp - 0x1c]
call fcn.00405808
push eax
push 0
push 0x10
push 0
push 0x416848
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
push 1
lea eax, [ebp - 0xe8]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [eax]
call dword [eax + 0x30]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
call fcn.00402668
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
call sub.ole32.dll_CoUninitialize
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x40fc08]
call fcn.00403670
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x3d], 1
xor eax, eax
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dl, 1
mov eax, dword [0x40f948]
call fcn.00403670
mov dword [ebp - 8], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x412ba8]
call fcn.004179c0
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00410278
mov dl, 1
mov eax, dword [0x40f948]
call fcn.00403670
mov dword [ebp - 0xc], eax
mov ecx, 0x416864
mov dl, 1
mov eax, dword [0x412bfc]
call fcn.00417c50
mov edx, eax
mov eax, dword [ebp - 0xc]
call fcn.00410278
mov dl, 1
mov eax, dword [0x40fc08]
call fcn.00403670
mov dword [ebp - 0x94], eax
mov edx, 0x416874
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x4168ac
push dword [ebp - 0x10]
push 0x4168c8
lea eax, [ebp - 0xf0]
mov edx, 3
call fcn.0040464c
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x28]
jge 0x41670e
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
movzx esi, byte [eax + edx]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [eax + edx + 1]
shl eax, 8
add esi, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [eax + edx + 2]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [edx + ecx + 3]
shl edx, 8
add eax, edx
mov dword [ebp - 0x30], eax
test esi, esi
je 0x41670e
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x2020
jne 0x413b52
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [eax + edx + 0x2024]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [edx + ecx + 0x2025]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx + ecx + 0x2026]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [edx + ecx + 0x2027]
shl edx, 8
add ebx, edx
cmp eax, 0x3c
jne 0x413b46
add dword [ebp - 0x30], ebx
cmp esi, 0xfc
jne 0x413b16
mov eax, dword [ebp - 0x2c]
add eax, 0x2029
mov ecx, dword [ebp - 0x28]
sub ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
lea edx, [eax + edx + 0x2024]
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x2c]
lea eax, [eax + edi + 0x2029]
call fcn.004027f0
sub dword [ebp - 0x28], 5
dec dword [ebp - 0x30]
jmp 0x413b46
mov eax, dword [ebp - 0x2c]
add eax, 0x2028
mov ecx, dword [ebp - 0x28]
sub ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
lea edx, [eax + edx + 0x2024]
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x2c]
lea eax, [eax + edi + 0x2028]
call fcn.004027f0
sub dword [ebp - 0x28], 4
cmp ebx, 0x2020
je 0x413a8e
cmp esi, 0xa1
jg 0x413c5c
je 0x415d38
cmp esi, 0x27
jg 0x413c0a
je 0x4163bf
add esi, 0xfffffffa
cmp esi, 0x20
ja case.0x413b7f.7
jmp dword [esi*4 + 0x413b86]
cmp esi, 0x41
jg 0x413c3c
je 0x41519b
sub esi, 0x28
je 0x4163eb
dec esi
je 0x416417
sub esi, 8
je 0x414555
sub esi, 0xc
je 0x4144c7
jmp case.0x413b7f.7
sub esi, 0x55
je 0x4161ae
sub esi, 0x28
je 0x4159ae
sub esi, 8
je 0x414f62
jmp case.0x413b7f.7
cmp esi, 0x200
jg 0x413ccf
je 0x415a90
cmp esi, 0xe5
jg 0x413ca2
je 0x416216
sub esi, 0xbd
je 0x4141a7
dec esi
je 0x415297
sub esi, 0x15
je 0x4150d1
sub esi, 0xd
je 0x41483a
jmp case.0x413b7f.7
sub esi, 0xfc
je 0x4154e7
dec esi
je 0x415704
sub esi, 2
je 0x4156f2
sub esi, 0xaf
je 0x413f83
jmp case.0x413b7f.7
cmp esi, 0x23e
jg 0x413d07
je 0x415b9e
sub esi, 0x201
je 0x4150de
sub esi, 2
je 0x414418
dec esi
je 0x416443
sub esi, 4
je 0x415800
jmp case.0x413b7f.7
sub esi, 0x27e
je 0x414360
sub esi, 0x23e
je 0x414097
sub esi, 0x34d
je 0x413d56
jmp case.0x413b7f.7
cmp byte [ebp - 0x3d], 0
je 0x413d44
lea eax, [ebp - 0x20]
mov edx, 0x4168d4
call fcn.00404388
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4168e8
call fcn.00404388
jmp 0x4166e5
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
cmp byte [eax + edx + 6], 5
jne 0x413d79
mov byte [ebp - 0x3d], 1
lea eax, [ebp - 0x20]
mov edx, 0x416900
call fcn.00404388
jmp 0x4166e5
mov byte [ebp - 0x3d], 0
lea eax, [ebp - 0x20]
mov edx, 0x416914
call fcn.00404388
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416928
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
call fcn.004042f0
mov edi, dword [ebp - 0x38]
movzx ebx, si
add ebx, dword [ebp - 0x38]
dec ebx
sub ebx, edi
jl 0x413deb
inc ebx
lea eax, [ebp - 0xf4]
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi]
call fcn.004044d8
mov edx, dword [ebp - 0xf4]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x413dc8
push dword [ebp - 0x20]
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x24]
call fcn.00412ca8
push dword [ebp - 0xf8]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x41694c
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
lea edx, [ebp - 0xfc]
movzx eax, si
call fcn.00407318
push dword [ebp - 0xfc]
push 0x416960
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x100]
call fcn.00407318
push dword [ebp - 0x100]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416970
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x42], ax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push dword [ebp - 0x20]
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x104]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x104]
push 0x416988
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x108]
call fcn.00407318
push dword [ebp - 0x108]
push 0x41699c
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.0040464c
lea eax, [ebp - 0x24]
call fcn.004042f0
mov edi, dword [ebp - 0x38]
movzx ebx, word [ebp - 0x42]
add ebx, dword [ebp - 0x38]
sub ebx, 7
sub ebx, edi
jl 0x413f55
inc ebx
lea eax, [ebp - 0x10c]
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi]
call fcn.004044d8
mov edx, dword [ebp - 0x10c]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x413f32
push dword [ebp - 0x20]
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 0x24]
call fcn.00412ca8
push dword [ebp - 0x110]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4169b4
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
call fcn.004042f0
mov edi, dword [ebp - 0x38]
movzx ebx, si
add ebx, dword [ebp - 0x38]
dec ebx
sub ebx, edi
jl 0x413fdf
inc ebx
lea eax, [ebp - 0x114]
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi]
call fcn.004044d8
mov edx, dword [ebp - 0x114]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x413fbc
push dword [ebp - 0x20]
lea edx, [ebp - 0x118]
mov eax, dword [ebp - 0x24]
call fcn.00412ca8
push dword [ebp - 0x118]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4169cc
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
call fcn.004042f0
mov edi, dword [ebp - 0x38]
movzx ebx, si
add ebx, dword [ebp - 0x38]
dec ebx
sub ebx, edi
jl 0x414069
inc ebx
lea eax, [ebp - 0x11c]
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi]
call fcn.004044d8
mov edx, dword [ebp - 0x11c]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x414046
push dword [ebp - 0x20]
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x24]
call fcn.00412ca8
push dword [ebp - 0x120]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x20]
mov edx, 0x4169e8
call fcn.00404388
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push dword [ebp - 0x20]
movzx eax, word [ebp - 0x40]
push eax
lea eax, [ebp - 0x134]
push eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
and eax, 0xff
push eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
and eax, 0xff
movzx edx, si
pop ecx
call fcn.0040fe7c
lea eax, [ebp - 0x134]
lea edx, [ebp - 0x124]
call fcn.00413150
push dword [ebp - 0x124]
push 0x41699c
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
add dword [ebp - 0x38], 2
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
add si, 4
sub dword [ebp - 0x38], 4
lea eax, [ebp - 0x24]
call fcn.004042f0
mov edi, dword [ebp - 0x38]
movzx ebx, si
add ebx, dword [ebp - 0x38]
dec ebx
sub ebx, edi
jl 0x414179
inc ebx
lea eax, [ebp - 0x138]
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi]
call fcn.004044d8
mov edx, dword [ebp - 0x138]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x414156
push dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
mov eax, dword [ebp - 0x24]
call fcn.00412ca8
push dword [ebp - 0x13c]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
sub eax, 6
mov ecx, 6
cdq
idiv ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x42], ax
lea eax, [ebp - 0x20]
mov edx, 0x416a04
call fcn.00404388
lea eax, [ebp - 0x24]
mov edx, 0x416a1c
call fcn.00404388
movzx ebx, si
test ebx, ebx
jle 0x4142b3
mov edi, 1
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x140]
call fcn.00407318
mov edx, dword [ebp - 0x140]
lea eax, [ebp - 0x24]
call fcn.00404594
movzx eax, si
cmp edi, eax
jge 0x41424c
lea eax, [ebp - 0x24]
mov edx, 0x416a2c
call fcn.00404594
jmp 0x414259
lea eax, [ebp - 0x24]
mov edx, 0x416a38
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
call fcn.004133c4
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x144]
call fcn.00408548
mov edx, dword [ebp - 0x144]
lea eax, [ebp - 0x20]
call fcn.00404594
movzx eax, si
cmp edi, eax
jge 0x41429e
lea eax, [ebp - 0x20]
mov edx, 0x416a2c
call fcn.00404594
jmp 0x4142ab
lea eax, [ebp - 0x20]
mov edx, 0x416a38
call fcn.00404594
inc edi
dec ebx
jne 0x414210
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov eax, dword [0x41856c]
mov edx, 0x416a44
call fcn.00404920
movzx edx, word [ebp - 0x40]
call fcn.00403190
mov edx, 0x416a54
call fcn.00404920
movzx edx, word [ebp - 0x42]
call fcn.00403190
mov edx, 0x416a64
call fcn.00404920
movzx edx, si
call fcn.00403190
call fcn.004031c0
call fcn.0040275c
push dword [ebp - 0x20]
push 0x416a74
push dword [ebp - 0x24]
push 0x416a80
movzx eax, word [ebp - 0x40]
push eax
lea eax, [ebp - 0x134]
push eax
movzx ecx, si
movzx edx, word [ebp - 0x40]
movzx eax, word [ebp - 0x42]
call fcn.0040fe7c
lea eax, [ebp - 0x134]
lea edx, [ebp - 0x148]
call fcn.00413150
push dword [ebp - 0x148]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 6
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push 0x416a94
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x14c]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x14c]
push 0x416988
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x150]
call fcn.00407318
push dword [ebp - 0x150]
push 0x416aa8
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
mov edi, eax
push dword [ebp - 0x20]
mov eax, edi
call fcn.004133c4
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x154]
call fcn.00408548
push dword [ebp - 0x154]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push 0x416abc
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x158]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x158]
push 0x416988
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x15c]
call fcn.00407318
push dword [ebp - 0x15c]
push 0x416aa8
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.0040464c
push dword [ebp - 0x20]
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x160]
call fcn.00408548
push dword [ebp - 0x160]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
movzx esi, byte [eax + edx + 0xc]
lea eax, [ebp - 0x20]
mov edx, 0x416ad4
call fcn.00404388
test si, 1
jbe 0x4144f3
lea eax, [ebp - 0x20]
mov edx, 0x416ae8
call fcn.00404594
test si, 2
jbe 0x414507
lea eax, [ebp - 0x20]
mov edx, 0x416afc
call fcn.00404594
test si, 8
jbe 0x41451b
lea eax, [ebp - 0x20]
mov edx, 0x416b10
call fcn.00404594
test si, 0x10
jbe 0x41452f
lea eax, [ebp - 0x20]
mov edx, 0x416b28
call fcn.00404594
test si, 0x20
jbe 0x414543
lea eax, [ebp - 0x20]
mov edx, 0x416b40
call fcn.00404594
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push 0x416b60
movzx eax, si
mov ecx, 0x14
xor edx, edx
div ecx
lea edx, [ebp - 0x164]
call fcn.00407318
push dword [ebp - 0x164]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, 2
jbe 0x4145be
lea eax, [ebp - 0x20]
mov edx, 0x416b78
call fcn.00404594
test si, 8
jbe 0x4145d2
lea eax, [ebp - 0x20]
mov edx, 0x416b8c
call fcn.00404594
test si, 0x10
jbe 0x4145e6
lea eax, [ebp - 0x20]
mov edx, 0x416ba4
call fcn.00404594
test si, 0x20
jbe 0x4145fa
lea eax, [ebp - 0x20]
mov edx, 0x416bbc
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
cmp ax, 0x190
je 0x414623
lea eax, [ebp - 0x20]
mov edx, 0x416bd0
call fcn.00404594
test si, si
je 0x414656
push dword [ebp - 0x20]
push 0x416be4
lea edx, [ebp - 0x168]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x168]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov eax, esi
dec al
je 0x41466e
dec al
je 0x41467d
jmp 0x41468a
lea eax, [ebp - 0x20]
mov edx, 0x416bf8
call fcn.00404594
jmp 0x41468a
lea eax, [ebp - 0x20]
mov edx, 0x416c14
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov eax, esi
dec al
je 0x4146aa
dec al
je 0x4146b9
dec al
je 0x4146c8
dec al
je 0x4146d7
jmp 0x4146e4
lea eax, [ebp - 0x20]
mov edx, 0x416c2c
call fcn.00404594
jmp 0x4146e4
lea eax, [ebp - 0x20]
mov edx, 0x416c44
call fcn.00404594
jmp 0x4146e4
lea eax, [ebp - 0x20]
mov edx, 0x416c5c
call fcn.00404594
jmp 0x4146e4
lea eax, [ebp - 0x20]
mov edx, 0x416c7c
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
and si, 0xff
cmp si, 0xcc
je 0x41472a
push dword [ebp - 0x20]
push 0x416c9c
lea edx, [ebp - 0x16c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x16c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
call fcn.004042f0
movzx eax, si
shr eax, 8
cmp eax, 1
jne 0x4147a5
and si, 0xff
movzx eax, si
mov ebx, eax
add ebx, ebx
test ebx, ebx
jle 0x414787
mov edi, 1
lea eax, [ebp - 0x170]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x170]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x41475e
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x24]
call fcn.00412e98
mov edx, dword [ebp - 0x174]
lea eax, [ebp - 0x24]
call fcn.00404388
jmp 0x4147e1
mov ebx, esi
and bx, 0xff
movzx ebx, bx
test ebx, ebx
jle 0x4147e1
mov edi, 1
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x4147b8
cmp dword [ebp - 0x24], 0
je 0x414813
mov eax, dword [ebp - 0x24]
mov edx, 0x416cb0
call fcn.004046d8
je 0x414813
push dword [ebp - 0x20]
push 0x416cc4
push dword [ebp - 0x24]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
inc dword [ebp - 0x48]
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
cmp dword [ebp - 0x48], 5
jge 0x4166e5
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416cd4
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x41488f
push dword [ebp - 0x20]
push 0x416ce0
lea edx, [ebp - 0x17c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x17c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x4148ce
push dword [ebp - 0x20]
push 0x416cf0
lea edx, [ebp - 0x180]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x180]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, 4
jbe 0x4148ee
lea eax, [ebp - 0x20]
mov edx, 0x416d04
call fcn.00404594
test si, 1
jbe 0x414902
lea eax, [ebp - 0x20]
mov edx, 0x416d18
call fcn.00404594
test si, 2
jbe 0x414916
lea eax, [ebp - 0x20]
mov edx, 0x416ae8
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov eax, esi
and ax, 7
test ax, ax
je 0x41493a
lea eax, [ebp - 0x20]
mov edx, 0x416d2c
call fcn.00404594
mov eax, esi
and ax, 7
movzx eax, ax
cmp eax, 6
ja case.0x414948.0
jmp dword [eax*4 + 0x41494f]
lea eax, [ebp - 0x20]
mov edx, 0x416d40
call fcn.00404594
jmp case.0x414948.0
lea eax, [ebp - 0x20]
mov edx, 0x416d50
call fcn.00404594
jmp case.0x414948.0
lea eax, [ebp - 0x20]
mov edx, 0x416d64
call fcn.00404594
jmp case.0x414948.0
lea eax, [ebp - 0x20]
mov edx, 0x416d78
call fcn.00404594
jmp case.0x414948.0
lea eax, [ebp - 0x20]
mov edx, 0x416d88
call fcn.00404594
jmp case.0x414948.0
lea eax, [ebp - 0x20]
mov edx, 0x416d9c
call fcn.00404594
test si, 8
jbe 0x4149d7
lea eax, [ebp - 0x20]
mov edx, 0x416dac
call fcn.00404594
mov eax, esi
and ax, 0x70
movzx eax, ax
shr eax, 4
cmp eax, 2
je 0x4149f5
lea eax, [ebp - 0x20]
mov edx, 0x416dc0
call fcn.00404594
mov eax, esi
and ax, 0x70
movzx eax, ax
shr eax, 4
sub eax, 1
jb 0x414a0f
je 0x414a1e
sub eax, 2
je 0x414a2d
jmp 0x414a3a
lea eax, [ebp - 0x20]
mov edx, 0x416dd4
call fcn.00404594
jmp 0x414a3a
lea eax, [ebp - 0x20]
mov edx, 0x416de4
call fcn.00404594
jmp 0x414a3a
lea eax, [ebp - 0x20]
mov edx, 0x416df8
call fcn.00404594
mov eax, esi
and ax, 0xff00
movzx eax, ax
shr eax, 8
test eax, eax
je 0x414a81
push dword [ebp - 0x20]
push 0x416e0c
lea edx, [ebp - 0x184]
mov eax, esi
and ax, 0xff00
movzx eax, ax
shr eax, 8
call fcn.00407318
push dword [ebp - 0x184]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov eax, esi
and ax, 0xf
test ax, ax
jbe 0x414acc
push dword [ebp - 0x20]
push 0x416e20
lea edx, [ebp - 0x188]
mov eax, esi
and ax, 0xf
movzx eax, ax
call fcn.00407318
push dword [ebp - 0x188]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
test si, 0x10
jbe 0x414ae0
lea eax, [ebp - 0x20]
mov edx, 0x416e34
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
mov edi, eax
mov dword [ebp - 0x34], edi
mov eax, esi
and ax, 0xf
movzx eax, ax
mov dword [ebp - 0x7c], eax
mov ebx, esi
and bx, 0xf0
movzx ebx, bx
shr ebx, 4
mov eax, esi
and ax, 0xf00
movzx eax, ax
shr eax, 8
mov dword [ebp - 0x80], eax
and si, 0xf000
movzx eax, si
shr eax, 0xc
mov esi, eax
mov ax, word [ebp - 0x40]
and ax, 0x7f
movzx eax, ax
mov dword [ebp - 0x84], eax
mov ax, word [ebp - 0x40]
and ax, 0x3f80
movzx eax, ax
shr eax, 7
mov dword [ebp - 0x88], eax
mov eax, edi
and eax, 0x7f
mov dword [ebp - 0x8c], eax
and edi, 0x3f80
shr edi, 7
mov dword [ebp - 0x90], edi
push ebp
mov eax, esi
push eax
mov al, byte [ebp - 0x84]
push eax
mov al, byte [ebp - 0x8c]
push eax
mov al, byte [ebp - 0x88]
push eax
mov al, byte [ebp - 0x90]
push eax
mov ecx, ebx
mov dl, byte [ebp - 0x80]
mov al, byte [ebp - 0x7c]
call fcn.00413804
pop ecx
mov edi, eax
cmp edi, 0xffffffff
jne 0x414dbd
lea eax, [ebp - 0x24]
mov edx, 0x416e50
call fcn.00404388
cmp dword [ebp - 0x7c], 0
je 0x414bf7
push dword [ebp - 0x24]
push 0x416e60
lea edx, [ebp - 0x18c]
mov eax, dword [ebp - 0x7c]
call fcn.00407318
push dword [ebp - 0x18c]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x80], 0
je 0x414c2b
push dword [ebp - 0x24]
push 0x416e70
lea edx, [ebp - 0x190]
mov eax, dword [ebp - 0x80]
call fcn.00407318
push dword [ebp - 0x190]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
test ebx, ebx
je 0x414c5c
push dword [ebp - 0x24]
push 0x416e80
lea edx, [ebp - 0x194]
mov eax, ebx
call fcn.00407318
push dword [ebp - 0x194]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
test esi, esi
je 0x414c8d
push dword [ebp - 0x24]
push 0x416e94
lea edx, [ebp - 0x198]
mov eax, esi
call fcn.00407318
push dword [ebp - 0x198]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x84], 0
je 0x414cc7
push dword [ebp - 0x24]
push 0x416ea8
lea edx, [ebp - 0x19c]
mov eax, dword [ebp - 0x84]
call fcn.00407318
push dword [ebp - 0x19c]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x8c], 0
je 0x414d01
push dword [ebp - 0x24]
push 0x416ebc
lea edx, [ebp - 0x1a0]
mov eax, dword [ebp - 0x8c]
call fcn.00407318
push dword [ebp - 0x1a0]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x88], 0
je 0x414d3b
push dword [ebp - 0x24]
push 0x416ecc
lea edx, [ebp - 0x1a4]
mov eax, dword [ebp - 0x88]
call fcn.00407318
push dword [ebp - 0x1a4]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x90], 0
je 0x414d75
push dword [ebp - 0x24]
push 0x416ee0
lea edx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x90]
call fcn.00407318
push dword [ebp - 0x1a8]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
push ebp
mov eax, esi
push eax
mov al, byte [ebp - 0x84]
push eax
mov al, byte [ebp - 0x8c]
push eax
mov al, byte [ebp - 0x88]
push eax
mov al, byte [ebp - 0x90]
push eax
mov ecx, ebx
mov dl, byte [ebp - 0x80]
mov al, byte [ebp - 0x7c]
call fcn.00413508
pop ecx
mov edi, eax
lea eax, [ebp - 0x24]
mov edx, 0x416b54
call fcn.00404594
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
test edi, edi
je 0x414dee
push dword [ebp - 0x20]
push 0x416ef4
lea edx, [ebp - 0x1ac]
mov eax, edi
call fcn.00407318
push dword [ebp - 0x1ac]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
mov edi, dword [ebp - 0x34]
and edi, 0xfc000000
shr edi, 0x1a
mov dword [ebp - 0x7c], edi
mov ebx, esi
and bx, 0x7f
movzx ebx, bx
and si, 0x3f80
movzx eax, si
shr eax, 7
mov dword [ebp - 0x80], eax
push ebp
mov cl, byte [ebp - 0x80]
mov edx, ebx
mov al, byte [ebp - 0x7c]
call fcn.004137a4
pop ecx
mov edi, eax
cmp edi, 0xffffffff
jne 0x414f0a
lea eax, [ebp - 0x24]
mov edx, 0x416f08
call fcn.00404388
cmp dword [ebp - 0x7c], 1
je 0x414e7b
push dword [ebp - 0x24]
push 0x416f1c
lea edx, [ebp - 0x1b0]
mov eax, dword [ebp - 0x7c]
call fcn.00407318
push dword [ebp - 0x1b0]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp ebx, 1
je 0x414ead
push dword [ebp - 0x24]
push 0x416f30
lea edx, [ebp - 0x1b4]
mov eax, ebx
call fcn.00407318
push dword [ebp - 0x1b4]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
cmp dword [ebp - 0x80], 1
je 0x414ee1
push dword [ebp - 0x24]
push 0x416f40
lea edx, [ebp - 0x1b8]
mov eax, dword [ebp - 0x80]
call fcn.00407318
push dword [ebp - 0x1b8]
push 0x416a38
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.0040464c
push ebp
mov cl, byte [ebp - 0x80]
mov edx, ebx
mov al, byte [ebp - 0x7c]
call fcn.004136bc
pop ecx
mov edi, eax
lea eax, [ebp - 0x24]
mov edx, 0x416b54
call fcn.00404594
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
test edi, edi
je 0x414f3b
push dword [ebp - 0x20]
push 0x416f50
lea edx, [ebp - 0x1bc]
mov eax, edi
call fcn.00407318
push dword [ebp - 0x1bc]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
inc dword [ebp - 0x4c]
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
cmp dword [ebp - 0x4c], 0x11
jge 0x4166e5
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416f64
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 0xa
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
call fcn.004042f0
movzx eax, si
shr eax, 8
cmp eax, 1
jne 0x414ff6
and si, 0xff
movzx eax, si
mov ebx, eax
add ebx, ebx
test ebx, ebx
jle 0x414fd5
mov edi, 1
lea eax, [ebp - 0x1c0]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x1c0]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x414fac
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x24]
call fcn.00412e98
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x24]
call fcn.00404388
jmp 0x41509e
mov ebx, esi
and bx, 0xff
movzx ebx, bx
test ebx, ebx
jle 0x41509e
mov edi, 1
lea eax, [ebp - 0x1c8]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x1c8]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x41500d
jmp 0x41509e
lea eax, [ebp - 0x1cc]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x1cc]
push 0x416f78
lea eax, [ebp - 0x1d0]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov edx, eax
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x1d0]
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.0040464c
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
test eax, eax
jg 0x415038
push dword [ebp - 0x20]
push 0x416f88
push dword [ebp - 0x24]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416f98
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
test si, si
jne 0x41511a
cmp word [ebp - 0x40], 0
je 0x41514a
push dword [ebp - 0x20]
push 0x416fa8
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x1d4]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x1d4]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x415189
push dword [ebp - 0x20]
push 0x416fb8
lea edx, [ebp - 0x1d8]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x1d8]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x416fc8
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
test si, si
jne 0x4151d7
cmp word [ebp - 0x40], 0
je 0x415207
push dword [ebp - 0x20]
push 0x416fa8
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x1dc]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x1dc]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x415246
push dword [ebp - 0x20]
push 0x416fd8
lea edx, [ebp - 0x1e0]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x1e0]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x415285
push dword [ebp - 0x20]
push 0x416fec
lea edx, [ebp - 0x1e4]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x1e4]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417000
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx esi, ax
sub esi, 6
sar esi, 1
jns 0x4152c4
adc esi, 0
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x80], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x7c], eax
movzx ebx, si
test ebx, ebx
jle 0x415340
mov edi, 1
cmp edi, 1
jne 0x415302
lea eax, [ebp - 0x20]
mov edx, 0x416fb8
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x1e8]
call fcn.00407318
mov edx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x20]
call fcn.00404594
movzx eax, si
cmp edi, eax
jge 0x41533c
lea eax, [ebp - 0x20]
mov edx, 0x416a2c
call fcn.00404594
inc edi
dec ebx
jne 0x4152f0
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx ebx, ax
push dword [ebp - 0x20]
push 0x417014
mov eax, dword [ebp - 0x80]
push eax
lea eax, [ebp - 0x134]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
call fcn.0040fe7c
lea eax, [ebp - 0x134]
lea edx, [ebp - 0x1ec]
call fcn.00413150
push dword [ebp - 0x1ec]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417028
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
sub eax, 2
mov ecx, 6
cdq
idiv ecx
mov esi, eax
add dword [ebp - 0x38], 2
movzx ebx, si
test ebx, ebx
jle 0x41542f
mov edi, 1
cmp edi, 1
jne 0x4153ed
lea eax, [ebp - 0x20]
mov edx, 0x417044
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x1f0]
call fcn.00407318
mov edx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x20]
call fcn.00404594
movzx eax, si
cmp edi, eax
jge 0x415427
lea eax, [ebp - 0x20]
mov edx, 0x416a2c
call fcn.00404594
add dword [ebp - 0x38], 4
inc edi
dec ebx
jne 0x4153db
lea eax, [ebp - 0x20]
mov edx, 0x416940
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417054
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
sub eax, 2
mov ecx, 6
cdq
idiv ecx
mov esi, eax
add dword [ebp - 0x38], 2
movzx ebx, si
test ebx, ebx
jle 0x4154d5
mov edi, 1
cmp edi, 1
jne 0x415493
lea eax, [ebp - 0x20]
mov edx, 0x417074
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
lea edx, [ebp - 0x1f4]
call fcn.00407318
mov edx, dword [ebp - 0x1f4]
lea eax, [ebp - 0x20]
call fcn.00404594
movzx eax, si
cmp edi, eax
jge 0x4154cd
lea eax, [ebp - 0x20]
mov edx, 0x416a2c
call fcn.00404594
add dword [ebp - 0x38], 4
inc edi
dec ebx
jne 0x415481
lea eax, [ebp - 0x20]
mov edx, 0x416940
call fcn.00404594
jmp 0x4166e5
mov edx, 0x417084
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x2c]
add eax, 8
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
mov edi, eax
mov ebx, edi
test ebx, ebx
jle 0x4156e5
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
and eax, 0xff
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x24]
call fcn.004042f0
cmp word [ebp - 0x40], 1
jne 0x4155aa
mov eax, esi
and ax, 0xff
movzx eax, ax
add eax, eax
test eax, eax
jle 0x415589
mov dword [ebp - 0x98], eax
mov edi, 1
lea eax, [ebp - 0x1f8]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x1f8]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec dword [ebp - 0x98]
jne 0x41555b
lea edx, [ebp - 0x1fc]
mov eax, dword [ebp - 0x24]
call fcn.00412e98
mov edx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x24]
call fcn.00404388
jmp 0x41565c
mov eax, esi
and ax, 0xff
movzx eax, ax
test eax, eax
jle 0x41565c
mov dword [ebp - 0x98], eax
mov edi, 1
lea eax, [ebp - 0x200]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x200]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec dword [ebp - 0x98]
jne 0x4155c6
jmp 0x41565c
lea eax, [ebp - 0x204]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x204]
push 0x416f78
lea eax, [ebp - 0x208]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov edx, eax
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x208]
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.0040464c
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
test eax, eax
jg 0x4155f6
push 0x417094
push dword [ebp - 0x24]
push 0x4170ac
mov eax, dword [ebp - 0x94]
mov edx, dword [eax]
call dword [edx + 0x14]
lea edx, [ebp - 0x210]
call fcn.00407318
push dword [ebp - 0x210]
push 0x416940
lea eax, [ebp - 0x20c]
mov edx, 5
call fcn.0040464c
mov edx, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp word [ebp - 0x40], 1
jne 0x4156d8
movzx eax, si
add eax, eax
add dword [ebp - 0x38], eax
jmp 0x4156de
movzx eax, si
add dword [ebp - 0x38], eax
dec ebx
jne 0x415513
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4170bc
call fcn.00404388
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4170cc
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
test si, si
jne 0x415740
cmp word [ebp - 0x40], 0
je 0x415770
push dword [ebp - 0x20]
push 0x416fa8
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x214]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x214]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x4157af
push dword [ebp - 0x20]
push 0x416fb8
lea edx, [ebp - 0x218]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x218]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x4157ee
push dword [ebp - 0x20]
push 0x4170e0
lea edx, [ebp - 0x21c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x21c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4170f0
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x415855
push dword [ebp - 0x20]
push 0x417100
lea edx, [ebp - 0x220]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x220]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x415894
push dword [ebp - 0x20]
push 0x417110
lea edx, [ebp - 0x224]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x224]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x19
je 0x4158d4
push dword [ebp - 0x20]
push 0x417120
lea edx, [ebp - 0x228]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x228]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0xff
je 0x41592e
push dword [ebp - 0x20]
push 0x417130
movzx eax, si
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fdiv dword [0x417138]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x22c]
call fcn.00408548
push dword [ebp - 0x22c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
mov eax, dword [ebp - 0x2c]
add eax, 0x10
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, 0x40
jne 0x415957
lea eax, [ebp - 0x20]
mov edx, 0x417144
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x41599c
cmp si, 0xf
je 0x41599c
push dword [ebp - 0x20]
push 0x416fb8
lea edx, [ebp - 0x234]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x234]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417158
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push 0x417110
lea edx, [ebp - 0x238]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x238]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push 0x417120
lea edx, [ebp - 0x23c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x23c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push 0x417130
movzx eax, si
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fdiv qword [0x418398]
call fcn.004029dc
push edx
push eax
lea eax, [ebp - 0x240]
call fcn.00407404
push dword [ebp - 0x240]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x41716c
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
mov edi, eax
push dword [ebp - 0x20]
push 0x417180
lea edx, [ebp - 0x244]
mov eax, edi
call fcn.00407318
push dword [ebp - 0x244]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413484
pop ecx
mov edi, eax
push dword [ebp - 0x20]
push 0x417194
lea edx, [ebp - 0x248]
mov eax, edi
call fcn.00407318
push dword [ebp - 0x248]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push 0x4171a8
lea edx, [ebp - 0x24c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x24c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push 0x4171bc
lea edx, [ebp - 0x250]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x250]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4171d0
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, 1
jbe 0x415bd4
lea eax, [ebp - 0x20]
mov edx, 0x4171e4
call fcn.00404594
test si, 2
jbe 0x415be8
lea eax, [ebp - 0x20]
mov edx, 0x4171fc
call fcn.00404594
test si, 4
jbe 0x415bfc
lea eax, [ebp - 0x20]
mov edx, 0x417210
call fcn.00404594
test si, 8
jbe 0x415c10
lea eax, [ebp - 0x20]
mov edx, 0x417228
call fcn.00404594
test si, 0x10
jbe 0x415c24
lea eax, [ebp - 0x20]
mov edx, 0x41723c
call fcn.00404594
test si, 0x200
jbe 0x415c38
lea eax, [ebp - 0x20]
mov edx, 0x417250
call fcn.00404594
test si, 0x400
jbe 0x415c4c
lea eax, [ebp - 0x20]
mov edx, 0x417268
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov word [ebp - 0x40], ax
test si, si
jne 0x415c72
cmp word [ebp - 0x40], 0
je 0x415ca2
push dword [ebp - 0x20]
push 0x41727c
mov dl, byte [ebp - 0x40]
lea ecx, [ebp - 0x254]
mov eax, esi
call fcn.004130a8
push dword [ebp - 0x254]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
add dword [ebp - 0x38], 4
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x64
je 0x415ce6
push dword [ebp - 0x20]
push 0x417290
lea edx, [ebp - 0x258]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x258]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x64
je 0x415d26
push dword [ebp - 0x20]
push 0x4172a4
lea edx, [ebp - 0x25c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x25c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x4172b8
call fcn.00404388
fld qword [ebp - 0x60]
fcomp dword [0x4172c4]
fnstsw ax
sahf
je 0x415d88
push dword [ebp - 0x20]
push 0x416e60
fld qword [ebp - 0x60]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x260]
call fcn.00408548
push dword [ebp - 0x260]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
fld qword [ebp - 0x68]
fcomp dword [0x4172c4]
fnstsw ax
sahf
je 0x415dcb
push dword [ebp - 0x20]
push 0x416e70
fld qword [ebp - 0x68]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x264]
call fcn.00408548
push dword [ebp - 0x264]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
fld qword [ebp - 0x70]
fcomp dword [0x4172c4]
fnstsw ax
sahf
je 0x415e0e
push dword [ebp - 0x20]
push 0x416e80
fld qword [ebp - 0x70]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x268]
call fcn.00408548
push dword [ebp - 0x268]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
fld qword [ebp - 0x78]
fcomp dword [0x4172c4]
fnstsw ax
sahf
je 0x415e51
push dword [ebp - 0x20]
push 0x416e94
fld qword [ebp - 0x78]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x26c]
call fcn.00408548
push dword [ebp - 0x26c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x270]
mov ecx, 0x416b54
mov edx, dword [ebp - 0x20]
call fcn.004045d8
mov edx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x20]
mov edx, 0x4172d0
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 6
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x64
je 0x415ec8
push dword [ebp - 0x20]
push 0x4172e0
lea edx, [ebp - 0x274]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x274]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 1
je 0x415f08
push dword [ebp - 0x20]
push 0x4172f4
lea edx, [ebp - 0x278]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x278]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 1
je 0x415f48
push dword [ebp - 0x20]
push 0x41730c
lea edx, [ebp - 0x27c]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x27c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 1
je 0x415f88
push dword [ebp - 0x20]
push 0x41731c
lea edx, [ebp - 0x280]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x280]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, 1
jbe 0x415fa8
lea eax, [ebp - 0x20]
mov edx, 0x41732c
call fcn.00404594
test si, 2
jne 0x415fbc
lea eax, [ebp - 0x20]
mov edx, 0x41733c
call fcn.00404594
test si, 8
jbe 0x415fd0
lea eax, [ebp - 0x20]
mov edx, 0x417354
call fcn.00404594
test si, 0x10
jbe 0x415fe4
lea eax, [ebp - 0x20]
mov edx, 0x417364
call fcn.00404594
test si, 0x20
jbe 0x415ff8
lea eax, [ebp - 0x20]
mov edx, 0x417378
call fcn.00404594
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x12c
je 0x416039
push dword [ebp - 0x20]
push 0x41738c
lea edx, [ebp - 0x284]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x284]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 0x12c
je 0x41607a
push dword [ebp - 0x20]
push 0x41739c
lea edx, [ebp - 0x288]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x288]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x58]
wait
movzx eax, si
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fld xword [0x4173b0]
fsubp st(1)
fabs
fld xword [0x4173bc]
fcompp
fnstsw ax
sahf
jbe 0x4160eb
push dword [ebp - 0x20]
push 0x4173d0
fld qword [ebp - 0x58]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x28c]
call fcn.00408548
push dword [ebp - 0x28c]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x58]
wait
movzx eax, si
mov dword [ebp - 0x230], eax
fild dword [ebp - 0x230]
fld xword [0x4173b0]
fsubp st(1)
fabs
fld xword [0x4173bc]
fcompp
fnstsw ax
sahf
jbe 0x41615c
push dword [ebp - 0x20]
push 0x4173e4
fld qword [ebp - 0x58]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x290]
call fcn.00408548
push dword [ebp - 0x290]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 1
je 0x41619c
push dword [ebp - 0x20]
push 0x4173f8
lea edx, [ebp - 0x294]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x294]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x41740c
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
cmp si, 8
je 0x416204
push dword [ebp - 0x20]
push 0x417130
lea edx, [ebp - 0x298]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x298]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
lea eax, [ebp - 0x20]
mov edx, 0x416b54
call fcn.00404594
jmp 0x4166e5
mov edx, 0x417424
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
jbe 0x4162e3
mov word [ebp - 0x9a], si
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x80], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx esi, ax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x7c], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx ebx, ax
push 0x417438
push esi
lea eax, [ebp - 0x134]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
call fcn.0040fe7c
lea eax, [ebp - 0x134]
lea edx, [ebp - 0x2a0]
call fcn.00413150
push dword [ebp - 0x2a0]
push 0x416940
lea eax, [ebp - 0x29c]
mov edx, 3
call fcn.0040464c
mov edx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
dec word [ebp - 0x9a]
jne 0x416248
lea eax, [ebp - 0x20]
mov edx, 0x417450
call fcn.00404388
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417464
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 0xd
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x80], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx esi, ax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
and eax, 0xff
mov dword [ebp - 0x7c], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
xor ebx, ebx
mov bl, al
push dword [ebp - 0x20]
push 0x416a80
push esi
lea eax, [ebp - 0x134]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
call fcn.0040fe7c
lea eax, [ebp - 0x134]
lea edx, [ebp - 0x2a4]
call fcn.00413150
push dword [ebp - 0x2a4]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x60]
wait
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x70]
wait
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x68]
wait
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.004134dc
pop ecx
fld xword [0x4173a4]
fmulp st(1)
fstp qword [ebp - 0x78]
wait
lea eax, [ebp - 0x20]
call fcn.004042f0
jmp 0x4166e5
lea eax, [ebp - 0x20]
mov edx, 0x417478
call fcn.00404388
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x80], eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
movzx eax, ax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x80], 0
jne 0x416485
cmp dword [ebp - 0x7c], 0
je 0x4164b7
push dword [ebp - 0x20]
push 0x416fa8
mov dl, byte [ebp - 0x7c]
lea ecx, [ebp - 0x2a8]
mov ax, word [ebp - 0x80]
call fcn.004130a8
push dword [ebp - 0x2a8]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
test si, si
je 0x4164fc
cmp si, 0xf
je 0x4164fc
push dword [ebp - 0x20]
push 0x416fb8
lea edx, [ebp - 0x2ac]
movzx eax, si
call fcn.00407318
push dword [ebp - 0x2ac]
push 0x416a38
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
push ebp
lea eax, [ebp - 0x38]
call fcn.00413444
pop ecx
mov esi, eax
push ebp
lea eax, [ebp - 0x38]
call fcn.00413470
pop ecx
and eax, 0xff
mov word [ebp - 0x40], ax
cmp word [ebp - 0x40], 1
jne 0x416581
and si, 0xff
movzx eax, si
mov ebx, eax
add ebx, ebx
test ebx, ebx
jle 0x416560
mov edi, 1
lea eax, [ebp - 0x2b0]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x2b0]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x416537
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x24]
call fcn.00412e98
mov edx, dword [ebp - 0x2b4]
lea eax, [ebp - 0x24]
call fcn.00404388
jmp 0x416629
mov ebx, esi
and bx, 0xff
movzx ebx, bx
test ebx, ebx
jle 0x416629
mov edi, 1
lea eax, [ebp - 0x2b8]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + edx - 1]
call fcn.004044d8
mov edx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x24]
call fcn.00404594
inc edi
dec ebx
jne 0x416598
jmp 0x416629
lea eax, [ebp - 0x2bc]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x2bc]
push 0x416f78
lea eax, [ebp - 0x2c0]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
mov edx, eax
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x24]
call fcn.004047ec
push dword [ebp - 0x2c0]
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.0040464c
mov edx, dword [ebp - 0x24]
mov eax, 0x416a38
call fcn.00404874
test eax, eax
jg 0x4165c3
push dword [ebp - 0x20]
push 0x417488
push dword [ebp - 0x24]
push 0x416940
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.0040464c
jmp 0x4166e5
cmp byte [ebp + 8], 0
je 0x4166dd
add dword [ebp - 0x30], 4
lea eax, [ebp - 0x20]
mov edx, 0x417498
call fcn.00404388
mov ebx, dword [ebp - 0x30]
test ebx, ebx
jle 0x4166d7
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
movzx eax, byte [edx + eax - 1]
lea ecx, [ebp - 0x2c4]
mov edx, 2
call fcn.0040742c
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x20]
call fcn.00404594
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x30]
jge 0x4166c4
lea eax, [ebp - 0x20]
mov edx, 0x416a74
call fcn.00404594
jmp 0x4166d1
lea eax, [ebp - 0x20]
mov edx, 0x416940
call fcn.00404594
inc dword [ebp - 0x38]
dec ebx
jne 0x416681
sub dword [ebp - 0x30], 4
jmp 0x4166e5
lea eax, [ebp - 0x20]
call fcn.004042f0
cmp dword [ebp - 0x20], 0
je 0x4166f6
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x2c]
add eax, 4
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x28]
jl 0x413a3f
mov edx, 0x4174b0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, dword [ebp - 0x3c]
call fcn.004036a0
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x416757
inc ebx
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.004103b4
call fcn.004036a0
inc dword [ebp - 0x2c]
dec ebx
jne 0x416741
mov eax, dword [ebp - 8]
call fcn.004036a0
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x416788
inc ebx
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.004103b4
call fcn.004036a0
inc dword [ebp - 0x2c]
dec ebx
jne 0x416772
mov eax, dword [ebp - 0xc]
call fcn.004036a0
mov eax, dword [ebp - 0x94]
call fcn.004036a0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.00402688
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x416820
lea eax, [ebp - 0x2c4]
mov edx, 0x25
call fcn.00404314
lea eax, [ebp - 0x22c]
mov edx, 0x3e
call fcn.00404314
lea eax, [ebp - 0x124]
call fcn.004042f0
lea eax, [ebp - 0x120]
mov edx, 0xe
call fcn.00404314
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00404314
lea eax, [ebp - 0x1c]
call fcn.00405808
lea eax, [ebp - 0x18]
call fcn.00405808
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00404314
ret