Function at 0x1002a580
Capabilities:
Encode data using xor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x9b4
mov eax, dword [0x1003900c]
xor eax, esp
mov dword [esp + 0x9b0], eax
mov edx, dword [0x10054ed0]
push ebx
mov ebx, ecx
mov dword [esp + 0x3c], ebx
push esi
push edi
test edx, edx
je 0x1002bf23
mov eax, dword [edx + 0x2c]
xor ecx, ecx
xor eax, 0x13e1855c
mov dword [esp + 0x3c], ecx
jbe 0x1002bf23
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp eax, ecx
jbe 0x1002bf0e
test ecx, ecx
jle 0x1002bf0e
mov eax, dword [edx + 0x44]
xor eax, 0x304cfd16
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x2c], edi
test edi, edi
je 0x1002bf0e
cmp edi, dword [0x10054f04]
je 0x1002bf0e
mov eax, dword [edi + 0x210]
cmp eax, 0x20
je 0x1002a612
cmp eax, 0x21
jne 0x1002bf0e
mov eax, edi
shr eax, 0x10
test eax, eax
je 0x1002bf0e
cmp byte [0x1005437e], 0
je 0x1002a65f
push 0x47
call esi
cwde
test eax, 0x30d40
je 0x1002a65f
mov ecx, dword [0x10054f04]
lea edx, [esp + 0x200]
mov eax, dword [edi + 0x2c]
movq xmm0, qword [edi + 0x24]
mov dword [esp + 0x208], eax
mov eax, dword [ecx]
push edx
movq qword [esp + 0x204], xmm0
call dword [eax + 0x34]
cmp byte [0x10054381], 0
je 0x1002a69d
push 0x46
call esi
test ax, ax
je 0x1002a69d
mov eax, dword [0x10054f04]
lea ecx, [esp + 0x20c]
push ecx
mov ecx, edi
movq xmm0, qword [eax + 0x24]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x218], eax
mov eax, dword [edi]
movq qword [esp + 0x210], xmm0
call dword [eax + 0x34]
mov eax, dword [0x10054f04]
movq xmm0, qword [eax + 0x24]
mov eax, dword [eax + 0x2c]
movq qword [esp + 0x54], xmm0
movq xmm0, qword [edi + 0x24]
movq qword [esp + 0x48], xmm0
movss xmm2, dword [esp + 0x48]
movss xmm1, dword [esp + 0x4c]
subss xmm1, dword [esp + 0x58]
subss xmm2, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x50], eax
movss xmm0, dword [esp + 0x50]
subss xmm0, dword [esp + 0x5c]
movss dword [0x1005a294], xmm1
movss dword [0x1005a290], xmm2
mulss xmm1, xmm1
mulss xmm2, xmm2
movss dword [0x1005a298], xmm0
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
cvttss2si esi, dword [edi + 0x4dc]
push 0x1005a27c
push 6
mov edx, edi
lea ecx, [esp + 0x90]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x40], xmm0
call fcn.10029ab0
mov eax, dword [edi + 0x2c]
add esp, 8
movq xmm0, qword [edi + 0x24]
mov dword [esp + 0x220], eax
lea eax, [esp + 0x218]
movq qword [esp + 0x218], xmm0
push ebx
push 0x1005a24c
push eax
call fcn.10029700
test al, al
je 0x1002befe
push ebx
push 0x1005a270
push 0x1005a27c
call fcn.10029700
test al, al
je 0x1002ad62
movss xmm0, dword [0x1005440c]
sub esp, 0xc
movss xmm1, dword [0x10035e90]
mulss xmm0, xmm1
mov edi, dword [edi + 0x122c]
cvttss2si ecx, xmm0
movss xmm0, dword [0x10054410]
mulss xmm0, xmm1
or ecx, 0xff00
shl ecx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x10054414]
cvtps2pd xmm0, xmm0
movzx eax, al
or ecx, eax
shl ecx, 8
mulsd xmm0, qword [0x10035de0]
cvttsd2si eax, xmm0
movzx eax, al
or ecx, eax
mov eax, dword [0x10054f04]
mov dword [esp + 0x34], ecx
mov ecx, esp
sub esp, 0xc
movq xmm0, qword [eax + 0x24]
mov eax, dword [eax + 0x2c]
movq qword [ecx], xmm0
movq xmm0, qword [0x1005a27c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [0x1005a284]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10029860
add esp, 0x18
test al, al
je 0x1002a862
movss xmm0, dword [0x1005440c]
movss xmm1, dword [0x10035e90]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x10054410]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x10054414]
jmp 0x1002a89b
cmp byte [0x1005433f], 0
je 0x1002a8c4
movss xmm0, dword [0x10054418]
movss xmm1, dword [0x10035e90]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x1005441c]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x10054420]
cvtps2pd xmm0, xmm0
or ecx, 0xff00
movzx eax, al
shl ecx, 8
or ecx, eax
shl ecx, 8
mulsd xmm0, qword [0x10035de0]
cvttsd2si eax, xmm0
movzx eax, al
or ecx, eax
mov dword [esp + 0x28], ecx
cmp byte [0x10054350], 0
movss xmm0, dword [0x1005a250]
subss xmm0, dword [0x1005a274]
maxss xmm0, dword [0x10035d88]
movss dword [0x1005a25c], xmm0
divss xmm0, dword [0x10035da4]
movss dword [0x1005a258], xmm0
je 0x1002aa68
mov edx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x98]
call fcn.10029e60
add esp, 4
lea eax, [esp + 0x224]
push ebx
push eax
push 0x1005a27c
call fcn.10029700
test al, al
je 0x1002aa68
movss xmm1, dword [0x1005a250]
subss xmm1, dword [esp + 0x228]
movss xmm2, dword [0x10035d40]
movss xmm4, dword [0x10035dd8]
comiss xmm1, xmm2
jbe 0x1002a95b
movaps xmm0, xmm1
jmp 0x1002a95e
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035da8]
cmp edi, 2
jne 0x1002a999
comiss xmm1, xmm2
jbe 0x1002a986
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d7c]
jmp 0x1002aa30
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d7c]
jmp 0x1002aa30
cmp edi, 5
jne 0x1002a9c3
comiss xmm1, xmm2
jbe 0x1002a9b3
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d94]
jmp 0x1002aa30
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d94]
jmp 0x1002aa30
cmp edi, 6
jne 0x1002a9ed
comiss xmm1, xmm2
jbe 0x1002a9dd
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d90]
jmp 0x1002aa30
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d90]
jmp 0x1002aa30
cmp edi, 0xb
jne 0x1002aa0a
movaps xmm0, xmm1
maxss xmm0, dword [0x10035d70]
movaps xmm3, xmm0
divss xmm3, dword [0x10035d70]
jmp 0x1002aa30
cmp edi, 0xc
je 0x1002a9f2
cmp edi, 0xd
je 0x1002aa1e
cmp edi, 0xe
je 0x1002aa1e
cmp edi, 0xf
jne 0x1002aa30
movaps xmm0, xmm1
maxss xmm0, dword [0x10035d70]
movaps xmm3, xmm0
addss xmm3, xmm0
movss xmm1, dword [0x1005a24c]
mov edx, dword [esp + 0x28]
movss xmm2, dword [0x1005a274]
push 0x64afeeee
push ecx
movss dword [esp], xmm0
mov ecx, ebx
movaps xmm0, xmm3
mulss xmm0, dword [0x10035d5c]
subss xmm1, xmm0
call fcn.100295c0
add esp, 8
cmp byte [0x1005434d], 0
je 0x1002ac80
mov edx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x74]
call fcn.10029e60
add esp, 4
lea eax, [esp + 0x230]
push ebx
push eax
push 0x1005a27c
call fcn.10029700
test al, al
je 0x1002ac80
movss xmm1, dword [0x1005a250]
subss xmm1, dword [esp + 0x234]
movss xmm2, dword [0x10035d40]
movss xmm4, dword [0x10035dd8]
comiss xmm1, xmm2
jbe 0x1002aacc
movaps xmm0, xmm1
jmp 0x1002aacf
movaps xmm0, xmm4
movss dword [esp + 0x20], xmm0
movaps xmm3, xmm0
divss xmm3, dword [0x10035da8]
cmp edi, 2
jne 0x1002ab10
comiss xmm1, xmm2
jbe 0x1002aafd
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d7c]
jmp 0x1002aba7
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d7c]
jmp 0x1002aba7
cmp edi, 5
jne 0x1002ab3a
comiss xmm1, xmm2
jbe 0x1002ab2a
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d94]
jmp 0x1002aba7
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d94]
jmp 0x1002aba7
cmp edi, 6
jne 0x1002ab64
comiss xmm1, xmm2
jbe 0x1002ab54
movaps xmm0, xmm1
movaps xmm3, xmm0
divss xmm3, dword [0x10035d90]
jmp 0x1002aba7
movaps xmm0, xmm4
movaps xmm3, xmm0
divss xmm3, dword [0x10035d90]
jmp 0x1002aba7
cmp edi, 0xb
jne 0x1002ab81
movaps xmm0, xmm1
maxss xmm0, dword [0x10035d70]
movaps xmm3, xmm0
divss xmm3, dword [0x10035d70]
jmp 0x1002aba7
cmp edi, 0xc
je 0x1002ab69
cmp edi, 0xd
je 0x1002ab95
cmp edi, 0xe
je 0x1002ab95
cmp edi, 0xf
jne 0x1002abad
movaps xmm0, xmm1
maxss xmm0, dword [0x10035d70]
movaps xmm3, xmm0
addss xmm3, xmm0
movss dword [esp + 0x20], xmm0
movss xmm1, dword [0x1005a24c]
movaps xmm0, xmm3
mulss xmm0, dword [0x10035d5c]
mov edi, dword [esp + 0x28]
mov edx, edi
movss xmm2, dword [0x1005a274]
push ecx
subss xmm1, xmm0
movss dword [esp + 0x28], xmm2
mov ecx, ebx
movss dword [esp], xmm2
movaps xmm0, xmm1
movss dword [esp + 0x34], xmm1
addss xmm0, xmm3
movaps xmm3, xmm0
movss dword [esp + 0x38], xmm0
call fcn.100293d0
movss xmm0, dword [esp + 0x28]
mov edx, edi
addss xmm0, dword [esp + 0x24]
movss xmm3, dword [esp + 0x38]
mov ecx, ebx
addss xmm3, dword [0x10035d88]
movss xmm1, dword [esp + 0x34]
movaps xmm2, xmm0
movss dword [esp + 0x24], xmm0
movss dword [esp], xmm0
call fcn.100293d0
movss xmm3, dword [esp + 0x34]
mov edx, edi
movss xmm0, dword [esp + 0x24]
movaps xmm1, xmm3
movss xmm2, dword [esp + 0x28]
mov ecx, ebx
movss dword [esp], xmm0
call fcn.100293d0
movss xmm0, dword [esp + 0x24]
mov edx, edi
movss xmm2, dword [esp + 0x28]
mov ecx, ebx
movss dword [esp], xmm0
movss xmm0, dword [esp + 0x38]
movaps xmm3, xmm0
movaps xmm1, xmm0
call fcn.100293d0
add esp, 4
jmp 0x1002ac84
mov edi, dword [esp + 0x28]
cmp byte [0x10054341], 1
jne 0x1002ad5e
movd xmm0, esi
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x10035d88]
jbe 0x1002ad5e
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x122c]
inc eax
cmp eax, 0x14
ja case.0x1002acb5.9
jmp dword [eax*4 + 0x1002bf38]
push 0x10035b5c
jmp 0x1002ad15
push 0x10035b64
jmp 0x1002ad15
push 0x10035b6c
jmp 0x1002ad15
push 0x10035b70
jmp 0x1002ad15
push 0x10035b78
jmp 0x1002ad15
push 0x10035b84
jmp 0x1002ad15
push 0x10035b8c
jmp 0x1002ad15
push 0x10035b94
jmp 0x1002ad15
push 0x10035ba0
jmp 0x1002ad15
push 0x10035ba8
jmp 0x1002ad15
push 0x10035bbc
jmp 0x1002ad15
push 0x10035bc4
jmp 0x1002ad15
push 0x10035bd0
lea eax, [esp + 0x27c]
push eax
call fcn.10001500
add esp, 8
movss xmm0, dword [0x1005a250]
lea ecx, [esp + 0x278]
addss xmm0, dword [0x10035e44]
push edi
cvttss2si eax, xmm0
movss xmm0, dword [0x1005a24c]
subss xmm0, dword [0x10035dec]
push eax
cvttss2si edx, xmm0
call fcn.10028df0
add esp, 8
mov edi, dword [esp + 0x2c]
cmp byte [0x1005434f], 1
mov esi, dword [edi + 0x122c]
jne 0x1002aec9
push ecx
mov edx, edi
lea ecx, [esp + 0x240]
call fcn.10029e60
add esp, 4
lea eax, [esp + 0x248]
push ebx
push eax
lea eax, [esp + 0x244]
push eax
call fcn.10029700
test al, al
je 0x1002aec9
movss xmm3, dword [edi + 0x4dc]
comiss xmm3, dword [0x10035d88]
jb 0x1002aec9
movss xmm2, dword [0x1005a250]
movaps xmm1, xmm2
subss xmm1, dword [esp + 0x24c]
maxss xmm1, dword [0x10035d5c]
movaps xmm0, xmm1
divss xmm0, dword [0x10035da8]
movss dword [esp + 0x24], xmm0
cmp esi, 2
jne 0x1002adf9
movaps xmm0, xmm1
divss xmm0, dword [0x10035d7c]
jmp 0x1002ae1b
cmp esi, 5
jne 0x1002ae0b
movaps xmm0, xmm1
divss xmm0, dword [0x10035d94]
jmp 0x1002ae1b
cmp esi, 6
jne 0x1002ae21
movaps xmm0, xmm1
divss xmm0, dword [0x10035d90]
movss dword [esp + 0x24], xmm0
subss xmm2, dword [0x1005a274]
mulss xmm2, xmm3
divss xmm2, dword [0x10035e88]
movaps xmm0, xmm2
call fcn.1002e790
movss xmm0, dword [0x10035e88]
minss xmm0, dword [edi + 0x4dc]
comiss xmm0, dword [0x10035e74]
jbe 0x1002ae5d
mov ecx, 0xff00ff00
jmp 0x1002ae71
comiss xmm0, dword [0x10035e48]
mov ecx, 0xffff0000
mov edx, 0xffff9b00
cmova ecx, edx
movd xmm0, eax
mov edx, 0xff000000
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push ecx
push ecx
mov ecx, ebx
movss xmm1, dword [0x1005a24c]
addsd xmm0, qword [eax*8 + 0x100364f0]
movss xmm3, dword [0x10035dec]
movss xmm2, dword [0x1005a274]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
movss xmm0, dword [esp + 0x2c]
divss xmm0, dword [0x10035d9c]
subss xmm1, xmm0
call fcn.100295c0
add esp, 8
cmp byte [0x10054352], 1
jne 0x1002b02f
push ecx
mov edx, edi
lea ecx, [esp + 0x80]
call fcn.10029e60
add esp, 4
lea eax, [esp + 0x254]
push ebx
push eax
push 0x1005a27c
call fcn.10029700
test al, al
je 0x1002b02f
movss xmm3, dword [0x1005a250]
movss xmm4, dword [0x10035d40]
movaps xmm2, xmm3
subss xmm2, dword [esp + 0x258]
movss xmm5, dword [0x10035dd8]
comiss xmm2, xmm4
jbe 0x1002af31
movaps xmm0, xmm2
jmp 0x1002af34
movaps xmm0, xmm5
movaps xmm1, xmm0
divss xmm1, dword [0x10035da8]
cmp esi, 2
jne 0x1002af6f
comiss xmm2, xmm4
jbe 0x1002af5c
movaps xmm0, xmm2
movaps xmm1, xmm0
divss xmm1, dword [0x10035d7c]
jmp 0x1002b006
movaps xmm0, xmm5
movaps xmm1, xmm0
divss xmm1, dword [0x10035d7c]
jmp 0x1002b006
cmp esi, 5
jne 0x1002af99
comiss xmm2, xmm4
jbe 0x1002af89
movaps xmm0, xmm2
movaps xmm1, xmm0
divss xmm1, dword [0x10035d94]
jmp 0x1002b006
movaps xmm0, xmm5
movaps xmm1, xmm0
divss xmm1, dword [0x10035d94]
jmp 0x1002b006
cmp esi, 6
jne 0x1002afc3
comiss xmm2, xmm4
jbe 0x1002afb3
movaps xmm0, xmm2
movaps xmm1, xmm0
divss xmm1, dword [0x10035d90]
jmp 0x1002b006
movaps xmm0, xmm5
movaps xmm1, xmm0
divss xmm1, dword [0x10035d90]
jmp 0x1002b006
cmp esi, 0xb
jne 0x1002afe0
movaps xmm0, xmm2
maxss xmm0, dword [0x10035d70]
movaps xmm1, xmm0
divss xmm1, dword [0x10035d70]
jmp 0x1002b006
cmp esi, 0xc
je 0x1002afc8
cmp esi, 0xd
je 0x1002aff4
cmp esi, 0xe
je 0x1002aff4
cmp esi, 0xf
jne 0x1002b006
movaps xmm0, xmm2
maxss xmm0, dword [0x10035d70]
movaps xmm1, xmm0
addss xmm1, xmm0
mov esi, dword [esp + 0x28]
cvttss2si edx, dword [0x1005a270]
push esi
push ecx
mov ecx, ebx
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10028f00
add esp, 0x14
jmp 0x1002b033
mov esi, dword [esp + 0x28]
cmp byte [0x10054340], 0
je 0x1002b045
mov edx, esi
mov ecx, edi
call fcn.10029c40
cmp byte [0x1005434c], 0
je 0x1002b0e4
movss xmm0, dword [esp + 0x38]
sub esp, 8
movss xmm1, dword [0x10035e90]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [0x100543d0]
mulss xmm0, xmm1
push str.__0.1f_
cvttss2si ecx, xmm0
movss xmm0, dword [0x100543d4]
mulss xmm0, xmm1
or ecx, 0xff00
shl ecx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x100543d8]
cvtps2pd xmm0, xmm0
movzx eax, al
or ecx, eax
shl ecx, 8
mulsd xmm0, qword [0x10035de0]
cvttsd2si eax, xmm0
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
movzx eax, al
or ecx, eax
push ecx
cvttss2si eax, xmm0
push eax
cvttss2si eax, dword [0x1005a24c]
push eax
call fcn.10028d30
add esp, 0x18
cmp byte [0x1005433b], 0
je 0x1002bb6b
movss xmm0, dword [edi + 0x4dc]
movss xmm2, dword [0x10035e88]
movaps xmm1, xmm0
mulss xmm1, dword [0x10035e50]
ucomiss xmm0, xmm2
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x20], xmm1
lahf
test ah, 0x44
jp 0x1002b203
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x118]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x12c], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x134], eax
sub edi, 2
mov dword [esp + 0x130], edi
lea eax, [edi + 6]
mov dword [esp + 0x138], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x128]
add eax, esi
push 0xff00ff00
mov dword [esp + 0x134], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x140], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
movss xmm2, dword [0x10035e88]
jmp 0x1002b209
movss dword [esp + 0x20], xmm1
comiss xmm0, dword [0x10035e84]
jb 0x1002b2f3
comiss xmm2, xmm0
jb 0x1002b2f3
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x138]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x14c], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x154], eax
sub edi, 2
mov dword [esp + 0x150], edi
lea eax, [edi + 6]
mov dword [esp + 0x158], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x144], edi
mov dword [esp + 0x140], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x148]
add eax, esi
push 0xff00ff00
mov dword [esp + 0x154], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x160], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e7c]
jb 0x1002b3e5
movss xmm1, dword [0x10035e80]
comiss xmm1, xmm0
jb 0x1002b3e5
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x158]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x16c], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x174], eax
sub edi, 2
mov dword [esp + 0x170], edi
lea eax, [edi + 6]
mov dword [esp + 0x178], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x164], edi
mov dword [esp + 0x160], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x168]
add eax, esi
push 0xff00ff00
mov dword [esp + 0x174], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x180], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e6c]
jb 0x1002b4d7
movss xmm1, dword [0x10035e78]
comiss xmm1, xmm0
jb 0x1002b4d7
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x178]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x18c], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x194], eax
sub edi, 2
mov dword [esp + 0x190], edi
lea eax, [edi + 6]
mov dword [esp + 0x198], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x188]
add eax, esi
push 0xff00ff00
mov dword [esp + 0x194], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x1a0], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e64]
jb 0x1002b5c9
movss xmm1, dword [0x10035e68]
comiss xmm1, xmm0
jb 0x1002b5c9
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x198]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x1ac], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x1b4], eax
sub edi, 2
mov dword [esp + 0x1b0], edi
lea eax, [edi + 6]
mov dword [esp + 0x1b8], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1a0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1a8]
add eax, esi
push 0xffe1ff00
mov dword [esp + 0x1b4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x1c0], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e58]
jb 0x1002b6bb
movss xmm1, dword [0x10035e60]
comiss xmm1, xmm0
jb 0x1002b6bb
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1b8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x1cc], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x1d4], eax
sub edi, 2
mov dword [esp + 0x1d0], edi
lea eax, [edi + 6]
mov dword [esp + 0x1d8], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x1c4], edi
mov dword [esp + 0x1c0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1c8]
add eax, esi
push 0xffe1ff00
mov dword [esp + 0x1d4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x1e0], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e4c]
jb 0x1002b7ad
movss xmm1, dword [0x10035e54]
comiss xmm1, xmm0
jb 0x1002b7ad
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1d8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x1ec], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x1f4], eax
sub edi, 2
mov dword [esp + 0x1f0], edi
lea eax, [edi + 6]
mov dword [esp + 0x1f8], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x1e4], edi
mov dword [esp + 0x1e0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1e8]
add eax, esi
push 0xffe1cc00
mov dword [esp + 0x1f4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x200], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e40]
jb 0x1002b89f
movss xmm1, dword [0x10035e48]
comiss xmm1, xmm0
jb 0x1002b89f
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x1f8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0x20c], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0x214], eax
sub edi, 2
mov dword [esp + 0x210], edi
lea eax, [edi + 6]
mov dword [esp + 0x218], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xa8]
add eax, esi
push 0xffe1cc00
mov dword [esp + 0xb4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0xc0], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e2c]
jb 0x1002b991
movss xmm1, dword [0x10035e3c]
comiss xmm1, xmm0
jb 0x1002b991
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xb8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0xcc], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0xd4], eax
sub edi, 2
mov dword [esp + 0xd0], edi
lea eax, [edi + 6]
mov dword [esp + 0xd8], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xc8]
add eax, esi
push 0xffff0000
mov dword [esp + 0xd4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0xe0], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035e08]
jb 0x1002ba83
movss xmm1, dword [0x10035e28]
comiss xmm1, xmm0
jb 0x1002ba83
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xd8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, dword [0x10035e04]
sub esi, 0x16
mov dword [esp + 0xec], esi
cvttss2si edi, xmm0
lea eax, [esi + 0x2d]
mov dword [esp + 0xf4], eax
sub edi, 2
mov dword [esp + 0xf0], edi
lea eax, [edi + 6]
mov dword [esp + 0xf8], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xe8]
add eax, esi
push 0xffff0000
mov dword [esp + 0xf4], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x100], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10035d88]
jb 0x1002bb6b
movss xmm1, dword [0x10035e04]
comiss xmm1, xmm0
jb 0x1002bb6b
movss xmm0, dword [0x1005a24c]
addss xmm0, dword [0x10035df8]
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0xf8]
push 0xff000000
cvttss2si esi, xmm0
push 1
push ecx
push 1
push ebx
movss xmm0, dword [0x1005a250]
addss xmm0, xmm1
sub esi, 0x16
mov dword [esp + 0x10c], esi
lea eax, [esi + 0x2d]
cvttss2si edi, xmm0
mov dword [esp + 0x114], eax
sub edi, 2
mov dword [esp + 0x110], edi
lea eax, [edi + 6]
mov dword [esp + 0x118], eax
mov eax, dword [ebx]
call dword [eax + 0xac]
movss xmm0, dword [esp + 0x20]
inc edi
divss xmm0, dword [0x10035e88]
inc esi
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], esi
call fcn.1002e790
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x108]
add eax, esi
push 0xffff0000
mov dword [esp + 0x114], eax
lea eax, [edi + 4]
push 1
push ecx
mov dword [esp + 0x120], eax
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xac]
cmp byte [0x10054343], 0
je 0x1002bbd3
movss xmm0, dword [esp + 0x38]
lea eax, [esp + 0x438]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str._0.1f
push eax
call fcn.10001500
movss xmm0, dword [0x1005a250]
lea ecx, [esp + 0x448]
addss xmm0, dword [0x10035e38]
push dword [esp + 0x38]
cvttss2si eax, xmm0
movss xmm0, dword [0x1005a24c]
subss xmm0, dword [0x10035dec]
push eax
cvttss2si edx, xmm0
call fcn.10028df0
add esp, 0x18
cmp byte [0x10054342], 0
je 0x1002bdf9
mov eax, dword [ebx]
lea ecx, [esp + 0x260]
push ecx
push ebx
call dword [eax + 0xc0]
mov ecx, dword [esp + 0x28]
mov eax, ecx
movss xmm1, dword [0x10035d2c]
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [esp + 0x30], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
mulss xmm0, xmm1
movss dword [esp + 0x24], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x18
mulss xmm0, xmm1
movss dword [esp + 0x20], xmm0
movd xmm0, eax
mov eax, dword [0x10054ef8]
cvtdq2ps xmm0, xmm0
mov ecx, dword [eax]
push ecx
mov dword [esp], 0x3f800000
mulss xmm0, xmm1
push eax
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x1005a24c]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [0x1005a250]
movss dword [esp + 0x3c], xmm0
call dword [ecx + 0x2c]
mov eax, dword [0x10054ef8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x10054ef8]
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
movss xmm0, dword [esp + 0x38]
mov eax, dword [0x10054ef8]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x64], xmm0
mov dword [esp + 0x68], 0x3f800000
mov dword [esp + 0x6c], 0x3f800000
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
movss xmm0, dword [esp + 0x30]
xorps xmm2, xmm2
movss xmm1, dword [0x10035d88]
comiss xmm0, xmm1
jb 0x1002bcf2
mov ebx, 0xff
jmp 0x1002bd1d
comiss xmm2, xmm0
jb 0x1002bcfb
xor ebx, ebx
jmp 0x1002bd1d
mulss xmm0, dword [0x10035e90]
addss xmm0, dword [0x10035d5c]
call fcn.1002e790
movss xmm1, dword [0x10035d88]
mov ebx, eax
xorps xmm2, xmm2
movss xmm0, dword [esp + 0x24]
comiss xmm0, xmm1
jb 0x1002bd2f
mov edi, 0xff
jmp 0x1002bd57
comiss xmm2, xmm0
jb 0x1002bd38
xor edi, edi
jmp 0x1002bd57
mulss xmm0, dword [0x10035e90]
addss xmm0, dword [0x10035d5c]
call fcn.1002e790
movss xmm1, dword [0x10035d88]
mov edi, eax
movss xmm0, dword [esp + 0x20]
xorps xmm2, xmm2
comiss xmm0, xmm1
jb 0x1002bd6c
mov esi, 0xff
jmp 0x1002bd97
comiss xmm2, xmm0
jb 0x1002bd75
xor esi, esi
jmp 0x1002bd97
mulss xmm0, dword [0x10035e90]
addss xmm0, dword [0x10035d5c]
call fcn.1002e790
movss xmm1, dword [0x10035d88]
mov esi, eax
xorps xmm2, xmm2
movss xmm0, dword [esp + 0x40]
comiss xmm0, xmm1
jb 0x1002bda9
mov eax, 0xff
jmp 0x1002bdc7
comiss xmm2, xmm0
jb 0x1002bdb2
xor eax, eax
jmp 0x1002bdc7
mulss xmm0, dword [0x10035e90]
addss xmm0, dword [0x10035d5c]
call fcn.1002e790
mov ecx, dword [0x10054ef8]
shl eax, 8
or eax, ebx
shl eax, 8
mov edx, dword [ecx]
or eax, edi
shl eax, 8
or eax, esi
push eax
push 2
lea eax, [esp + 0x68]
push eax
push ecx
call dword [edx + 0x14]
mov eax, dword [0x10054ef8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov ebx, dword [esp + 0x44]
cmp byte [0x1005433a], 0
je 0x1002befe
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx + 0x438]
lea eax, [esi + 1]
push eax
lea eax, [ecx + 0x3f8]
push eax
lea eax, [esp + 0x360]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ecx, ecx
test esi, esi
jle 0x1002be41
mov al, cl
sub al, 0x57
xor byte [esp + ecx + 0x358], al
inc ecx
cmp ecx, esi
jl 0x1002be31
lea eax, [esp + 0x358]
push eax
lea eax, [esp + 0x51c]
push 0x10034ce0
push eax
call fcn.1002d1b0
add esp, 0xc
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x65c]
push 0x10034ce0
push eax
call fcn.10001500
lea ecx, [esp + 0x524]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002be85
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [esp + 0x73c]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x524]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x1002befe
movss xmm0, dword [0x1005a250]
lea eax, [esp + 0x738]
addss xmm0, dword [0x10035e14]
push 0x101
push eax
push dword [esp + 0x30]
cvttss2si eax, xmm0
movss xmm0, dword [0x1005a24c]
subss xmm0, dword [0x10035dec]
push eax
cvttss2si eax, xmm0
push eax
push dword [0x10056c48]
call fcn.10028e60
add esp, 0x18
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [esp + 0x3c]
mov edx, dword [0x10054ed0]
mov eax, dword [edx + 0x2c]
inc ecx
xor eax, 0x13e1855c
mov dword [esp + 0x3c], ecx
cmp eax, ecx
ja 0x1002a5d3
mov ecx, dword [esp + 0x9bc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002d3bc
mov esp, ebp
pop ebp
ret