Function at 0x41f9a0
Capabilities:
Encrypt data using speck

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
mov edi, 1
push esi
push ebx
push ecx
sub esp, 0x398
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
call fcn.0041b930
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp], ebx
mov ebx, 0x180
mov dword [esp + 4], esi
xor esi, esi
call fcn.004051d0
sub esp, 0xc
mov dword [esp], 1
call sub.WINMM.DLL_timeBeginPeriod
sub esp, 4
mov dword [esp], 0
call fcn.004024e0
xor eax, eax
mov edx, 1
mov ecx, 8
sub esp, 4
mov dword [esp + 0x14], eax
mov eax, pe_nt_image_headers32
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], ebx
mov dword [esp], 0x2a8
call fcn.004026b0
mov eax, 0x180
sub esp, 0x18
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp], 0x2a8
call fcn.00401e40
mov eax, 0x80000000
sub esp, 0x10
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 0x180
mov dword [esp + 4], eax
mov dword [esp], 0x2a8
call fcn.0040cf20
mov edx, 1
mov dword [0x42607c], eax
sub esp, 0x14
mov dword [esp + 4], edx
mov dword [esp], 0xff000
call sub.msvcrt.dll_calloc
mov dword [0x426078], eax
lea esi, [esi]
lea esi, [esi]
mov eax, esi
xor ecx, ecx
mov dword [esp + 0xc], ecx
shl eax, 4
xor edi, edi
mov dword [esp + 8], edi
lea ebx, [eax + esi]
mov dword [esp], esi
lea edi, [esi + esi]
mov dword [esp + 4], ebx
mov dword [ebp - 0x34c], eax
call fcn.0040ec90
lea edx, [edi + esi]
mov dword [ebp - 0x348], edx
lea eax, [edx + edx]
xor edx, edx
mov dword [ebp - 0x340], eax
lea ecx, [esi + 0x10]
sub esp, 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040ec90
mov edx, dword [ebp - 0x348]
xor eax, eax
lea ecx, [esi + edx*4]
mov dword [ebp - 0x348], ecx
lea edx, [esi + 0x20]
sub esp, 0x10
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040ec90
mov eax, dword [ebp - 0x34c]
xor edx, edx
sub eax, esi
mov dword [ebp - 0x34c], eax
sub esp, 0x10
mov dword [esp + 4], eax
lea eax, [esi + 0x30]
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0040ec90
lea edx, [esi + esi*8]
xor ecx, ecx
mov dword [ebp - 0x350], edx
lea eax, [esi + 0x40]
sub esp, 0x10
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0040ec90
xor eax, eax
sub esp, 0x10
mov dword [esp + 0xc], eax
lea eax, [esi + 0x50]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0040ec90
lea eax, [esi*4]
mov dword [ebp - 0x358], eax
lea edx, [esi + 0x60]
sub esp, 0x10
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 8], ebx
call fcn.0040ec90
mov eax, dword [ebp - 0x358]
lea ecx, [esi + 0x70]
mov dword [ebp - 0x360], eax
lea edx, [eax + esi]
xor eax, eax
lea edx, [esi + edx*2]
mov dword [ebp - 0x358], edx
sub esp, 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], ebx
call fcn.0040ec90
lea ecx, [esi + 0x80]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
call fcn.0040ec90
mov edx, dword [ebp - 0x358]
xor eax, eax
sub esp, 0x10
mov dword [esp + 8], edx
lea edx, [esi + 0x90]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ebx
call fcn.0040ec90
mov eax, dword [ebp - 0x360]
sub esp, 0x10
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esi + 0xa0]
mov dword [esp], eax
mov dword [esp + 0xc], ebx
call fcn.0040ec90
lea eax, [esi + 0xb0]
xor edx, edx
sub esp, 0x10
mov dword [esp + 8], edx
mov dword [esp + 4], edi
xor edi, edi
mov dword [esp], eax
mov dword [esp + 0xc], ebx
call fcn.0040ec90
mov edx, dword [ebp - 0x350]
xor ecx, ecx
lea eax, [esi + 0xc0]
sub esp, 0x10
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 0xc], ebx
call fcn.0040ec90
mov eax, dword [ebp - 0x34c]
sub esp, 0x10
mov dword [esp + 4], eax
lea eax, [esi + 0xd0]
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
call fcn.0040ec90
mov ecx, dword [ebp - 0x348]
xor eax, eax
sub esp, 0x10
mov dword [esp + 8], eax
lea eax, [esi + 0xe0]
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040ec90
mov eax, dword [ebp - 0x340]
sub esp, 0x10
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esi + 0xf0]
inc esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040ec90
sub esp, 0x10
cmp esi, 0x10
jne 0x41fab0
call fcn.004074e0
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x324], eax
xor eax, eax
xor esi, esi
mov dword [ebp - 0x320], eax
xor eax, eax
xor edi, edi
mov dword [ebp - 0x2fc], eax
xor eax, eax
xor edx, edx
mov dword [ebp - 0x2f8], eax
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x2f4], eax
xor eax, eax
mov dword [ebp - 0x2dc], eax
xor eax, eax
mov dword [ebp - 0x2d8], eax
fstp qword [ebp - 0x360]
xor eax, eax
mov dword [ebp - 0x2d4], eax
mov eax, 0xc
mov dword [ebp - 0x2d0], eax
mov eax, 1
mov dword [ebp - 0x2cc], eax
xor eax, eax
mov dword [ebp - 0x2b4], eax
xor eax, eax
mov dword [ebp - 0x2b0], eax
mov eax, 0xc
mov dword [ebp - 0x330], ebx
xor ebx, ebx
mov dword [ebp - 0x32c], esi
xor esi, esi
mov dword [ebp - 0x2ac], eax
mov eax, 1
mov dword [ebp - 0x328], edi
xor edi, edi
mov dword [ebp - 0x2f0], edx
mov edx, 0x11
mov dword [ebp - 0x2ec], ecx
xor ecx, ecx
mov dword [ebp - 0x2e8], ebx
xor ebx, ebx
mov dword [ebp - 0x2e4], esi
xor esi, esi
mov dword [ebp - 0x2a8], eax
mov eax, 0x11
mov dword [ebp - 0x2e0], edi
xor edi, edi
mov dword [ebp - 0x2c8], edx
xor edx, edx
mov dword [ebp - 0x2c4], ecx
xor ecx, ecx
mov dword [ebp - 0x2c0], ebx
xor ebx, ebx
mov dword [ebp - 0x2bc], esi
xor esi, esi
mov dword [ebp - 0x2a4], eax
xor eax, eax
mov dword [ebp - 0x2b8], edi
xor edi, edi
mov dword [ebp - 0x2a0], edx
xor edx, edx
mov dword [ebp - 0x29c], ecx
xor ecx, ecx
mov dword [ebp - 0x298], ebx
mov dword [ebp - 0x294], esi
mov dword [ebp - 0x28c], eax
mov eax, 4
mov dword [ebp - 0x288], eax
mov eax, 1
mov dword [ebp - 0x284], eax
mov eax, 0x11
mov dword [ebp - 0x280], eax
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x27c], eax
mov eax, 0xc
xor esi, esi
mov dword [ebp - 0x264], eax
mov eax, 1
mov dword [ebp - 0x260], eax
mov eax, 0x11
mov dword [ebp - 0x25c], eax
xor eax, eax
mov dword [ebp - 0x258], eax
xor eax, eax
mov dword [ebp - 0x254], eax
mov eax, 1
mov dword [ebp - 0x23c], eax
mov eax, 0x11
mov dword [ebp - 0x238], eax
xor eax, eax
mov dword [ebp - 0x290], edi
xor edi, edi
mov dword [ebp - 0x234], eax
xor eax, eax
mov dword [ebp - 0x278], edx
xor edx, edx
mov dword [ebp - 0x274], ecx
xor ecx, ecx
mov dword [ebp - 0x26c], esi
xor esi, esi
mov dword [ebp - 0x268], edi
mov edi, 8
mov dword [ebp - 0x230], eax
xor eax, eax
mov dword [ebp - 0x270], ebx
xor ebx, ebx
mov dword [ebp - 0x250], edx
xor edx, edx
mov dword [ebp - 0x24c], ecx
xor ecx, ecx
mov dword [ebp - 0x244], esi
xor esi, esi
mov dword [ebp - 0x240], edi
xor edi, edi
mov dword [ebp - 0x22c], eax
xor eax, eax
mov dword [ebp - 0x220], edx
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x248], ebx
lea ebx, [ebp - 0x31c]
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x31c], esi
mov dword [ebp - 0x318], edi
mov dword [ebp - 0x314], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov eax, 0xd
mov dword [esp + 0xc], eax
mov eax, str.airplane.obj
mov dword [esp + 8], eax
mov eax, 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00406100
lea eax, [ebp - 0x2fc]
sub esp, 0x14
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00402f50
sub esp, 8
mov dword [esp], ebx
call fcn.00406a10
pxor xmm0, xmm0
xor edx, edx
movss dword [ebp - 0x34c], xmm0
movaps xmm2, xmm0
movaps xmm1, xmm0
mov dword [ebp - 0x350], edx
sub esp, 4
movss dword [ebp - 0x358], xmm0
xor esi, esi
mov ebx, 2
movss dword [ebp - 0x348], xmm2
mov edi, 0xff000
movss dword [ebp - 0x340], xmm1
call fcn.0040b6d0
mov ecx, 0xffff
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0x4429c000
mov dword [esp + 0xc], 0x4429c000
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040d750
xor eax, eax
sub esp, 0x24
mov dword [esp + 4], eax
mov eax, dword [0x426078]
mov dword [esp + 8], edi
mov dword [esp], eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x2fc]
movss xmm2, dword [ebp - 0x348]
movss xmm6, dword [ebp - 0x34c]
movss xmm1, dword [ebp - 0x340]
movss xmm0, dword [ebp - 0x358]
movss dword [esp + 0x10], xmm2
movss dword [esp + 0xc], xmm6
movss dword [esp + 0x14], xmm1
movss dword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
call fcn.004037d0
sub esp, 0x1c
call fcn.004074e0
mov edx, 0x42205f
mov eax, 0x42205b
cmp byte [0x421004], 0
movsd xmm0, qword [0x422118]
movsd xmm1, qword [0x426058]
cmovne eax, edx
movsx edx, byte [0x426082]
mov dword [esp + 0x14], eax
movsx eax, byte [0x421005]
fstp qword [ebp - 0x340]
mov dword [esp + 0x18], edx
movsd xmm3, qword [ebp - 0x340]
subsd xmm3, qword [ebp - 0x360]
mov dword [esp + 0x10], eax
mov eax, str.Fps:__1.2f_Wire:_i_Dither:_s_Blur:_i__nGeometry:__1.2f__nWiring..:__1.2f__nFilling.:__1.2f__nBlitting:__1.2f__n
divsd xmm0, xmm3
mov dword [esp + 4], eax
lea eax, [ebp - 0x218]
movsd qword [ebp - 0x358], xmm3
mov dword [esp], eax
mulsd xmm1, xmm0
movsd qword [esp + 0x34], xmm1
movsd xmm1, qword [0x426060]
mulsd xmm1, xmm0
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [0x426068]
mulsd xmm1, xmm0
movsd qword [esp + 0x24], xmm1
movsd xmm1, qword [0x426070]
mulsd xmm1, xmm0
movsd qword [esp + 0x1c], xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x350]
mulsd xmm0, xmm1
movsd qword [esp + 8], xmm0
call sub.msvcrt.dll_sprintf
xor eax, eax
mov dword [esp + 0x10], eax
xor eax, eax
mov edx, 1
mov dword [esp + 0xc], eax
mov eax, 0xffffffff
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.00404700
lea eax, [ebp - 0x218]
sub esp, 0x14
mov dword [esp], eax
call fcn.00407160
mov ecx, 1
sub esp, 4
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00405820
sub esp, 0xc
call fcn.0040b7c0
movzx edx, byte [0x426082]
cmp dl, 1
je 0x420ac9
cmp dl, 2
je 0x420b47
cmp dl, 3
je 0x420a69
mov dword [esp], 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 4], eax
call fcn.0040b720
mov eax, 1
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00407470
movsd xmm0, qword [ebp - 0x358]
movsd xmm2, qword [0x422140]
inc dword [ebp - 0x350]
andpd xmm0, xmmword [0x422130]
sub esp, 8
comisd xmm2, xmm0
ja 0x4202e7
call fcn.004074e0
mov edi, dword [ebp - 0x350]
movsd xmm0, qword [0x422148]
movsd xmm1, qword [0x426070]
mulsd xmm1, xmm0
movsd qword [0x426070], xmm1
movsd xmm1, qword [0x426068]
mulsd xmm1, xmm0
movsd qword [0x426068], xmm1
movsd xmm1, qword [0x426060]
mulsd xmm1, xmm0
mulsd xmm0, qword [0x426058]
mov eax, edi
movsd qword [0x426060], xmm1
movsd qword [0x426058], xmm0
shr eax, 0x1f
add eax, edi
sar eax, 1
mov dword [ebp - 0x350], eax
fstp qword [ebp - 0x340]
movsd xmm6, qword [ebp - 0x340]
subsd xmm6, qword [0x422118]
movsd qword [ebp - 0x360], xmm6
call fcn.004074e0
movsd xmm5, qword [0x422118]
fstp qword [ebp - 0x340]
movsd xmm0, qword [ebp - 0x340]
subsd xmm0, qword [0x426020]
andpd xmm0, xmmword [0x422130]
comisd xmm5, xmm0
jae 0x420595
call fcn.004074e0
fstp qword [0x426020]
jmp 0x420595
movss xmm1, dword [0x42608c]
movss dword [esp], xmm1
movss dword [ebp - 0x348], xmm1
call fcn.0041ca70
movss xmm1, dword [ebp - 0x348]
movss dword [esp], xmm1
fstp dword [ebp - 0x340]
movss xmm0, dword [ebp - 0x340]
xorps xmm0, xmmword [0x422160]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x422158]
movsd qword [ebp - 0x340], xmm0
call fcn.0041ca50
movsd xmm4, qword [0x422158]
pxor xmm0, xmm0
mov dword [esp], str.__f__f__r
fstp dword [ebp - 0x348]
cvtss2sd xmm0, dword [ebp - 0x348]
mulsd xmm4, xmm0
movsd xmm0, qword [ebp - 0x340]
movsd qword [ebp - 0x348], xmm4
movsd qword [esp + 0xc], xmm4
movsd qword [esp + 4], xmm0
call sub.msvcrt.dll_printf
mov dword [esp], 0x11
call fcn.00405040
sub esp, 4
test eax, eax
je 0x42041e
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426088]
subsd xmm0, qword [ebp - 0x340]
cvtsd2ss xmm0, xmm0
movss dword [0x426088], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x421008]
subsd xmm0, qword [ebp - 0x348]
cvtsd2ss xmm0, xmm0
movss dword [0x421008], xmm0
mov dword [esp], 0x1f
call fcn.00405040
sub esp, 4
test eax, eax
je 0x420471
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426088]
addsd xmm0, qword [ebp - 0x340]
cvtsd2ss xmm0, xmm0
movss dword [0x426088], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x421008]
addsd xmm0, qword [ebp - 0x348]
cvtsd2ss xmm0, xmm0
movss dword [0x421008], xmm0
mov dword [esp], 0x1e
call fcn.00405040
sub esp, 4
test eax, eax
je 0x4204c4
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426088]
addsd xmm0, qword [ebp - 0x348]
cvtsd2ss xmm0, xmm0
movss dword [0x426088], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x421008]
subsd xmm0, qword [ebp - 0x340]
cvtsd2ss xmm0, xmm0
movss dword [0x421008], xmm0
mov dword [esp], 0x20
call fcn.00405040
sub esp, 4
test eax, eax
je 0x420517
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426088]
subsd xmm0, qword [ebp - 0x348]
cvtsd2ss xmm0, xmm0
movss dword [0x426088], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x421008]
addsd xmm0, qword [ebp - 0x340]
cvtsd2ss xmm0, xmm0
movss dword [0x421008], xmm0
mov dword [esp], 0x10
call fcn.00405040
sub esp, 4
test eax, eax
je 0x42054a
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426084]
addsd xmm0, qword [0x422170]
cvtsd2ss xmm0, xmm0
movss dword [0x426084], xmm0
mov dword [esp], 0x2c
call fcn.00405040
sub esp, 4
test eax, eax
je 0x42057d
pxor xmm0, xmm0
cvtss2sd xmm0, dword [0x426084]
subsd xmm0, qword [0x422170]
cvtsd2ss xmm0, xmm0
movss dword [0x426084], xmm0
movsd xmm0, qword [0x422150]
addsd xmm0, qword [0x426020]
movsd qword [0x426020], xmm0
call fcn.004074e0
movsd xmm5, qword [0x422150]
fstp qword [ebp - 0x340]
movsd xmm0, qword [ebp - 0x340]
subsd xmm0, qword [0x426020]
comisd xmm5, xmm0
jae 0x420780
mov dword [esp], 0x1d
call fcn.00405040
sub esp, 4
test eax, eax
jne 0x42057d
cmp byte [0x426080], 1
jne 0x420330
mov dword [esp], 0x4b
call fcn.00405040
sub esp, 4
test eax, eax
je 0x420615
pxor xmm0, xmm0
cvtss2sd xmm0, dword [ebp - 0x324]
subsd xmm0, qword [0x422158]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x324], xmm0
mov dword [esp], 0x4d
call fcn.00405040
sub esp, 4
test eax, eax
je 0x420648
pxor xmm0, xmm0
cvtss2sd xmm0, dword [ebp - 0x324]
addsd xmm0, qword [0x422158]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x324], xmm0
mov dword [esp], 0x48
call fcn.00405040
sub esp, 4
test eax, eax
je 0x42067f
pxor xmm0, xmm0
pxor xmm6, xmm6
cvtss2sd xmm0, dword [ebp - 0x34c]
subsd xmm0, qword [0x422158]
cvtsd2ss xmm6, xmm0
movss dword [ebp - 0x34c], xmm6
mov dword [esp], 0x50
call fcn.00405040
sub esp, 4
test eax, eax
je 0x420330
pxor xmm0, xmm0
pxor xmm7, xmm7
cvtss2sd xmm0, dword [ebp - 0x34c]
addsd xmm0, qword [0x422158]
cvtsd2ss xmm7, xmm0
movss dword [ebp - 0x34c], xmm7
jmp 0x420330
cmp byte [0x426080], 0
jne 0x420920
cmp byte [0x426081], 0
je 0x420780
mov eax, dword [ebp - 0x30c]
pxor xmm2, xmm2
movsd xmm1, qword [0x422188]
fld qword [0x422178]
cvtss2sd xmm2, dword [0x42608c]
pxor xmm0, xmm0
addsd xmm2, xmm1
sub eax, 0x154
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x422190]
subsd xmm2, xmm0
movsd qword [ebp - 0x340], xmm2
fld qword [ebp - 0x340]
fprem
fnstsw ax
sahf
jp 0x420725
fstp st(1)
fstp qword [ebp - 0x340]
movsd xmm0, qword [ebp - 0x340]
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [0x42608c], xmm0
mov ebx, 0xffff8000
mov esi, 0xffff8000
mov dword [esp + 0xc], ebx
mov edi, 0xc0
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 0x154
call fcn.004027f0
sub esp, 0x10
lea esi, [esi]
lea esi, [esi]
lea eax, [ebp - 0x310]
mov dword [esp], eax
call fcn.0040cc00
sub esp, 4
test eax, eax
je 0x420a10
mov eax, dword [ebp - 0x310]
cmp eax, 1
je 0x420850
cmp eax, 4
je 0x4206c0
cmp eax, 5
je 0x4208f0
cmp eax, 6
je 0x4209c8
cmp eax, 0xb
je 0x420780
cmp eax, 0xc
je 0x420a30
cmp eax, 0xd
jne 0x420780
lea eax, [ebp - 0x24c]
mov dword [esp], eax
call fcn.004040e0
lea eax, [ebp - 0x270]
sub esp, 4
mov dword [esp], eax
call fcn.004040e0
lea eax, [ebp - 0x294]
sub esp, 4
mov dword [esp], eax
call fcn.004040e0
lea eax, [ebp - 0x2b8]
sub esp, 4
mov dword [esp], eax
call fcn.004040e0
lea eax, [ebp - 0x2dc]
sub esp, 4
mov dword [esp], eax
call fcn.004040e0
sub esp, 4
mov dword [esp], 0
call fcn.004051f0
xor eax, eax
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov edx, dword [ebp - 0x308]
cmp edx, 0x1b
je 0x4207d6
cmp edx, 0x17
je 0x4208c0
cmp edx, 4
je 0x420910
cmp edx, 2
je 0x4209f0
cmp edx, 0x20
jne 0x420780
mov dword [esp], 0xffff8000
movzx edx, byte [0x426081]
xor dl, 1
mov byte [0x426081], dl
movsx edx, dl
mov dword [esp + 0xc], edx
sub eax, edx
mov dword [esp + 8], eax
mov eax, 0xffff8000
mov dword [esp + 4], eax
call fcn.004027f0
sub esp, 0x10
jmp 0x420780
movsx ecx, byte [0x421005]
mov edx, 0x55555556
inc ecx
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub ecx, eax
mov byte [0x421005], cl
jmp 0x420780
cmp dword [ebp - 0x30c], 1
jne 0x420780
mov al, 1
mov byte [0x426080], al
jmp 0x420780
xor byte [0x421004], 1
jmp 0x420780
fld qword [0x422178]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtss2sd xmm1, dword [ebp - 0x32c]
cvtsi2sd xmm0, dword [ebp - 0x304]
addsd xmm1, qword [0x422178]
mulsd xmm0, qword [0x422180]
subsd xmm1, xmm0
movsd qword [ebp - 0x340], xmm1
fld qword [ebp - 0x340]
fprem
fnstsw ax
sahf
jp 0x420960
fstp st(1)
fstp dword [ebp - 0x32c]
pxor xmm1, xmm1
pxor xmm0, xmm0
fld qword [0x422178]
cvtsi2sd xmm1, dword [ebp - 0x300]
cvtss2sd xmm0, dword [ebp - 0x330]
mulsd xmm1, qword [0x422180]
addsd xmm0, qword [0x422178]
addsd xmm1, xmm0
movsd qword [ebp - 0x340], xmm1
fld qword [ebp - 0x340]
fprem
fnstsw ax
sahf
jp 0x4209af
fstp st(1)
fstp dword [ebp - 0x330]
jmp 0x420780
cmp dword [ebp - 0x30c], 1
jne 0x4209d8
xor eax, eax
mov byte [0x426080], al
cmp byte [0x426081], 0
je 0x420780
jmp 0x42074c
movsx eax, byte [0x426082]
inc eax
cdq
shr edx, 0x1e
add eax, edx
and eax, 3
sub eax, edx
mov byte [0x426082], al
jmp 0x420780
movss xmm1, dword [ebp - 0x32c]
movss xmm2, dword [ebp - 0x330]
movss xmm0, dword [ebp - 0x324]
jmp 0x41ffd1
cmp byte [0x426081], 0
je 0x420780
xor eax, eax
mov edx, 1
mov dword [esp + 0xc], eax
mov ecx, 0xffff8000
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 0xffff8000
call fcn.004027f0
sub esp, 0x10
jmp 0x420780
movzx ecx, byte [eax]
lea ebx, [eax + 0x3f957]
jmp 0x420aa6
movzx edx, byte [eax + 0x2a9]
and dl, 0xf0
lea esi, [esi]
lea esi, [esi]
movzx edx, dl
movzx esi, cl
add edx, esi
inc eax
sar edx, 1
mov byte [eax - 1], dl
cmp ebx, eax
je 0x420203
mov dl, cl
movzx ecx, byte [eax + 1]
test dl, dl
jne 0x420a90
mov dl, cl
and dl, 0xf0
test cl, cl
jne 0x420a90
movzx edx, byte [eax + 0x2a8]
test dl, dl
je 0x420a78
and dl, 0xf0
jmp 0x420a90
movzx ebx, byte [eax]
lea esi, [eax + 0x3fbff]
mov edi, eax
jmp 0x420b1c
test bl, bl
jne 0x420b30
movzx edx, byte [edi + 0x2a8]
test dl, dl
jne 0x420b40
movzx edx, byte [edi + 0x2a9]
xor ecx, ecx
and dl, 0xf0
lea esi, [esi]
nop
mov al, bl
and dl, 0xf0
and al, 0xf
inc edi
movzx eax, al
add ecx, eax
sar ecx, 1
add dl, cl
mov byte [edi - 1], dl
cmp edi, esi
je 0x420203
mov dl, bl
movzx ebx, byte [edi + 1]
test dl, dl
je 0x420ae0
mov cl, dl
and cl, 0xf
movzx ecx, cl
jmp 0x420b00
mov dl, bl
xor ecx, ecx
and dl, 0xf0
jmp 0x420b00
and dl, 0xf0
xor ecx, ecx
jmp 0x420b00
lea edi, [eax + 0x3fbff]
movzx ebx, byte [eax]
mov dword [ebp - 0x348], edi
jmp 0x420bc9
test bl, bl
jne 0x420bf8
movzx edx, byte [eax + 0x2a8]
test dl, dl
jne 0x420c10
movzx ecx, byte [ebp - 0x340]
xor esi, esi
and cl, 0xf0
lea esi, [esi]
lea esi, [esi]
and dl, 0xf
and cl, 0xf0
movzx edi, dl
mov dl, bl
and dl, 0xf
inc eax
movzx edx, dl
add edi, edx
movzx edx, byte [ebp - 0x340]
and dl, 0xf
movzx edx, dl
add edx, edi
add edx, esi
sar edx, 2
add cl, dl
mov byte [eax - 1], cl
cmp eax, dword [ebp - 0x348]
je 0x420203
movzx edx, byte [eax + 0x2a9]
mov cl, bl
test cl, cl
movzx ebx, byte [eax + 1]
mov byte [ebp - 0x340], dl
je 0x420b60
mov dl, cl
and dl, 0xf
movzx esi, dl
movzx edx, byte [eax + 0x2a8]
jmp 0x420b90
mov cl, bl
movzx edx, byte [eax + 0x2a8]
xor esi, esi
and cl, 0xf0
jmp 0x420b90
mov cl, dl
xor esi, esi
and cl, 0xf0
jmp 0x420b90