Function at 0x10070030
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008873d
mov eax, dword fs:[0]
push eax
mov eax, 0x22a0
call fcn.10086c50
push esi
push edi
lea edi, [ebp - 0x22ac]
mov ecx, 0x8a8
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x10186040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [ebp + 8], 0
jne 0x1007007e
jmp 0x10071298
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd4], 0
jne 0x1007008f
jmp 0x10071298
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
cmp dword [edx + 0x34], 0
jne 0x100700a3
jmp 0x10071298
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
cmp dword [ecx + 0x3c], 0
jne 0x100700b7
jmp 0x10071298
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
cmp dword [ecx + 0x7cc], 0
jne 0x100700d1
jmp 0x10071298
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
cmp dword [ecx + 0x420], 0
jne 0x100700eb
jmp 0x10071298
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov dword [0x10186864], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov dword [0x1018687c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + 0x550]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x34]
mov dword [0x10186880], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x3c]
mov dword [0x10186884], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x34]
add eax, 0xaf0
mov ecx, dword [eax]
mov dword [0x10186824], ecx
mov edx, dword [eax + 4]
mov dword [0x10186828], edx
mov eax, dword [eax + 8]
mov dword [0x1018682c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x34]
add eax, 0xafc
mov ecx, dword [eax]
mov dword [0x1018686c], ecx
mov edx, dword [eax + 4]
mov dword [0x10186870], edx
mov eax, dword [eax + 8]
mov dword [0x10186874], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + 0x7cc]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
cmp dword [0x10186878], 0
jne 0x10070210
movzx eax, byte [ebp - 0x21f5]
push eax
push str.Texture_Engine.WhiteTexture
lea ecx, [ebp - 0x40]
call fcn.10076b50
mov ecx, eax
call fcn.10071430
push eax
lea ecx, [ebp - 0x5c]
call fcn.10076130
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x5c]
push ecx
call fcn.1006e770
add esp, 4
mov dword [0x10186878], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.10076070
mov dword [ebp - 0x60], 0
jmp 0x10070222
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ecx + 0x34]
mov ecx, dword [edx + 0x7cc]
add ecx, 0x6dc
call fcn.10076000
cmp dword [ebp - 0x60], eax
jge 0x10070ccd
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + 0x7cc]
add eax, 0x6dc
mov dword [ebp - 0x2270], eax
mov ecx, dword [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x2270]
call fcn.10075fe0
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x64]
cmp dword [edx], 0
jne 0x10070281
jmp 0x10070219
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
cmp dword [ecx + 0x34], 0
jne 0x10070292
jmp 0x10070219
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
mov ecx, dword [eax + 0x78]
shr ecx, 0xc
and ecx, 1
je 0x100702a7
jmp 0x10070219
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
cmp dword [eax + 0x54c], 0
jg 0x100702ba
jmp 0x10070219
mov ecx, dword [0x10186864]
push ecx
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
push eax
call fcn.1006fa20
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x100702db
jmp 0x10070219
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
cmp dword [eax + 0x5e8], 0
jne 0x100702ee
jmp 0x10070219
mov ecx, dword [0x10186864]
add ecx, 0xaf0
mov edx, dword [ecx]
mov dword [0x10186824], edx
mov eax, dword [ecx + 4]
mov dword [0x10186828], eax
mov ecx, dword [ecx + 8]
mov dword [0x1018682c], ecx
mov edx, dword [0x10186864]
add edx, 0xafc
mov eax, dword [edx]
mov dword [0x1018686c], eax
mov ecx, dword [edx + 4]
mov dword [0x10186870], ecx
mov edx, dword [edx + 8]
mov dword [0x10186874], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + 0x7cc]
add eax, 0x6dc
mov dword [ebp - 0x2274], eax
mov ecx, dword [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x2274]
call fcn.10075fe0
mov edx, dword [eax]
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], 0
jne 0x10070374
jmp 0x10070219
mov eax, dword [0x10186864]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.1006fad0
add esp, 8
movzx edx, al
test edx, edx
je 0x10070392
jmp 0x10070219
mov eax, dword [0x10186864]
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [eax + 0x420]
jne 0x100703a7
jmp 0x10070219
mov edx, dword [ebp - 0x68]
mov eax, dword [edx + 0x88c]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.1006fb50
add esp, 0xc
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x888]
push ecx
mov edx, dword [ebp - 0x68]
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.1006fb50
add esp, 0xc
mov ecx, dword [ebp - 0x68]
movss xmm0, dword [ecx + 0x518]
divss xmm0, dword [0x101827b8]
addss xmm0, dword [ebp - 0x70]
movss dword [ebp - 0x70], xmm0
mov edx, dword [ebp - 0x68]
movss xmm0, dword [edx + 0x518]
mulss xmm0, dword [0x101827a0]
movss xmm1, dword [ebp - 0x84]
subss xmm1, xmm0
movss dword [ebp - 0x84], xmm1
lea ecx, [ebp - 0xa0]
call fcn.1006e460
lea ecx, [ebp - 0xb4]
call fcn.1006e460
push 0
push 0
push 0xff
push 0
lea ecx, [ebp - 0xc0]
call fcn.1006e730
push 0
push 0
push 0xff
push 0xff
lea ecx, [ebp - 0x21f9]
call fcn.1006e730
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x68]
cvtsi2ss xmm0, dword [ecx + 0x54c]
mov edx, dword [ebp - 0x68]
divss xmm0, dword [edx + 0x544]
movzx eax, byte [ebp - 0xbf]
cvtsi2ss xmm1, eax
mulss xmm0, xmm1
cvttss2si ecx, xmm0
and ecx, 0x800000ff
jns 0x100704a8
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [ebp - 0xbf], cl
movzx edx, byte [ebp - 0xbf]
mov eax, 0xff
sub eax, edx
mov byte [ebp - 0xbe], al
push 0
push 0xff
push 0
push 0xff
lea ecx, [ebp - 0xcc]
call fcn.1006e730
push 0x10186824
mov ecx, dword [ebp - 0x68]
add ecx, 0x2dc
push ecx
mov ecx, dword [0x10186864]
call fcn.10082ec0
movzx edx, al
test edx, edx
je 0x1007051d
push 0xff
push 0
push 0
push 0xff
lea ecx, [ebp - 0x21fd]
call fcn.1006e730
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
lea ecx, [ebp - 0xa0]
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.1006fcc0
add esp, 8
movzx eax, al
test eax, eax
je 0x10070cc8
lea ecx, [ebp - 0xb4]
push ecx
lea edx, [ebp - 0x8c]
push edx
call fcn.1006fcc0
add esp, 8
movzx eax, al
test eax, eax
je 0x10070cc8
mov ecx, dword [ebp + 8]
call fcn.10083b30
mov ecx, dword [ebp - 0x68]
cvtsi2ss xmm0, dword [ecx + 0x54c]
movss dword [ebp - 0xd4], xmm0
mov edx, dword [ebp - 0x68]
movss xmm0, dword [edx + 0x544]
movss dword [ebp - 0xd8], xmm0
push 0x10186824
mov eax, dword [ebp - 0x68]
add eax, 0x2dc
push eax
call fcn.1006fc00
add esp, 8
fstp dword [ebp - 0xdc]
movss xmm0, dword [ebp - 0xb0]
subss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0xe0], xmm0
movss xmm0, dword [ebp - 0xe0]
divss xmm0, dword [0x101827b8]
push ecx
movss dword [esp], xmm0
call fcn.1006d890
add esp, 4
fstp dword [ebp - 0xe4]
movss xmm0, dword [ebp - 0xd4]
divss xmm0, dword [ebp - 0xd8]
mulss xmm0, dword [ebp - 0xe0]
push ecx
movss dword [esp], xmm0
call fcn.1002b510
add esp, 4
fstp dword [ebp - 0xe8]
movss xmm0, dword [ebp - 0xe0]
subss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [0x101827c8]
movss dword [ebp - 0xf0], xmm0
movzx edx, byte [0x101867f9]
test edx, edx
je 0x10070692
mov eax, dword [0x10186864]
push ecx
movss xmm0, dword [eax + 0x42c]
movss dword [esp], xmm0
push 1
mov ecx, dword [ebp + 8]
push ecx
movss xmm0, dword [ecx + 0x60]
movss dword [esp], xmm0
mov edx, dword [ebp + 8]
push ecx
movss xmm0, dword [edx + 0x5c]
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push 1
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp + 8]
call fcn.10083d80
movzx ecx, byte [0x101867fb]
test ecx, ecx
je 0x1007092e
cmp dword [0x101867fc], 0
jne 0x10070892
push 0x55
push 0x28
push 0x14
push 0x23
lea ecx, [ebp - 0x2201]
call fcn.1006e730
mov dword [ebp - 0x2278], eax
mov edx, dword [ebp - 0x2278]
push edx
mov ecx, dword [ebp + 8]
call fcn.10083810
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
movss xmm0, dword [ebp - 0xf0]
addss xmm0, dword [0x101827e0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
push ecx
movss xmm0, dword [ebp - 0xe0]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xf0]
movss dword [esp], xmm0
mov eax, dword [0x10186878]
push eax
mov ecx, dword [ebp + 8]
call fcn.10083930
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc0]
mov dword [ecx + 0x78], edx
movss xmm0, dword [ebp - 0x9c]
addss xmm0, dword [ebp - 0xec]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
movss xmm0, dword [ebp - 0xf0]
addss xmm0, dword [0x101827e0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
movss xmm0, dword [ebp - 0xe0]
subss xmm0, dword [ebp - 0xec]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xf0]
movss dword [esp], xmm0
mov eax, dword [0x10186878]
push eax
mov ecx, dword [ebp + 8]
call fcn.10083930
push 0xaf
push 0x14
push 0x14
push 0x14
lea ecx, [ebp - 0x2205]
call fcn.1006e730
mov dword [ebp - 0x227c], eax
mov ecx, dword [ebp - 0x227c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.10083810
movss xmm0, dword [ebp - 0x9c]
subss xmm0, dword [0x10182788]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
movss xmm0, dword [ebp - 0xf0]
addss xmm0, dword [0x101827e0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
movss xmm0, dword [ebp - 0xe0]
addss xmm0, dword [0x10182788]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xf0]
movss dword [esp], xmm0
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp + 8]
call fcn.10083610
jmp 0x1007092e
cmp dword [0x101867fc], 1
jne 0x1007092e
push 0x400
push 0
lea eax, [ebp - 0x10f4]
push eax
call sub.VCRUNTIME140D.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x68]
mov edx, dword [ecx + 0x54c]
push edx
push str._dHP
lea eax, [ebp - 0x10f4]
push eax
call fcn.10076eb0
add esp, 0xc
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc0]
mov dword [ecx + 0x78], edx
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xa0]
subss xmm0, dword [0x10182814]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083a30
lea eax, [ebp - 0x10f4]
push eax
lea ecx, [ebp - 0x2214]
call fcn.1006e390
push 1
lea ecx, [ebp - 0x2214]
push ecx
mov ecx, dword [ebp + 8]
call fcn.10083f10
movzx edx, byte [0x10186800]
test edx, edx
je 0x10070a7c
cmp dword [0x10186808], 0
jne 0x100709a4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x78], ecx
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xa0]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083a30
push 0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov edx, dword [ebp + 8]
movss xmm0, dword [edx + 0x5c]
divss xmm0, dword [0x101827b8]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083c10
jmp 0x10070a7c
cmp dword [0x10186808], 1
jne 0x10070a15
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x78], ecx
push ecx
movss xmm0, dword [ebp - 0xb0]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xa0]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083a30
push 0
mov edx, dword [ebp + 8]
movss xmm0, dword [edx + 0x60]
divss xmm0, dword [0x101827b8]
push ecx
movss dword [esp], xmm0
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + 0x5c]
divss xmm0, dword [0x101827b8]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083c10
jmp 0x10070a7c
cmp dword [0x10186808], 2
jne 0x10070a7c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc0]
mov dword [ecx + 0x78], edx
push ecx
movss xmm0, dword [ebp - 0xb0]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xa0]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083a30
push 0
mov eax, dword [ebp + 8]
push ecx
movss xmm0, dword [eax + 0x60]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
movss xmm0, dword [ecx + 0x5c]
divss xmm0, dword [0x101827b8]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083c10
movzx edx, byte [0x101867f8]
test edx, edx
je 0x10070b8d
cmp dword [0x10186804], 1
jne 0x10070b18
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x78], ecx
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
movss xmm0, dword [ebp - 0xe0]
divss xmm0, dword [0x101827e8]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xe0]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xe4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10083710
jmp 0x10070b8d
cmp dword [0x10186804], 0
jne 0x10070b8d
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc0]
mov dword [edx + 0x78], eax
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
push ecx
movss xmm0, dword [ebp - 0xe0]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0xe4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp + 8]
call fcn.10083610
movzx edx, byte [0x101867fa]
test edx, edx
jne 0x10070ba7
movzx eax, byte [0x101867f7]
test eax, eax
je 0x10070cc8
push 0x800
push 0x12
lea ecx, [ebp - 0x20fc]
push ecx
call sub.VCRUNTIME140D.dll_memset
add esp, 0xc
movzx edx, byte [0x101867fa]
test edx, edx
je 0x10070bfd
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x5e8], 0
je 0x10070bfd
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx + 0x5e8]
add ecx, 0x490
call fcn.100292c0
push eax
push 0x100a3db8
lea edx, [ebp - 0x20fc]
push edx
call fcn.10076eb0
add esp, 0xc
movzx eax, byte [0x101867f7]
test eax, eax
je 0x10070c3f
movss xmm0, dword [ebp - 0xdc]
divss xmm0, dword [0x10182848]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
lea ecx, [ebp - 0x20fc]
push ecx
push str._s___1.1fm_
lea edx, [ebp - 0x20fc]
push edx
call fcn.10076eb0
add esp, 0x14
push 0xff
push 0
push 0
push 0xff
lea ecx, [ebp - 0x2218]
call fcn.1006e730
mov dword [ebp - 0x2280], eax
mov eax, dword [ebp - 0x2280]
push eax
mov ecx, dword [ebp + 8]
call fcn.10083810
push ecx
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [0x101827b8]
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
push ecx
movss dword [esp], xmm1
mov ecx, dword [ebp + 8]
call fcn.10083a30
lea ecx, [ebp - 0x20fc]
push ecx
lea ecx, [ebp - 0x2224]
call fcn.1006e390
push 1
lea edx, [ebp - 0x2224]
push edx
mov ecx, dword [ebp + 8]
call fcn.10083f10
jmp 0x10070219
mov dword [ebp - 0x2104], 0
jmp 0x10070ce8
mov ecx, dword [ebp - 0x2104]
add ecx, 1
mov dword [ebp - 0x2104], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov ecx, dword [ecx + 0x7cc]
add ecx, 0x6dc
call fcn.10076000
cmp dword [ebp - 0x2104], eax
jge 0x10071293
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + 0x7cc]
add edx, 0x6dc
mov dword [ebp - 0x2284], edx
mov eax, dword [ebp - 0x2104]
push eax
mov ecx, dword [ebp - 0x2284]
call fcn.10075fe0
mov dword [ebp - 0x2108], eax
mov ecx, dword [ebp - 0x2108]
cmp dword [ecx], 0
jne 0x10070d54
jmp 0x10070cd9
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
cmp dword [eax + 0x34], 0
jne 0x10070d68
jmp 0x10070cd9
mov ecx, dword [ebp - 0x2108]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
shr eax, 0xc
and eax, 1
je 0x10070d80
jmp 0x10070cd9
mov ecx, dword [ebp - 0x2108]
mov edx, dword [ecx]
cmp dword [edx + 0x54c], 0
jg 0x10070d96
jmp 0x10070cd9
mov eax, dword [ebp - 0x2108]
mov ecx, dword [eax]
cmp dword [ecx + 0x5e8], 0
jne 0x10070dac
jmp 0x10070cd9
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
add ecx, 0xaf0
mov edx, dword [ecx]
mov dword [0x10186824], edx
mov eax, dword [ecx + 4]
mov dword [0x10186828], eax
mov ecx, dword [ecx + 8]
mov dword [0x1018682c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
add ecx, 0xafc
mov edx, dword [ecx]
mov dword [0x1018686c], edx
mov eax, dword [ecx + 4]
mov dword [0x10186870], eax
mov ecx, dword [ecx + 8]
mov dword [0x10186874], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd4]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + 0x7cc]
add edx, 0x6dc
mov dword [ebp - 0x2288], edx
mov eax, dword [ebp - 0x2104]
push eax
mov ecx, dword [ebp - 0x2288]
call fcn.10075fe0
mov ecx, dword [eax]
mov dword [ebp - 0x210c], ecx
cmp dword [ebp - 0x210c], 0
jne 0x10070e48
jmp 0x10070cd9
mov edx, dword [0x10186864]
push edx
mov eax, dword [ebp - 0x210c]
push eax
call fcn.1006fad0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x10070e6a
jmp 0x10070cd9
mov edx, dword [0x10186864]
mov eax, dword [ebp - 0x210c]
cmp eax, dword [edx + 0x420]
jne 0x10070e83
jmp 0x10070cd9
mov ecx, dword [ebp - 0x210c]
add ecx, 0x88c
push ecx
lea edx, [ebp - 0x2140]
push edx
mov ecx, dword [ebp - 0x210c]
call fcn.10083220
movss xmm0, dword [ebp - 0x2138]
addss xmm0, dword [0x10182838]
movss dword [ebp - 0x2138], xmm0
lea eax, [ebp - 0x2134]
push eax
lea ecx, [ebp - 0x2230]
push ecx
lea ecx, [ebp - 0x2140]
call fcn.1006e4d0
mov dword [ebp - 0x228c], eax
lea edx, [ebp - 0x2128]
push edx
lea eax, [ebp - 0x223c]
push eax
mov ecx, dword [ebp - 0x228c]
call fcn.1006e4d0
mov dword [ebp - 0x2290], eax
lea ecx, [ebp - 0x211c]
push ecx
lea edx, [ebp - 0x2158]
push edx
mov ecx, dword [ebp - 0x2290]
call fcn.1006e4d0
lea eax, [ebp - 0x2158]
mov dword [ebp - 0x2148], eax
push 0x1018686c
push 0x10186824
mov ecx, dword [ebp - 0x2148]
push ecx
lea edx, [ebp - 0x2170]
push edx
mov ecx, dword [0x10186884]
call fcn.10083420
lea eax, [ebp - 0x2170]
mov dword [ebp - 0x2160], eax
push 4
lea ecx, [ebp - 0x217c]
call fcn.1006e830
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x217c]
call fcn.10071640
mov edx, dword [ebp + 8]
movss xmm0, dword [edx + 0x5c]
divss xmm0, dword [0x1018623c]
movss dword [0x101867d0], xmm0
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + 0x60]
divss xmm0, dword [0x1018623c]
movss dword [0x101867c4], xmm0
mov dword [ebp - 0x2184], 0
cmp dword [0x10186230], 0
jne 0x1007106a
push ecx
movss xmm0, dword [0x101867c4]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101867d0]
movss dword [esp], xmm0
lea ecx, [ebp - 0x217c]
call fcn.100714e0
push ecx
movss xmm0, dword [0x101867c4]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101867d0]
movss dword [esp], xmm0
mov ecx, dword [ebp - 0x2160]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.1006fea0
add esp, 0x10
fstp dword [ebp - 0x2294]
movss xmm0, dword [ebp - 0x2294]
ucomiss xmm0, dword [0x1018265c]
lahf
test ah, 0x44
jnp 0x1007106a
cmp dword [0x101867d8], 0
jne 0x10071045
mov eax, dword [ebp - 0x210c]
push eax
mov ecx, dword [ebp - 0x2184]
push ecx
call fcn.1006ff60
add esp, 8
mov dword [ebp - 0x2184], eax
cmp dword [0x101867d8], 1
jne 0x1007106a
mov edx, dword [ebp - 0x210c]
push edx
mov eax, dword [ebp - 0x2184]
push eax
call fcn.10070000
add esp, 8
mov dword [ebp - 0x2184], eax
cmp dword [0x10186230], 1
jne 0x100710bd
cmp dword [0x101867d8], 0
jne 0x10071098
mov ecx, dword [ebp - 0x210c]
push ecx
mov edx, dword [ebp - 0x2184]
push edx
call fcn.1006ff60
add esp, 8
mov dword [ebp - 0x2184], eax
cmp dword [0x101867d8], 1
jne 0x100710bd
mov eax, dword [ebp - 0x210c]
push eax
mov ecx, dword [ebp - 0x2184]
push ecx
call fcn.10070000
add esp, 8
mov dword [ebp - 0x2184], eax
movzx edx, byte [0x1018610c]
test edx, edx
je 0x1007128e
cmp dword [ebp - 0x2184], 0
je 0x1007128e
mov esi, esp
mov eax, dword [0x10186240]
mov ecx, dword [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZpqrstuvwxyz_.____abcdefghi]
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp esi, esp
call fcn.10086a70
movsx edx, ax
test edx, edx
je 0x1007128e
lea ecx, [ebp - 0x218c]
call fcn.1006e440
cmp dword [0x10186234], 0
jne 0x10071126
mov eax, dword [ebp - 0x2184]
mov ecx, dword [eax + 0x88c]
mov dword [ebp - 0x218c], ecx
cmp dword [0x10186234], 1
jne 0x10071141
mov edx, dword [ebp - 0x2184]
mov eax, dword [edx + 0x890]
mov dword [ebp - 0x218c], eax
cmp dword [0x10186234], 2
jne 0x1007115c
mov ecx, dword [ebp - 0x2184]
mov edx, dword [ecx + 0x894]
mov dword [ebp - 0x218c], edx
lea eax, [ebp - 0x218c]
push eax
lea ecx, [ebp - 0x21c4]
push ecx
mov ecx, dword [ebp - 0x2184]
call fcn.10083220
lea edx, [ebp - 0x21b8]
push edx
lea eax, [ebp - 0x2248]
push eax
lea ecx, [ebp - 0x21c4]
call fcn.1006e4d0
mov dword [ebp - 0x2298], eax
lea ecx, [ebp - 0x21ac]
push ecx
lea edx, [ebp - 0x2254]
push edx
mov ecx, dword [ebp - 0x2298]
call fcn.1006e4d0
mov dword [ebp - 0x229c], eax
lea eax, [ebp - 0x21a0]
push eax
lea ecx, [ebp - 0x21d8]
push ecx
mov ecx, dword [ebp - 0x229c]
call fcn.1006e4d0
movzx edx, byte [0x101867b9]
test edx, edx
je 0x1007123c
push 0x10186824
lea eax, [ebp - 0x21d8]
push eax
mov ecx, dword [0x10186864]
call fcn.10082ec0
movzx ecx, al
test ecx, ecx
je 0x1007123c
push 0x10186824
lea edx, [ebp - 0x2260]
push edx
lea ecx, [ebp - 0x21d8]
call fcn.1006e540
mov dword [ebp - 0x22a0], eax
lea eax, [ebp - 0x21e8]
push eax
mov ecx, dword [ebp - 0x22a0]
call fcn.1006e610
mov dword [ebp - 0x22a4], eax
mov ecx, dword [ebp - 0x22a4]
push ecx
mov ecx, dword [0x10186864]
call fcn.10084190
movzx edx, byte [0x101867b9]
test edx, edx
jne 0x1007128e
push 0x10186824
lea eax, [ebp - 0x226c]
push eax
lea ecx, [ebp - 0x21d8]
call fcn.1006e540
mov dword [ebp - 0x22a8], eax
lea ecx, [ebp - 0x21f4]
push ecx
mov ecx, dword [ebp - 0x22a8]
call fcn.1006e610
mov dword [ebp - 0x22ac], eax
mov edx, dword [ebp - 0x22ac]
push edx
mov ecx, dword [0x10186864]
call fcn.10084190
jmp 0x10070cd9
call fcn.1006f320
push edx
mov ecx, ebp
push eax
lea edx, [0x100712d4]
call fcn.10086a10
pop eax
pop edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10084db0
add esp, 0x22ac
cmp ebp, esp
call fcn.10086a70
mov esp, ebp
pop ebp
ret