Function at 0x1001fb20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100354da
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x1003e280]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp + 0xc]
lea eax, [ecx + edx + 0xa]
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp - 0x128]
imul ecx, dword [eax + 0x10], 0x14
lea edx, [edx + ecx + 0xf]
mov dword [ebp - 0x11c], edx
cmp dword [ebp + 8], 3
je 0x1001fbc4
cmp dword [ebp + 8], 2
jne 0x1001fb99
mov byte [ebp - 0x135], 1
jmp 0x1001fba0
mov byte [ebp - 0x135], 0
movzx eax, byte [ebp - 0x135]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, 0x10041608
call fcn.10022560
mov byte [ebp - 0x121], 0
mov dword [ebp - 0x13c], 0
jmp 0x1001fbe6
mov ecx, dword [ebp - 0x13c]
add ecx, 1
mov dword [ebp - 0x13c], ecx
cmp dword [ebp - 0x13c], 0x32
jge 0x1001fc13
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x13c]
mov al, byte [edx + 0x28]
mov byte [ebp - 0x121], al
movzx ecx, byte [ebp - 0x121]
test ecx, ecx
je 0x1001fc11
jmp 0x1001fc13
jmp 0x1001fbd7
cmp dword [ebp + 8], 0
jne 0x1001fe2f
mov edx, dword [ebp + 0x10]
push edx
push 0xff
push 0xff
push 0xff
push 0xff
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
push 0
mov edx, dword [0x10043218]
push edx
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov eax, dword [ebp - 0x120]
add eax, 0x64
mov dword [ebp - 0x120], eax
push 0x12
push 0x12
mov ecx, dword [ebp - 0x11c]
sub ecx, 3
push ecx
mov edx, dword [ebp - 0x120]
sub edx, 3
push edx
mov ecx, 0x100430b8
call fcn.10030160
movzx eax, al
test eax, eax
je 0x1001fcd5
movzx ecx, byte [ebp - 0x121]
test ecx, ecx
jne 0x1001fcd5
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
ucomiss xmm0, dword [0x10038400]
lahf
test ah, 0x44
jp 0x1001fcbc
mov dword [ebp - 0x150], 1
jmp 0x1001fcc6
mov dword [ebp - 0x150], 0
cvtsi2ss xmm0, dword [ebp - 0x150]
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm0
mov ecx, dword [ebp - 0x11c]
add ecx, 1
mov dword [ebp - 0x11c], ecx
push 0xff
push 0x49
push 0x49
push 0x49
push 0xd
push 0xd
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, 0x1004320c
call fcn.100088d0
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ecx]
ucomiss xmm0, dword [0x10038400]
lahf
test ah, 0x44
jnp 0x1001fd9b
push 0xff
push 0x23
push 0x23
push 0x23
mov ecx, dword [0x10041578]
call fcn.10008620
mov edx, dword [ebp - 0x11c]
add edx, 0xc
push edx
mov eax, dword [ebp - 0x120]
add eax, 0xc
push eax
mov ecx, dword [ebp - 0x11c]
add ecx, 2
push ecx
mov edx, dword [ebp - 0x120]
add edx, 2
push edx
mov ecx, dword [0x10041578]
call fcn.1000a250
mov eax, dword [ebp - 0x11c]
add eax, 0xc
push eax
mov ecx, dword [ebp - 0x120]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x11c]
add edx, 2
push edx
mov eax, dword [ebp - 0x120]
add eax, 0xb
push eax
mov ecx, dword [0x10041578]
call fcn.1000a250
push 0xd
push 0xd
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov ecx, 0x100430b8
call fcn.100300b0
movzx eax, al
test eax, eax
je 0x1001fe05
push 0xff
push 0
push 0
push 0x8c
push 0xd
push 0xd
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f0f0
add esp, 0x20
mov ecx, 0x10041608
call fcn.1002f060
movzx eax, al
test eax, eax
jne 0x1001fe03
push 2
mov ecx, 0x10041608
call fcn.10021550
jmp 0x1001fe2a
push 0xff
push 0x23
push 0x23
push 0x23
push 0xd
push 0xd
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f0f0
add esp, 0x20
jmp 0x1002143a
cmp dword [ebp + 8], 1
jne 0x1001ff21
mov eax, dword [ebp + 0x10]
push eax
push 0xff
push 0xff
push 0xff
push 0xff
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
push 0
mov eax, dword [0x10043218]
push eax
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov ecx, dword [ebp - 0x11c]
add ecx, 1
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x120]
add edx, 0x50
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x11c]
sub eax, 2
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x1ac], ecx
sub esp, 0x18
mov edx, esp
mov eax, dword [ebp - 0x1b4]
mov dword [edx], eax
mov ecx, dword [ebp - 0x1b0]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x1ac]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x1a8]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp - 0x1a4]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x1a0]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x128]
call fcn.1001faf0
jmp 0x1002143a
cmp dword [ebp + 8], 2
jne 0x10020b51
mov edx, dword [ebp - 0x128]
movss xmm0, dword [ebp + 0x20]
divss xmm0, dword [edx + 0x70]
movss dword [ebp - 0x130], xmm0
mov byte [ebp - 0x137], 0
mov eax, dword [ebp - 0x128]
movzx ecx, byte [eax + 0x6d]
test ecx, ecx
je 0x1002006b
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x14c], edx
lea eax, [ebp - 0x110]
mov dword [ebp - 0x140], eax
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x14c]
mov al, byte [edx]
mov byte [ebp - 0x136], al
mov ecx, dword [ebp - 0x140]
mov dl, byte [ebp - 0x136]
mov byte [ecx], dl
mov eax, dword [ebp - 0x14c]
add eax, 1
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x140]
add ecx, 1
mov dword [ebp - 0x140], ecx
cmp byte [ebp - 0x136], 0
jne 0x1001ff7d
mov edx, dword [ebp + 0x18]
cvtss2sd xmm0, dword [edx]
movsd qword [ebp - 0x1c4], xmm0
mov eax, 0xf00c88cf
push eax
lea ecx, [ebp - 0x1dc]
call fcn.1001e140
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x164], ecx
sub esp, 8
movsd xmm0, qword [ebp - 0x1c4]
movsd qword [esp], xmm0
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x164]
push eax
lea ecx, [ebp - 0x110]
push ecx
call fcn.10016040
add esp, 0x14
lea ecx, [ebp - 0x1dc]
call fcn.1000c330
lea edx, [ebp - 0x110]
push edx
push 0xff
push 0xff
push 0xff
push 0xff
mov eax, dword [ebp - 0x11c]
sub eax, 7
push eax
mov ecx, dword [ebp - 0x120]
push ecx
push 0
mov edx, dword [0x10043218]
push edx
push 0x1004320c
call fcn.10008740
add esp, 0x28
jmp 0x100200a9
mov eax, dword [ebp + 0x10]
push eax
push 0xff
push 0xff
push 0xff
push 0xff
mov ecx, dword [ebp - 0x11c]
sub ecx, 7
push ecx
mov edx, dword [ebp - 0x120]
push edx
push 0
mov eax, dword [0x10043218]
push eax
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov ecx, dword [ebp - 0x11c]
add ecx, 8
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x128]
movzx eax, byte [edx + 0x6c]
test eax, eax
je 0x100202b5
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [ebp - 0x128]
cvttss2si ecx, dword [eax + edx]
push ecx
mov edx, 4
shl edx, 1
mov eax, dword [ebp - 0x128]
cvttss2si ecx, dword [eax + edx]
push ecx
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x128]
cvttss2si ecx, dword [eax + edx]
push ecx
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x128]
cvttss2si edx, dword [ecx + eax]
push edx
push 5
mov eax, dword [ebp - 0x128]
movss xmm0, dword [eax + 0x70]
addss xmm0, dword [0x10038444]
cvttss2si ecx, xmm0
push ecx
mov edx, dword [ebp - 0x11c]
add edx, 4
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, 0x1004320c
call fcn.100088d0
push 0xff
push 0x46
push 0x46
push 0x46
push 5
mov ecx, dword [ebp - 0x128]
movss xmm0, dword [ecx + 0x70]
addss xmm0, dword [0x10038444]
cvttss2si edx, xmm0
push edx
mov eax, dword [ebp - 0x11c]
add eax, 4
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.1002f0f0
add esp, 0x20
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x3a
mov edx, dword [ebp - 0x11c]
add edx, 9
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.10024b50
add esp, 0x2c
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
mov ecx, dword [ebp - 0x11c]
add ecx, 9
push ecx
mov edx, dword [ebp - 0x120]
add edx, 0x39
push edx
mov ecx, 0x1004320c
call fcn.100088d0
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x43
mov eax, dword [ebp - 0x11c]
add eax, 9
push eax
mov ecx, dword [ebp - 0x120]
add ecx, 0x129
push ecx
call fcn.10024b50
add esp, 0x2c
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x3a
mov edx, dword [ebp - 0x11c]
add edx, 4
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.10024b50
add esp, 0x2c
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
mov ecx, dword [ebp - 0x11c]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x120]
add edx, 0x39
push edx
mov ecx, 0x1004320c
call fcn.100088d0
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x43
mov eax, dword [ebp - 0x11c]
add eax, 4
push eax
mov ecx, dword [ebp - 0x120]
add ecx, 0x129
push ecx
call fcn.10024b50
add esp, 0x2c
jmp 0x1002041d
push 0xff
push 0x46
push 0x46
push 0x46
push 5
mov edx, dword [ebp - 0x128]
movss xmm0, dword [edx + 0x70]
addss xmm0, dword [0x10038444]
cvttss2si eax, xmm0
push eax
mov ecx, dword [ebp - 0x11c]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f430
add esp, 0x20
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x38
mov eax, dword [ebp - 0x11c]
add eax, 9
push eax
mov ecx, dword [ebp - 0x120]
add ecx, 2
push ecx
call fcn.10024b50
add esp, 0x2c
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
mov edx, dword [ebp - 0x11c]
add edx, 9
push edx
mov eax, dword [ebp - 0x120]
add eax, 0x39
push eax
mov ecx, 0x1004320c
call fcn.100088d0
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x41
mov ecx, dword [ebp - 0x11c]
add ecx, 9
push ecx
mov edx, dword [ebp - 0x120]
add edx, 0x129
push edx
call fcn.10024b50
add esp, 0x2c
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x38
mov eax, dword [ebp - 0x11c]
add eax, 4
push eax
mov ecx, dword [ebp - 0x120]
add ecx, 2
push ecx
call fcn.10024b50
add esp, 0x2c
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
mov edx, dword [ebp - 0x11c]
add edx, 4
push edx
mov eax, dword [ebp - 0x120]
add eax, 0x39
push eax
mov ecx, 0x1004320c
call fcn.100088d0
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x41
mov ecx, dword [ebp - 0x11c]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x120]
add edx, 0x129
push edx
call fcn.10024b50
add esp, 0x2c
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x114]
push ecx
mov ecx, 0x100430b8
call fcn.10024ae0
mov edx, dword [ebp - 0x120]
sub edx, 3
cmp dword [ebp - 0x114], edx
jl 0x100204fe
cvtsi2ss xmm0, dword [ebp - 0x114]
cvtsi2ss xmm1, dword [ebp - 0x120]
mov eax, dword [ebp - 0x128]
addss xmm1, dword [eax + 0x70]
addss xmm1, dword [0x10038448]
comiss xmm1, xmm0
jb 0x100204fe
mov ecx, dword [ebp - 0x118]
cmp ecx, dword [ebp - 0x11c]
jl 0x100204fe
mov edx, dword [ebp - 0x11c]
add edx, 0xa
cmp dword [ebp - 0x118], edx
jg 0x100204fe
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x100204fe
cmp dword [0x1003e0a4], 0xffffffff
jne 0x100204fe
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x10041604], eax
jae 0x100204fe
mov ecx, dword [0x10041600]
movzx edx, byte [ecx + 0x100415cc]
test edx, edx
jne 0x100204fe
mov eax, dword [0x10041600]
mov dword [0x1003e0a4], eax
mov ecx, dword [0x10041600]
mov byte [ecx + 0x100415cc], 1
mov ecx, 0x10041608
call fcn.1002f060
movzx edx, al
test edx, edx
jne 0x100204fe
push 2
mov ecx, 0x10041608
call fcn.10021550
mov eax, dword [ebp - 0x120]
sub eax, 0x3e8
cmp dword [ebp - 0x114], eax
jl 0x100205e0
cvtsi2ss xmm0, dword [ebp - 0x114]
cvtsi2ss xmm1, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x128]
addss xmm1, dword [ecx + 0x70]
addss xmm1, dword [0x1003a07c]
comiss xmm1, xmm0
jb 0x100205e0
mov edx, dword [ebp - 0x11c]
sub edx, 0x3e8
cmp dword [ebp - 0x118], edx
jl 0x100205e0
mov eax, dword [ebp - 0x11c]
add eax, 0x3e8
cmp dword [ebp - 0x118], eax
jg 0x100205e0
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx ecx, ax
test ecx, ecx
je 0x100205e0
movzx edx, byte [ebp - 0x121]
test edx, edx
jne 0x100205e0
mov eax, dword [0x10041600]
movzx ecx, byte [eax + 0x100415cc]
test ecx, ecx
je 0x100205de
mov edx, dword [ebp - 0x114]
sub edx, dword [ebp - 0x120]
cvtsi2ss xmm0, edx
mulss xmm0, dword [ebp - 0x130]
addss xmm0, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm0
mov byte [ebp - 0x137], 1
mov ecx, 0x10041608
call fcn.1002f060
movzx ecx, al
test ecx, ecx
jne 0x100205de
push 2
mov ecx, 0x10041608
call fcn.10021550
jmp 0x10020624
mov edx, dword [0x10041600]
movzx eax, byte [edx + 0x100415cc]
test eax, eax
je 0x10020624
mov dword [0x1003e0a4], 0xffffffff
mov ecx, dword [0x10041600]
mov dword [ebp - 0x154], ecx
cmp dword [ebp - 0x154], 0x32
jae 0x10020612
jmp 0x10020617
call fcn.100338c4
mov edx, dword [ebp - 0x154]
mov byte [edx + 0x100415cc], 0
mov eax, dword [ebp + 0x18]
movss xmm0, dword [eax]
comiss xmm0, dword [ebp + 0x20]
jbe 0x1002063d
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x20]
movss dword [ecx], xmm0
mov edx, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x1c]
comiss xmm0, dword [edx]
jbe 0x10020656
mov eax, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x1c]
movss dword [eax], xmm0
mov dword [ebp - 0x134], 0
jmp 0x10020671
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x134]
cmp edx, dword [0x1003e228]
jg 0x1002081e
push 0xff
push 0x23
push 0x23
push 0x23
push 1
mov eax, dword [0x1003e228]
add eax, 1
sub eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x11c]
add ecx, dword [0x1003e228]
sub ecx, dword [ebp - 0x134]
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvtsi2ss xmm1, dword [0x1003e228]
subss xmm0, xmm1
cvtsi2ss xmm1, dword [ebp - 0x134]
addss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov ecx, 0x1004320c
call fcn.100088d0
push 0xff
push 0x23
push 0x23
push 0x23
push 1
mov ecx, dword [0x1003e228]
add ecx, 1
sub ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x11c]
add edx, dword [0x1003e228]
add edx, dword [ebp - 0x134]
push edx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov eax, dword [ebp + 0x18]
movss xmm1, dword [eax]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvtsi2ss xmm1, dword [0x1003e228]
subss xmm0, xmm1
cvtsi2ss xmm1, dword [ebp - 0x134]
addss xmm0, xmm1
cvttss2si ecx, xmm0
push ecx
mov ecx, 0x1004320c
call fcn.100088d0
push 0xff
push 0x23
push 0x23
push 0x23
push 1
mov edx, dword [0x1003e228]
add edx, 1
sub edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x11c]
add eax, dword [0x1003e228]
sub eax, dword [ebp - 0x134]
push eax
cvtsi2ss xmm0, dword [ebp - 0x120]
mov ecx, dword [ebp + 0x18]
movss xmm1, dword [ecx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si edx, xmm0
push edx
mov ecx, 0x1004320c
call fcn.100088d0
push 0xff
push 0x23
push 0x23
push 0x23
push 1
mov eax, dword [0x1003e228]
add eax, 1
sub eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x11c]
add ecx, dword [0x1003e228]
add ecx, dword [ebp - 0x134]
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov ecx, 0x1004320c
call fcn.100088d0
jmp 0x10020662
push 0xe
push 0xa
mov ecx, dword [ebp - 0x11c]
sub ecx, 1
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvtsi2ss xmm1, dword [0x1003e228]
subss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov ecx, 0x100430b8
call fcn.100300b0
movzx ecx, al
test ecx, ecx
jne 0x10020874
movzx edx, byte [ebp - 0x137]
test edx, edx
je 0x1002088f
push 0xff
push 0
push 0
push 0x8c
mov ecx, dword [0x10041578]
call fcn.10008620
jmp 0x100208a5
push 0xff
push 0x64
push 0x64
push 0x64
mov ecx, dword [0x10041578]
call fcn.10008620
mov eax, dword [ebp - 0x11c]
sub eax, 1
push eax
cvtsi2ss xmm0, dword [ebp - 0x120]
mov ecx, dword [ebp + 0x18]
movss xmm1, dword [ecx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si edx, xmm0
push edx
mov eax, dword [ebp - 0x11c]
add eax, dword [0x1003e228]
push eax
cvtsi2ss xmm0, dword [ebp - 0x120]
mov ecx, dword [ebp + 0x18]
movss xmm1, dword [ecx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
mov edx, dword [0x1003e228]
add edx, 1
cvtsi2ss xmm1, edx
subss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov ecx, dword [0x10041578]
call fcn.1000a250
mov ecx, dword [ebp - 0x11c]
add ecx, dword [0x1003e228]
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
mov eax, dword [0x1003e228]
add eax, 1
cvtsi2ss xmm1, eax
addss xmm0, xmm1
cvttss2si ecx, xmm0
push ecx
mov edx, dword [ebp - 0x11c]
sub edx, 1
push edx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov eax, dword [ebp + 0x18]
movss xmm1, dword [eax]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si ecx, xmm0
push ecx
mov ecx, dword [0x10041578]
call fcn.1000a250
mov edx, dword [0x1003e228]
mov eax, dword [ebp - 0x11c]
lea ecx, [eax + edx*2 + 1]
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov ecx, dword [ebp - 0x11c]
add ecx, dword [0x1003e228]
push ecx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov edx, dword [ebp + 0x18]
movss xmm1, dword [edx]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
mov eax, dword [0x1003e228]
add eax, 1
cvtsi2ss xmm1, eax
addss xmm0, xmm1
cvttss2si ecx, xmm0
push ecx
mov ecx, dword [0x10041578]
call fcn.1000a250
mov edx, dword [ebp - 0x11c]
add edx, dword [0x1003e228]
push edx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov eax, dword [ebp + 0x18]
movss xmm1, dword [eax]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
mov ecx, dword [0x1003e228]
add ecx, 1
cvtsi2ss xmm1, ecx
subss xmm0, xmm1
cvttss2si edx, xmm0
push edx
mov eax, dword [0x1003e228]
mov ecx, dword [ebp - 0x11c]
lea edx, [ecx + eax*2 + 1]
push edx
cvtsi2ss xmm0, dword [ebp - 0x120]
mov eax, dword [ebp + 0x18]
movss xmm1, dword [eax]
divss xmm1, dword [ebp - 0x130]
addss xmm0, xmm1
cvttss2si ecx, xmm0
push ecx
mov ecx, dword [0x10041578]
call fcn.1000a250
mov edx, dword [ebp - 0x128]
cmp dword [edx + 0x68], 0xffffffff
je 0x10020b4c
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx + ecx]
mov dword [eax*4 + 0x10040080], ecx
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x68]
mov eax, dword [ebp - 0x128]
mov edx, dword [eax + edx]
mov dword [ecx*4 + 0x10040084], edx
mov eax, 4
shl eax, 1
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x68]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx + eax]
mov dword [edx*4 + 0x10040088], eax
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [ebp - 0x128]
movss xmm0, dword [eax + edx]
movss dword [ebp - 0x168], xmm0
mov ecx, dword [ebp - 0x128]
movzx edx, byte [ecx + 0x6e]
test edx, edx
je 0x10020b23
mov dword [ebp - 0x158], 0x62
jmp 0x10020b35
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x68]
add ecx, 3
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x158]
movss xmm0, dword [ebp - 0x168]
movss dword [edx*4 + 0x10040080], xmm0
jmp 0x1002143a
cmp dword [ebp + 8], 3
jne 0x10020e57
push 0x14
push 0x3c
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov ecx, 0x100430b8
call fcn.10030110
mov byte [ebp - 0x129], al
movss xmm0, dword [ebp + 0x28]
ucomiss xmm0, dword [0x10038490]
lahf
test ah, 0x44
jp 0x10020c42
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
ucomiss xmm0, dword [0x10038400]
lahf
test ah, 0x44
jnp 0x10020bd7
push 0
push 0
push 0x8c
push 0xff
push 0x23
push 0x23
push 0x23
push 0x14
push 0x3c
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.10024c30
add esp, 0x2c
jmp 0x10020c3d
movzx edx, byte [ebp - 0x129]
test edx, edx
je 0x10020c12
push 0x23
push 0x23
push 0x23
push 0xff
push 0
push 0
push 0x8c
push 0x14
push 0x3c
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.10024c30
add esp, 0x2c
jmp 0x10020c3d
push 0x32
push 0x32
push 0x32
push 0xff
push 0x23
push 0x23
push 0x23
push 0x14
push 0x3c
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.10024c30
add esp, 0x2c
jmp 0x10020ce9
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ecx]
ucomiss xmm0, dword [ebp + 0x28]
lahf
test ah, 0x44
jp 0x10020c83
push 0
push 0
push 0x8c
push 0xff
push 0x23
push 0x23
push 0x23
push 0x14
push 0x3c
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.10024c30
add esp, 0x2c
jmp 0x10020ce9
movzx ecx, byte [ebp - 0x129]
test ecx, ecx
je 0x10020cbe
push 0x23
push 0x23
push 0x23
push 0xff
push 0
push 0
push 0x8c
push 0x14
push 0x3c
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.10024c30
add esp, 0x2c
jmp 0x10020ce9
push 0x32
push 0x32
push 0x32
push 0xff
push 0x23
push 0x23
push 0x23
push 0x14
push 0x3c
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.10024c30
add esp, 0x2c
mov eax, dword [ebp + 0x10]
push eax
push 0xff
push 0xff
push 0xff
push 0xff
mov ecx, dword [ebp - 0x11c]
add ecx, 2
push ecx
cvtsi2sd xmm0, dword [ebp - 0x120]
addsd xmm0, qword [0x1003a068]
cvttsd2si edx, xmm0
push edx
push 1
mov eax, dword [0x10043218]
push eax
push 0x1004320c
call fcn.10008740
add esp, 0x28
push 0x14
push 0x3c
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov ecx, 0x100430b8
call fcn.100300b0
movzx eax, al
test eax, eax
je 0x10020e2d
movzx ecx, byte [ebp - 0x129]
test ecx, ecx
jne 0x10020d91
push 0xff
push 0
push 0
push 0x8c
push 0x14
push 0x3c
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.1002f430
add esp, 0x20
jmp 0x10020db6
push 0xff
push 0
push 0
push 0
push 0x14
push 0x3c
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f430
add esp, 0x20
mov ecx, 0x100430b8
call fcn.10024d20
movzx eax, al
test eax, eax
je 0x10020e2b
movzx ecx, byte [ebp - 0x121]
test ecx, ecx
jne 0x10020e2b
movss xmm0, dword [ebp + 0x28]
ucomiss xmm0, dword [0x10038490]
lahf
test ah, 0x44
jp 0x10020e1f
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
ucomiss xmm0, dword [0x10038400]
lahf
test ah, 0x44
jp 0x10020e04
mov dword [ebp - 0x15c], 1
jmp 0x10020e0e
mov dword [ebp - 0x15c], 0
cvtsi2ss xmm0, dword [ebp - 0x15c]
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm0
jmp 0x10020e2b
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x28]
movss dword [ecx], xmm0
jmp 0x10020e52
push 0xff
push 0
push 0
push 0
push 0x14
push 0x3c
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call fcn.1002f430
add esp, 0x20
jmp 0x1002143a
cmp dword [ebp + 8], 4
jne 0x1002143a
mov ecx, dword [ebp + 0x10]
push ecx
push 0xff
push 0xff
push 0xff
push 0xff
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
push 0
mov ecx, dword [0x10043218]
push ecx
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov edx, dword [ebp - 0x11c]
add edx, 1
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x120]
add eax, 0x50
mov dword [ebp - 0x120], eax
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov ecx, 0x1004320c
call fcn.100088d0
push 0xc
push 0xc
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov ecx, 0x100430b8
call fcn.100300b0
movzx edx, al
test edx, edx
je 0x10020f94
push 0xff
push 0
push 0
push 0x8c
push 0xc
push 0xc
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.1002f0f0
add esp, 0x20
mov ecx, 0x100430b8
call fcn.10024d20
movzx edx, al
test edx, edx
je 0x10020f60
movzx eax, byte [ebp - 0x121]
test eax, eax
jne 0x10020f60
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ecx]
subss xmm0, dword [ebp + 0x24]
mov edx, dword [ebp + 0x18]
movss dword [edx], xmm0
mov ecx, 0x100430b8
call fcn.1002f090
movzx eax, al
test eax, eax
je 0x10020f92
movzx ecx, byte [ebp - 0x121]
test ecx, ecx
jne 0x10020f92
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
subss xmm0, dword [0x1003a070]
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm0
jmp 0x10020fb9
push 0xff
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f0f0
add esp, 0x20
mov eax, dword [0x100432cc]
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx + eax*4]
mov eax, dword [0x1004307c]
cmp eax, dword [edx + 4]
jle 0x1002105d
push 0x1004307c
call fcn.100331ba
add esp, 4
cmp dword [0x1004307c], 0xffffffff
jne 0x1002105d
mov dword [ebp - 4], 0
push 0x4ff3e235
lea ecx, [ebp - 0x148]
call fcn.1001c740
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x170], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x170]
push edx
mov ecx, 0x10043064
call fcn.10002200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x148]
call fcn.10013e70
push 0x10036ed0
call fcn.10033591
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1004307c
call fcn.10033169
add esp, 4
mov ecx, 0x10043064
call fcn.1000c7d0
mov dword [ebp - 0x174], eax
mov eax, dword [0x10043218]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x174]
push ecx
push 0xff
push 0
push 0
push 0x50
mov edx, dword [ebp - 0x11c]
sub edx, 3
push edx
cvtsi2sd xmm0, dword [ebp - 0x120]
addsd xmm0, qword [0x1003a058]
cvttsd2si eax, xmm0
push eax
push 1
mov ecx, dword [ebp - 0x178]
push ecx
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov edx, dword [0x100432cc]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edx*4]
mov edx, dword [0x10043098]
cmp edx, dword [ecx + 4]
jle 0x10021164
push 0x10043098
call fcn.100331ba
add esp, 4
cmp dword [0x10043098], 0xffffffff
jne 0x10021164
mov dword [ebp - 4], 2
push 0x8d4aa815
lea ecx, [ebp - 0x1bc]
call fcn.1001bfc0
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x180], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x180]
push ecx
mov ecx, 0x10043080
call fcn.10002200
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1bc]
call fcn.100162a0
push 0x10037340
call fcn.10033591
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x10043098
call fcn.10033169
add esp, 4
mov edx, dword [ebp + 0x18]
cvtss2sd xmm0, dword [edx]
movsd qword [ebp - 0x1cc], xmm0
mov ecx, 0x10043080
call fcn.1000c7d0
mov dword [ebp - 0x184], eax
mov eax, dword [0x10043218]
mov dword [ebp - 0x188], eax
sub esp, 8
movsd xmm0, qword [ebp - 0x1cc]
movsd qword [esp], xmm0
mov ecx, dword [ebp - 0x184]
push ecx
push 0xff
push 0xff
push 0xff
push 0xff
mov edx, dword [ebp - 0x11c]
sub edx, 2
push edx
mov eax, dword [ebp - 0x120]
add eax, 6
cvtsi2sd xmm0, eax
addsd xmm0, qword [0x1003a060]
cvttsd2si ecx, xmm0
push ecx
push 1
mov edx, dword [ebp - 0x188]
push edx
push 0x1004320c
call fcn.10008740
add esp, 0x30
mov eax, dword [ebp - 0x120]
add eax, 0x2c
mov dword [ebp - 0x120], eax
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov ecx, 0x1004320c
call fcn.100088d0
push 0xc
push 0xc
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov ecx, 0x100430b8
call fcn.100300b0
movzx edx, al
test edx, edx
je 0x100212db
push 0xff
push 0
push 0
push 0x8c
push 0xc
push 0xc
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.1002f0f0
add esp, 0x20
mov ecx, 0x100430b8
call fcn.10024d20
movzx edx, al
test edx, edx
je 0x100212a7
movzx eax, byte [ebp - 0x121]
test eax, eax
jne 0x100212a7
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ecx]
addss xmm0, dword [ebp + 0x24]
mov edx, dword [ebp + 0x18]
movss dword [edx], xmm0
mov ecx, 0x100430b8
call fcn.1002f090
movzx eax, al
test eax, eax
je 0x100212d9
movzx ecx, byte [ebp - 0x121]
test ecx, ecx
jne 0x100212d9
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
addss xmm0, dword [0x1003a070]
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm0
jmp 0x10021300
push 0xff
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
call fcn.1002f0f0
add esp, 0x20
mov eax, dword [0x100432cc]
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx + eax*4]
mov eax, dword [0x100430b4]
cmp eax, dword [edx + 4]
jle 0x100213a5
push 0x100430b4
call fcn.100331ba
add esp, 4
cmp dword [0x100430b4], 0xffffffff
jne 0x100213a5
mov dword [ebp - 4], 4
mov ecx, 0x94efbc01
push ecx
lea ecx, [ebp - 0x144]
call fcn.10019f40
mov dword [ebp - 0x19c], eax
mov edx, dword [ebp - 0x19c]
mov dword [ebp - 0x190], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x190]
push eax
mov ecx, 0x1004309c
call fcn.10002200
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x144]
call fcn.10013e70
push 0x10037180
call fcn.10033591
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x100430b4
call fcn.10033169
add esp, 4
mov ecx, 0x1004309c
call fcn.1000c7d0
mov dword [ebp - 0x194], eax
mov ecx, dword [0x10043218]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x194]
push edx
push 0xff
push 0
push 0
push 0x50
mov eax, dword [ebp - 0x11c]
sub eax, 3
push eax
cvtsi2sd xmm0, dword [ebp - 0x120]
addsd xmm0, qword [0x1003a058]
cvttsd2si ecx, xmm0
push ecx
push 1
mov edx, dword [ebp - 0x198]
push edx
push 0x1004320c
call fcn.10008740
add esp, 0x28
mov eax, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x1c]
comiss xmm0, dword [eax]
jbe 0x10021421
mov ecx, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x20]
movss dword [ecx], xmm0
mov edx, dword [ebp + 0x18]
movss xmm0, dword [edx]
comiss xmm0, dword [ebp + 0x20]
jbe 0x1002143a
mov eax, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0x1c]
movss dword [eax], xmm0
cmp dword [ebp + 8], 2
jne 0x1002144c
mov dword [ebp - 0x160], 2
jmp 0x10021456
mov dword [ebp - 0x160], 1
mov ecx, dword [ebp - 0x160]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.1002f1a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003321e
mov esp, ebp
pop ebp
ret 0x28