Function at 0x403e60
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x198
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WriteConsoleW]
push edi
push 0
push 0
push 0
push 0
push 0
call esi
test eax, eax
je 0x403e96
mov ebp, eax
push 0
push 0
push 0
push 0
push 0
call esi
push 0
test eax, eax
jne 0x4052a3
push 0xc0000000
mov edx, str.FakeCreateFileA
mov ecx, 0x444058
call fcn.00407890
mov edx, str.example.txt
mov ecx, eax
call fcn.00407890
push ecx
mov edx, 0x4354c8
mov ecx, eax
call fcn.00407890
add esp, 4
mov ecx, eax
call fcn.00405920
push ecx
mov edx, 0x4354c8
mov ecx, eax
call fcn.00407890
add esp, 4
mov ecx, eax
call fcn.00405920
push eax
call fcn.00407b20
add esp, 4
mov edx, str.FakeGetFileSize
mov ecx, 0x444058
call fcn.00407890
push eax
call fcn.00407b20
add esp, 4
push 0
call fcn.004116ea
add esp, 4
push eax
call fcn.0040f7dd
add esp, 4
call fcn.0040f7bc
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
ja case.default.0x403f40
jmp dword [edx*4 + 0x4052bc]
call dword [sym.imp.USER32.dll_LockWorkStation]
jmp case.default.0x403f40
call fcn.0040f7bc
cdq
mov ecx, 0x259
idiv ecx
push edx
call fcn.0040f7bc
cdq
mov ecx, 0x321
idiv ecx
push edx
call dword [sym.imp.USER32.dll_SetCursorPos]
jmp case.default.0x403f40
push 0x10000
push 0
push str.SystemExclamation
call dword [sym.imp.WINMM.dll_PlaySoundW]
jmp case.default.0x403f40
push 0x80000001
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
jmp case.default.0x403f40
push 1
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
call dword [sym.imp.USER32.dll_FlashWindow]
push 0x400
push ecx
mov edx, 0x435520
mov ecx, 0x444058
call fcn.00407890
add esp, 4
mov ecx, eax
call fcn.00405920
mov edx, 0x435518
mov ecx, eax
call fcn.00407890
push eax
call fcn.00407b20
xor eax, eax
mov dword [ebp - 0x88], 0
xor edx, edx
mov dword [ebp - 0x84], eax
add esp, 4
mov dword [ebp - 0x80], edx
xor ecx, ecx
mov dword [ebp - 0xc], ecx
cmp eax, edx
je 0x404004
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0x84], eax
jmp 0x404020
lea ecx, [ebp - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x88]
call fcn.00408d00
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, 0x64
jl 0x403ff3
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x7c], edx
mov esi, dword [eax]
mov eax, dword [esi + 0x254]
test al, 1
jne 0x4040f3
movups xmm0, xmmword [0x435648]
mov dword [esi + 0x210], 0
or eax, 1
mov dword [esi + 0x214], 0
movups xmmword [ebp - 0x110], xmm0
mov word [esi + 0x218], 0
movups xmm0, xmmword [0x435658]
mov dword [esi + 0x254], eax
mov eax, dword [0x435688]
movups xmmword [ebp - 0x100], xmm0
mov dword [ebp - 0xd0], eax
movups xmm0, xmmword [0x435668]
mov ax, word [ebp - 0xce]
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [str.KOBI_EE]
movups xmmword [ebp - 0xe0], xmm0
movups xmm0, xmmword [ebp - 0x106]
movups xmmword [esi + 0x21a], xmm0
movups xmm0, xmmword [ebp - 0xf6]
movups xmmword [esi + 0x22a], xmm0
movups xmm0, xmmword [ebp - 0xe6]
movups xmmword [esi + 0x23a], xmm0
movq xmm0, qword [ebp - 0xd6]
movq qword [esi + 0x24a], xmm0
mov word [esi + 0x252], ax
cmp byte [esi + 0x219], 0
jne 0x404111
xor edx, edx
nop
mov al, dl
add al, 0x80
xor byte [edx + esi + 0x21a], al
inc edx
cmp edx, 0x3a
jb 0x404100
lea edx, [esi + 0x21a]
mov byte [esi + 0x219], 1
mov ecx, 0x444058
call fcn.00407890
mov eax, dword fs:[0x2c]
mov esi, dword [eax]
mov eax, dword [esi + 0x50]
test al, 1
jne 0x40416b
or eax, 1
mov dword [esi + 0x2b4], 0
mov dword [esi + 0x2b8], 0
mov dword [esi + 0x2bc], 0xe7c90000
mov dword [esi + 0x50], eax
mov dword [esi + 0x2c0], 0x86eae8ef
cmp byte [esi + 0x2bd], 0
jne 0x404191
xor edx, edx
nop word [eax + eax]
mov al, dl
sub al, 0x7f
xor byte [edx + esi + 0x2be], al
inc edx
cmp edx, 6
jb 0x404180
lea edx, [esi + 0x2be]
mov byte [esi + 0x2bd], 1
mov ecx, edx
mov dword [ebp - 0x180], 0
xorps xmm0, xmm0
mov dword [ebp - 0x17c], 0
movaps xmmword [ebp - 0x190], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4041c1
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x190]
call fcn.004014f0
mov eax, dword fs:[0x2c]
mov esi, dword [eax]
mov eax, dword [esi + 0x27c]
test al, 1
jne 0x40421a
or eax, 1
mov dword [esi + 0x138], 0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x140], 0xedd60000
mov dword [esi + 0x27c], eax
mov dword [esi + 0x144], 0x86e1e8f1
cmp byte [esi + 0x141], 0
jne 0x404236
xor edx, edx
mov al, dl
sub al, 0x7f
xor byte [edx + esi + 0x142], al
inc edx
cmp edx, 6
jb 0x404225
lea edx, [esi + 0x142]
mov byte [esi + 0x141], 1
mov ecx, edx
mov dword [ebp - 0x160], 0
xorps xmm0, xmm0
mov dword [ebp - 0x15c], 0
movaps xmmword [ebp - 0x170], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404266
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x170]
call fcn.004014f0
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x284]
test cl, 1
jne 0x4042bc
or ecx, 1
mov dword [eax + 0x2dc], 0
mov dword [eax + 0x2e0], 0
mov word [eax + 0x2e4], 0
mov dword [eax + 0x284], ecx
mov byte [eax + 0x2e6], 0xc3
cmp byte [eax + 0x2e5], 0
jne 0x4042cc
xor byte [eax + 0x2e6], 0x81
movsd xmm0, qword [0x435898]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
mov byte [eax + 0x2e5], 1
ja 0x4042ea
sqrtsd xmm0, xmm0
jmp 0x4042ef
call fcn.00428a70
mulsd xmm0, qword [0x435880]
divsd xmm0, qword [0x435890]
cvttsd2si esi, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
call fcn.00427620
subsd xmm0, qword [0x435830]
movsd qword [ebp - 0x20], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
call fcn.004288a0
movsd xmm1, qword [ebp - 0x20]
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
movsd qword [ebp - 0x20], xmm1
call fcn.00428b70
movsd xmm2, qword [ebp - 0x20]
mov edi, 0xa
mulsd xmm2, xmm0
movsd qword [ebp - 0x20], xmm2
imul esi, esi
movaps xmm1, xmm2
mulsd xmm1, xmm2
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x40437a
sqrtsd xmm0, xmm0
jmp 0x40437f
call fcn.00428a70
cvttsd2si esi, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
call fcn.00427ac0
movsd qword [ebp - 8], xmm0
movsd xmm0, qword [ebp - 0x20]
call fcn.004277e0
movsd xmm2, qword [ebp - 8]
addsd xmm2, xmm0
movsd qword [ebp - 0x20], xmm2
sub edi, 1
jne 0x404355
mov eax, dword fs:[0x2c]
movsd xmm0, qword [0x435848]
movsd qword [ebp - 0x20], xmm0
mov esi, dword [eax]
mov eax, dword [esi + 0x278]
test al, 1
jne 0x404427
movups xmm0, xmmword [0x435598]
or eax, 1
mov dword [esi + 0x288], edi
mov dword [esi + 0x28c], edi
movups xmmword [ebp - 0xc0], xmm0
mov word [esi + 0x290], di
movq xmm0, qword [0x4355a8]
movq qword [ebp - 0xb0], xmm0
movq xmm0, qword [ebp - 0xb6]
mov dword [esi + 0x278], eax
mov eax, dword [ebp - 0xae]
movq qword [esi + 0x292], xmm0
mov dword [esi + 0x29a], eax
cmp byte [esi + 0x291], 0
jne 0x404443
xor edx, edx
mov al, dl
sub al, 0x7e
xor byte [edx + esi + 0x292], al
inc edx
cmp edx, 0xc
jb 0x404432
lea edx, [esi + 0x292]
mov byte [esi + 0x291], 1
mov ecx, 0x444058
call fcn.00407890
mov dl, 6
mov ecx, eax
call fcn.004075f0
push eax
call fcn.00407b20
movsd xmm0, qword [0x435878]
xor esi, esi
movsd xmm1, qword [0x435858]
add esp, 4
movsd qword [ebp - 0x58], xmm0
xor edi, edi
movsd xmm0, qword [0x435860]
movsd qword [ebp - 0x40], xmm1
movsd xmm1, qword [0x435840]
movsd qword [ebp - 0x18], xmm0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x10], 0x3e8
call fcn.00427d50
movsd qword [ebp - 0x68], xmm0
xorps xmm1, xmm1
movsd xmm0, qword [ebp - 0x58]
ucomisd xmm1, xmm0
ja 0x4044d1
sqrtsd xmm0, xmm0
jmp 0x4044d6
call fcn.00428a70
movsd xmm1, qword [ebp - 0x68]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x40]
movsd qword [ebp - 0x68], xmm1
call fcn.00427ac0
movsd xmm1, qword [ebp - 0x68]
subsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x18]
movsd qword [ebp - 0x58], xmm1
call fcn.00427620
movsd qword [ebp - 0x18], xmm0
movsd xmm0, qword [ebp - 0x58]
call fcn.004288a0
movsd xmm1, qword [ebp - 0x18]
mulsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x40]
movsd qword [ebp - 0x18], xmm1
call fcn.00428b70
movsd xmm1, qword [ebp - 0x18]
subsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x40]
movsd qword [ebp - 0x18], xmm1
call fcn.00427330
movsd qword [ebp - 0x40], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004268c0
movsd xmm3, qword [ebp - 0x40]
movsd xmm1, qword [ebp - 0x58]
movsd xmm2, qword [ebp - 0x18]
mulsd xmm3, xmm0
movaps xmm0, xmm1
subsd xmm0, xmm2
andps xmm0, xmmword [0x4358a0]
addsd xmm3, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm1
movsd qword [ebp - 0x40], xmm3
addsd xmm0, xmm3
movsd qword [ebp - 8], xmm0
cmp esi, edi
je 0x40459e
movsd qword [esi], xmm0
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x4045c0
lea eax, [ebp - 8]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
movsd xmm1, qword [ebp - 0x58]
movsd xmm2, qword [ebp - 0x18]
movsd xmm3, qword [ebp - 0x40]
movaps xmm0, xmm3
movaps xmm3, xmm1
mulsd xmm0, xmm2
movsd qword [ebp - 0x38], xmm0
subsd xmm3, xmm0
movsd qword [ebp - 8], xmm3
cmp esi, edi
je 0x4045e8
movsd qword [esi], xmm3
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x404605
lea eax, [ebp - 8]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
movsd xmm1, qword [ebp - 0x58]
movsd xmm2, qword [ebp - 0x18]
movaps xmm0, xmm1
movaps xmm1, xmm2
call fcn.00427d50
divsd xmm0, qword [ebp - 0x40]
movsd qword [ebp - 8], xmm0
cmp esi, edi
je 0x40462a
movsd qword [esi], xmm0
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x40463d
lea eax, [ebp - 8]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
movsd xmm0, qword [ebp - 0x18]
mov dword [ebp - 0xc], 1
call fcn.00427620
movsd qword [ebp - 8], xmm0
movsd xmm0, qword [ebp - 0x58]
call fcn.004288a0
mulsd xmm0, qword [ebp - 8]
xorps xmm1, xmm1
andps xmm0, xmmword [0x4358a0]
ucomisd xmm1, xmm0
ja 0x404678
sqrtsd xmm0, xmm0
jmp 0x40467d
call fcn.00428a70
mov eax, dword [ebp - 0xc]
movsd qword [ebp - 0x78], xmm0
nop word [eax + eax]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x68], xmm0
movaps xmm1, xmm0
mulsd xmm1, qword [ebp - 0x58]
divsd xmm1, qword [ebp - 0x18]
subsd xmm1, qword [ebp - 0x40]
movsd qword [ebp - 8], xmm1
cmp esi, edi
je 0x4046c4
movsd qword [esi], xmm1
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x4046dc
lea eax, [ebp - 8]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
movsd xmm0, qword [ebp - 0x68]
divsd xmm0, qword [ebp - 0x58]
addsd xmm0, qword [ebp - 0x38]
movsd qword [ebp - 8], xmm0
cmp esi, edi
je 0x4046fb
movsd qword [esi], xmm0
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x40470e
lea eax, [ebp - 8]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
cmp esi, edi
je 0x404723
movsd xmm0, qword [ebp - 0x78]
movsd qword [esi], xmm0
add esi, 8
mov dword [ebp - 0x28], esi
jmp 0x404736
lea eax, [ebp - 0x78]
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408ba0
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 0xa
jle 0x404690
sub dword [ebp - 0x10], 1
movsd xmm0, qword [ebp - 0x18]
movsd xmm1, qword [0x435840]
jne 0x4044b3
mov eax, dword [ebp - 0x2c]
xorps xmm0, xmm0
sub esi, eax
mov dword [ebp - 0xc], edi
sar esi, 3
xor edi, edi
movsd qword [ebp - 0x68], xmm0
movsd qword [ebp - 0x38], xmm0
test esi, esi
je 0x40483b
jmp 0x404784
mov eax, dword [ebp - 0x2c]
movsd xmm0, qword [eax + edi*8]
call fcn.00428b70
mov eax, dword [ebp - 0x2c]
mulsd xmm0, qword [eax + edi*8]
movsd qword [ebp - 8], xmm0
movsd xmm0, qword [eax + edi*8]
addsd xmm0, qword [0x435828]
andps xmm0, xmmword [0x4358a0]
call fcn.00427ac0
movsd xmm1, qword [ebp - 8]
mov eax, 0xaaaaaaab
mul edi
subsd xmm1, xmm0
mov ecx, edi
addsd xmm1, qword [ebp - 0x38]
shr edx, 1
lea eax, [edx + edx*2]
movsd qword [ebp - 0x38], xmm1
sub ecx, eax
jne 0x404832
mov eax, dword [ebp - 0x2c]
movsd xmm0, qword [eax + edi*8]
call fcn.00427620
mov eax, dword [ebp - 0x2c]
movsd qword [ebp - 0x60], xmm0
movsd xmm0, qword [eax + edi*8]
call fcn.004288a0
movsd xmm1, qword [ebp - 0x60]
mov eax, dword [ebp - 0x2c]
mulsd xmm1, xmm0
movsd xmm0, qword [eax + edi*8]
movsd qword [ebp - 0x60], xmm1
movsd xmm1, qword [0x435850]
call fcn.00427d50
movsd xmm1, qword [ebp - 0x60]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
subsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
inc edi
cmp edi, esi
jb 0x404781
mov eax, dword fs:[0x2c]
mov esi, dword [eax]
mov eax, dword [esi + 0xcc]
test al, 1
jne 0x4048c9
movups xmm0, xmmword [0x4357d0]
mov dword [esi + 0x2e8], 0
or eax, 1
mov dword [esi + 0x2ec], 0
movups xmmword [ebp - 0x100], xmm0
mov word [esi + 0x2f0], 0
movups xmm0, xmmword [0x4357e0]
mov dword [esi + 0xcc], eax
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [0x4357f0]
movups xmmword [ebp - 0xe0], xmm0
mov eax, dword [ebp - 0xd6]
movups xmm0, xmmword [ebp - 0xf6]
movups xmmword [esi + 0x2f2], xmm0
movups xmm0, xmmword [ebp - 0xe6]
movups xmmword [esi + 0x302], xmm0
mov dword [esi + 0x312], eax
cmp byte [esi + 0x2f1], 0
jne 0x4048e5
xor edx, edx
mov al, dl
sub al, 0x7d
xor byte [edx + esi + 0x2f2], al
inc edx
cmp edx, 0x24
jb 0x4048d4
lea edx, [esi + 0x2f2]
mov byte [esi + 0x2f1], 1
mov ecx, 0x444058
call fcn.00407890
movsd xmm1, qword [ebp - 0x38]
mov ecx, eax
call fcn.00405770
push eax
call fcn.00407b20
movsd xmm0, qword [0x435868]
xor edi, edi
add esp, 4
movsd qword [ebp - 0x60], xmm0
movsd xmm0, qword [0x435870]
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], edi
lea esi, [edi + 6]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], eax
movsd qword [ebp - 0x38], xmm0
mov dword [ebp - 0x3c], 0x1f4
nop dword [eax]
movsd xmm0, qword [ebp - 0x20]
andps xmm0, xmmword [0x4358a0]
call fcn.00427ac0
movsd qword [ebp - 0x18], xmm0
movsd xmm0, qword [ebp - 0x60]
call fcn.004288a0
movsd xmm1, qword [ebp - 0x18]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
movsd qword [ebp - 0x18], xmm1
call fcn.004277e0
movsd xmm1, qword [ebp - 0x18]
mov eax, esi
subsd xmm1, xmm0
cdq
xor eax, edx
sub eax, edx
cvttsd2si ecx, xmm1
xorps xmm1, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x60], xmm0
movsd qword [ebp - 0x58], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x4049c5
sqrtsd xmm0, xmm0
jmp 0x4049ca
call fcn.00428a70
movsd qword [ebp - 0x78], xmm0
movsd xmm0, qword [ebp - 0x60]
call fcn.00428b70
movsd qword [ebp - 8], xmm0
movsd xmm0, qword [ebp - 0x20]
call fcn.00427620
movsd xmm1, qword [ebp - 8]
mulsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x60]
addsd xmm1, qword [ebp - 0x78]
movsd qword [ebp - 0x20], xmm1
movsd qword [ebp - 8], xmm1
call fcn.00427d50
movsd qword [ebp - 0x18], xmm0
movsd xmm0, qword [ebp - 0x38]
call fcn.00427330
movsd xmm1, qword [ebp - 0x18]
subsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
movsd qword [ebp - 0x18], xmm1
call fcn.00426de0
movsd xmm1, qword [ebp - 0x18]
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movsd xmm1, qword [ebp - 0x20]
movsx esi, al
mov dword [ebp - 0x14], esi
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x60]
call fcn.00427d50
movsd xmm1, qword [ebp - 0x38]
addsd xmm1, qword [0x435820]
divsd xmm0, xmm1
movsd qword [ebp - 0x78], xmm0
movsd xmm0, qword [ebp - 0x38]
call fcn.00428b70
movsd xmm1, qword [ebp - 0x78]
inc esi
fld qword [ebp - 0x58]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x60]
mulsd xmm0, qword [ebp - 0x20]
fld qword [ebp - 8]
movsd qword [ebp - 0x78], xmm1
movsd qword [ebp - 0x138], xmm1
movsd qword [ebp - 0x140], xmm0
movsd xmm0, qword [ebp - 0x38]
mulsd xmm0, qword [ebp - 0x20]
movsd qword [ebp - 0x148], xmm0
call fcn.004268a0
mov eax, dword [ebp - 0x10]
fstp qword [ebp - 0x70]
mov dword [ebp - 0x54], 0x14
cmp edi, eax
je 0x404ae8
movsd xmm0, qword [ebp - 0x78]
movsd qword [edi], xmm0
add edi, 8
mov dword [ebp - 0x48], edi
jmp 0x404b01
lea eax, [ebp - 0x138]
push eax
push edi
lea ecx, [ebp - 0x4c]
call fcn.00408ba0
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x10], eax
movd xmm0, esi
sub esp, 8
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00411619
movsd xmm0, qword [ebp - 0x140]
fstp qword [ebp - 8]
movsd qword [esp], xmm0
call fcn.0040f889
fsub qword [ebp - 8]
add esp, 8
fstp qword [ebp - 8]
cmp edi, dword [ebp - 0x10]
je 0x404b4a
movsd xmm0, qword [ebp - 8]
movsd qword [edi], xmm0
add edi, 8
mov dword [ebp - 0x48], edi
jmp 0x404b60
lea eax, [ebp - 8]
push eax
push edi
lea ecx, [ebp - 0x4c]
call fcn.00408ba0
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x10], eax
movsd xmm0, qword [ebp - 0x60]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0040f7ef
movsd xmm0, qword [ebp - 0x148]
fstp qword [ebp - 8]
movsd qword [esp], xmm0
call fcn.00411867
fadd qword [ebp - 8]
add esp, 8
fstp qword [ebp - 8]
cmp edi, dword [ebp - 0x10]
je 0x404ba6
movsd xmm0, qword [ebp - 8]
movsd qword [edi], xmm0
add edi, 8
mov dword [ebp - 0x48], edi
jmp 0x404bbc
lea eax, [ebp - 8]
push eax
push edi
lea ecx, [ebp - 0x4c]
call fcn.00408ba0
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x10], eax
movsd xmm0, qword [ebp - 0x38]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp], xmm0
call fcn.004116c9
fadd qword [ebp - 0x70]
mov eax, dword [ebp - 0x10]
add esp, 0x10
fstp qword [ebp - 8]
cmp edi, eax
je 0x404bfa
movsd xmm0, qword [ebp - 8]
movsd qword [edi], xmm0
add edi, 8
mov dword [ebp - 0x48], edi
jmp 0x404c10
lea eax, [ebp - 8]
push eax
push edi
lea ecx, [ebp - 0x4c]
call fcn.00408ba0
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x10], eax
sub dword [ebp - 0x54], 1
jne 0x404ad3
sub dword [ebp - 0x3c], 1
mov esi, dword [ebp - 0x14]
jne 0x404950
mov eax, dword [ebp - 0x4c]
mov esi, eax
movsd xmm2, qword [ebp - 0x68]
movsd qword [ebp - 0x20], xmm2
cmp esi, edi
je 0x404d66
nop
movsd xmm0, qword [esi]
call fcn.004288a0
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [esi]
call fcn.00427620
movsd xmm1, qword [ebp - 0x38]
mulsd xmm1, xmm0
movsd xmm0, qword [esi]
movsd qword [ebp - 0x38], xmm1
call fcn.00428b70
movsd xmm1, qword [ebp - 0x38]
subsd xmm1, xmm0
movsd xmm0, qword [esi]
movsd qword [ebp - 0x38], xmm1
call fcn.004277e0
movsd xmm1, qword [ebp - 0x38]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
movsd qword [ebp - 0x70], xmm0
fld qword [ebp - 0x70]
fld qword [0x435838]
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [esi]
andps xmm0, xmmword [0x4358a0]
movsd qword [ebp - 8], xmm0
call fcn.004268a0
fstp qword [ebp - 0x70]
movsd xmm1, qword [ebp - 0x70]
ucomisd xmm1, qword [ebp - 0x68]
lahf
test ah, 0x44
jp 0x404d1a
movsd xmm0, qword [esi]
movsd xmm1, qword [0x435838]
call fcn.00427d50
movsd qword [ebp - 0x70], xmm0
xorps xmm1, xmm1
movsd xmm0, qword [ebp - 8]
ucomisd xmm1, xmm0
ja 0x404cfc
sqrtsd xmm0, xmm0
jmp 0x404d01
call fcn.00428a70
movsd xmm1, qword [ebp - 0x70]
movsd xmm2, qword [ebp - 0x20]
addsd xmm1, xmm0
subsd xmm2, xmm1
movsd qword [ebp - 0x20], xmm2
jmp 0x404d58
movsd xmm0, qword [ebp - 8]
addsd xmm0, qword [0x435828]
call fcn.00427ac0
movsd qword [ebp - 0x70], xmm0
movsd xmm0, qword [esi]
call fcn.00428b70
addsd xmm0, qword [0x435820]
movsd xmm1, qword [ebp - 0x70]
divsd xmm1, xmm0
addsd xmm1, qword [ebp - 0x20]
movaps xmm2, xmm1
movsd qword [ebp - 0x20], xmm1
add esi, 8
cmp esi, edi
jne 0x404c40
mov eax, dword [ebp - 0x4c]
sub edi, eax
xor esi, esi
sar edi, 3
test edi, edi
je 0x404db0
movsd xmm0, qword [eax + esi*8]
movsd xmm1, qword [0x435838]
mulsd xmm2, xmm0
movsd qword [ebp - 0x70], xmm2
call fcn.00427d50
movsd xmm1, qword [ebp - 0x70]
inc esi
movsd xmm2, qword [ebp - 0x20]
subsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x68]
mov eax, dword [ebp - 0x4c]
addsd xmm0, xmm1
movsd qword [ebp - 0x68], xmm0
cmp esi, edi
jb 0x404d71
mov eax, dword fs:[0x2c]
mov esi, dword [eax]
mov eax, dword [esi + 8]
test al, 1
jne 0x404e6c
movups xmm0, xmmword [0x4355e0]
mov dword [esi + 0x340], 0
or eax, 1
mov dword [esi + 0x344], 0
movups xmmword [ebp - 0x100], xmm0
mov word [esi + 0x348], 0
movups xmm0, xmmword [0x4355f0]
mov dword [esi + 8], eax
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [0x435600]
movups xmmword [ebp - 0xe0], xmm0
movq xmm0, qword [0x435610]
movq qword [ebp - 0xd0], xmm0
movups xmm0, xmmword [ebp - 0xf6]
mov eax, dword [ebp - 0xce]
movups xmmword [esi + 0x34a], xmm0
movups xmm0, xmmword [ebp - 0xe6]
movups xmmword [esi + 0x35a], xmm0
movq xmm0, qword [ebp - 0xd6]
movq qword [esi + 0x36a], xmm0
mov dword [esi + 0x372], eax
mov ax, word [ebp - 0xca]
mov word [esi + 0x376], ax
cmp byte [esi + 0x349], 0
jne 0x404e91
xor edx, edx
nop word [eax + eax]
mov al, dl
sub al, 0x7d
xor byte [edx + esi + 0x34a], al
inc edx
cmp edx, 0x2e
jb 0x404e80
lea edx, [esi + 0x34a]
mov byte [esi + 0x349], 1
mov ecx, 0x444058
call fcn.00407890
movsd xmm1, qword [ebp - 0x68]
mov ecx, eax
call fcn.004055c0
push eax
call fcn.00407b20
mov eax, dword fs:[0x2c]
add esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax + 0x130]
test cl, 1
jne 0x404f63
or ecx, 1
mov dword [eax + 0x148], 0
mov dword [eax + 0x130], ecx
lea edi, [ebp - 0x130]
mov ecx, 0x1b
mov dword [eax + 0x14c], 0
mov esi, 0x4356f0
mov word [eax + 0x150], 0
rep movsd dword es:[edi], dword [esi]
movups xmm0, xmmword [ebp - 0x126]
movups xmmword [eax + 0x152], xmm0
movups xmm0, xmmword [ebp - 0x116]
movups xmmword [eax + 0x162], xmm0
movups xmm0, xmmword [ebp - 0x106]
movups xmmword [eax + 0x172], xmm0
movups xmm0, xmmword [ebp - 0xf6]
movups xmmword [eax + 0x182], xmm0
movups xmm0, xmmword [ebp - 0xe6]
movups xmmword [eax + 0x192], xmm0
movups xmm0, xmmword [ebp - 0xd6]
movups xmmword [eax + 0x1a2], xmm0
cmp byte [eax + 0x151], 0
jne 0x404f86
xor edx, edx
nop
lea ecx, [eax + 0x152]
mov al, dl
sub al, 0x7d
xor byte [ecx + edx], al
inc edx
mov eax, dword [ebp - 0x3c]
cmp edx, 0x60
jb 0x404f70
lea edx, [eax + 0x152]
mov byte [eax + 0x151], 1
mov ecx, edx
mov dword [ebp - 0xb0], 0
xorps xmm0, xmm0
mov dword [ebp - 0xac], 0
movaps xmmword [ebp - 0xc0], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404fb6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xc0]
call fcn.004014f0
lea edx, [ebp - 0xc0]
lea ecx, [ebp - 0xdc]
call fcn.00403b80
mov ecx, dword [ebp - 0xac]
cmp ecx, 0xf
jbe 0x405017
mov edx, dword [ebp - 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40500d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052a8
push ecx
push edx
call fcn.0040a883
add esp, 8
lea edx, [ebp - 0xdc]
lea ecx, [ebp - 0xa0]
call fcn.00401230
cmp dword [ebp - 0x8c], 0xf
lea edi, [ebp - 0xa0]
lea edx, [ebp - 0xa0]
cmova edi, dword [ebp - 0xa0]
add edi, dword [ebp - 0x90]
cmp dword [ebp - 0x8c], 0xf
cmova edx, dword [ebp - 0xa0]
xor eax, eax
mov dword [ebp - 0x14], edx
mov esi, eax
mov dword [ebp - 0x3c], eax
sub edi, edx
je 0x4050bd
cmp edi, 0x7fffffff
ja 0x4052ad
cmp edi, 0x1000
jb 0x40509f
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x4052b2
push eax
call fcn.0040a853
add esp, 4
test eax, eax
je 0x4052b7
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4050aa
push edi
call fcn.0040a853
add esp, 4
mov esi, eax
push edi
push dword [ebp - 0x14]
lea eax, [esi + edi]
push esi
mov dword [ebp - 0x3c], eax
call fcn.0040bd40
add esp, 0xc
mov ecx, esi
call fcn.00403490
test esi, esi
je 0x4050f5
mov ecx, dword [ebp - 0x3c]
sub ecx, esi
cmp ecx, 0x1000
jb 0x4050eb
mov edx, dword [esi - 4]
add ecx, 0x23
sub esi, edx
lea eax, [esi - 4]
cmp eax, 0x1f
ja 0x4052b7
mov esi, edx
push ecx
push esi
call fcn.0040a883
add esp, 8
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0xf
jbe 0x40512f
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405125
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
cmp ecx, 0xf
jbe 0x405184
mov edx, dword [ebp - 0xdc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40517a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x4051bb
mov ecx, dword [ebp - 0x10]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x4051b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x4051f2
mov ecx, dword [ebp - 0xc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x4051e8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov ecx, dword [ebp - 0x15c]
cmp ecx, 0xf
jbe 0x40522c
mov edx, dword [ebp - 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405222
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov ecx, dword [ebp - 0x17c]
cmp ecx, 0xf
jbe 0x405262
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405258
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push ecx
push edx
call fcn.0040a883
add esp, 8
mov ecx, dword [ebp - 0x88]
test ecx, ecx
je 0x405298
mov edx, dword [ebp - 0x7c]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x40528e
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4052b7
push edx
push ecx
call fcn.0040a883
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call fcn.0040f79b
call fcn.0040f40f
call fcn.00408e60
call fcn.00401180
call fcn.0040f40f
inc edi
aas
inc eax
add byte [edi + 0x3f], cl
inc eax
add byte [ebx + 0x3f], dh
inc eax
add byte [edi - 0x6bffbfc1], al
aas
inc eax
add dl, al
ret 4
int3