Function at 0x10002c00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x344
mov eax, dword [0x10009018]
xor eax, esp
mov dword [esp + 0x340], eax
mov eax, dword [0x10faa5e0]
mov ecx, dword [eax]
push ebx
push esi
push edi
lea edx, [esp + 0x1f4]
push edx
mov dword [esp + 0x20], eax
push eax
mov eax, dword [ecx + 0xc0]
call eax
mov esi, dword [esp + 0x1fc]
mov ecx, esi
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
test ecx, ecx
jns 0x10002c54
fadd dword [0x100075b0]
fld qword [0x100075f8]
fdiv st(1), st(0)
fxch st(1)
call fcn.100065d0
mov edi, dword [esp + 0x200]
mov edx, edi
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x30], eax
test edx, edx
jns 0x10002c82
fadd dword [0x100075b0]
fdivrp st(1)
call fcn.100065d0
mov edx, dword [0x10faa40c]
shr esi, 1
shr edi, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
test edx, edx
je 0x10004051
cmp byte [0x100091b3], 0
jne 0x10004051
mov eax, dword [0x10faa408]
cmp dword [eax + 0x54], 0
je 0x100033b8
mov ebx, dword [0x10faa5f0]
mov eax, dword [edx + 0xf2d6d0]
mov edi, 1
test bl, 1
jne 0x10002cea
fld dword [eax + 0xc]
or ebx, edi
fstp dword [0x10faa5ec]
mov dword [0x10faa5f0], ebx
cmp dword [0x10faa3d4], edi
jne 0x10002cfa
fld dword [0x100075f0]
jmp 0x10002d00
fld dword [0x10faa5ec]
fstp dword [eax + 0xc]
test bl, 2
jne 0x10002d1a
fld dword [eax + 4]
or ebx, 2
fstp dword [0x10faa5e8]
mov dword [0x10faa5f0], ebx
cmp dword [0x10faa3e4], edi
jne 0x10002d2a
fld dword [0x100075ec]
jmp 0x10002d30
fld dword [0x10faa5e8]
fstp dword [eax + 4]
mov ecx, dword [edx + 0xf9499c]
xor eax, eax
cmp dword [0x10009658], edi
jne 0x10002e6a
fld dword [0x100075e8]
cmp dword [ecx + eax*4], 0
je 0x10002e58
cmp eax, 6
je 0x10002e44
cmp eax, 0x64
je 0x10002e44
cmp eax, 0x7e
je 0x10002e44
cmp eax, 0x87
je 0x10002e44
cmp eax, 0xc8
je 0x10002e44
cmp eax, 0xd1
je 0x10002e44
cmp eax, 0xd2
je 0x10002e44
cmp eax, 0xf0
je 0x10002e44
cmp eax, 0x106
je 0x10002e44
cmp eax, 0x107
je 0x10002e44
cmp eax, 0x110
je 0x10002e44
cmp eax, 0x120
je 0x10002e44
cmp eax, 0x139
je 0x10002e44
cmp eax, 0x144
je 0x10002e44
cmp eax, 0x152
je 0x10002e44
cmp eax, 0x165
je 0x10002e44
cmp eax, 0x17e
je 0x10002e44
cmp eax, 0x1a0
je 0x10002e44
cmp eax, 0x1a7
je 0x10002e44
cmp eax, 0x1a8
je 0x10002e44
cmp eax, 0x1a9
je 0x10002e44
cmp eax, 0x1b3
je 0x10002e44
cmp eax, 0x1b6
je 0x10002e44
cmp eax, 0x1d9
je 0x10002e44
cmp eax, 0x1e1
je 0x10002e44
cmp eax, 0x207
je 0x10002e44
cmp eax, 0x2b8
je 0x10002e44
cmp eax, 0x2d0
je 0x10002e44
cmp eax, 0x2d9
jne 0x10002e58
mov edi, dword [edx + 0xf9499c]
mov edi, dword [edi + eax*4]
fst dword [edi + 0x81c]
mov edi, 1
add eax, edi
cmp eax, 0x3e7
jl 0x10002d4d
jmp 0x10002f88
fld dword [0x100075e4]
cmp dword [ecx + eax*4], 0
je 0x10002f7b
cmp eax, 6
je 0x10002f67
cmp eax, 0x64
je 0x10002f67
cmp eax, 0x7e
je 0x10002f67
cmp eax, 0x87
je 0x10002f67
cmp eax, 0xc8
je 0x10002f67
cmp eax, 0xd1
je 0x10002f67
cmp eax, 0xd2
je 0x10002f67
cmp eax, 0xf0
je 0x10002f67
cmp eax, 0x106
je 0x10002f67
cmp eax, 0x107
je 0x10002f67
cmp eax, 0x110
je 0x10002f67
cmp eax, 0x120
je 0x10002f67
cmp eax, 0x139
je 0x10002f67
cmp eax, 0x144
je 0x10002f67
cmp eax, 0x152
je 0x10002f67
cmp eax, 0x165
je 0x10002f67
cmp eax, 0x17e
je 0x10002f67
cmp eax, 0x1a0
je 0x10002f67
cmp eax, 0x1a7
je 0x10002f67
cmp eax, 0x1a8
je 0x10002f67
cmp eax, 0x1a9
je 0x10002f67
cmp eax, 0x1b3
je 0x10002f67
cmp eax, 0x1b6
je 0x10002f67
cmp eax, 0x1d9
je 0x10002f67
cmp eax, 0x1e1
je 0x10002f67
cmp eax, 0x207
je 0x10002f67
cmp eax, 0x2b8
je 0x10002f67
cmp eax, 0x2d0
je 0x10002f67
cmp eax, 0x2d9
jne 0x10002f7b
mov edi, dword [edx + 0xf9499c]
mov edi, dword [edi + eax*4]
fst dword [edi + 0x81c]
mov edi, 1
add eax, edi
cmp eax, 0x3e7
jl 0x10002e70
mov eax, dword [edx + 0xf9497c]
fstp st(0)
test bl, 4
jne 0x10002fa6
fld dword [eax]
or ebx, 4
fstp dword [0x10faa5e4]
mov dword [0x10faa5f0], ebx
cmp dword [0x10faa3c8], edi
jne 0x10002fb6
fld dword [0x100075e0]
jmp 0x10002fbc
fld dword [0x10faa5e4]
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
fstp dword [eax]
cmp dword [0x10faa3dc], edi
jne 0x1000303f
push 4
call ebx
test ax, ax
je 0x1000303f
mov eax, dword [0x10faa40c]
test eax, eax
je 0x10002ff9
mov ecx, dword [eax + 0x5b74f4]
mov eax, dword [ecx + 0x204]
push str.LatencySim_255
mov dword [0x10009664], eax
call eax
add esp, 4
mov eax, dword [esp + 0x24]
add eax, 0xffffffd3
push eax
lea ecx, [esi - 0x32]
push ecx
push eax
push ecx
lea edx, [esp + 0x17c]
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0x10009654]
mov ecx, dword [eax]
push 0xffff00ff
push 0x100
lea edx, [esp + 0x174]
push edx
push 0xffffffffffffffff
push 0x100073e4
push 0
push eax
mov eax, dword [ecx + 0x38]
call eax
jmp 0x10003069
cmp dword [0x10faa40c], 0
je 0x10003069
mov ecx, dword [0x10faa40c]
mov edx, dword [ecx + 0x5b74f4]
mov eax, dword [edx + 0x204]
push str.LatencySim_0
mov dword [0x10009664], eax
call eax
add esp, 4
cmp dword [0x10faa3c0], edi
je 0x1000308f
cmp byte [0x10faa5d1], 0
je 0x1000324e
mov byte [0x10faa5d1], 0
call fcn.100024b0
jmp 0x1000324e
cmp byte [0x10faa5d1], 0
jne 0x1000324e
mov eax, dword [0x10faa40c]
fldz
mov esi, dword [eax + 0xf9499c]
mov byte [0x10faa5d1], 1
xor ecx, ecx
mov eax, dword [esi + ecx*4]
test eax, eax
je 0x1000323e
cmp ecx, 6
je 0x1000323e
cmp ecx, 0x64
je 0x1000323e
cmp ecx, 0x7e
je 0x1000323e
cmp ecx, 0x87
je 0x1000323e
cmp ecx, 0xc8
je 0x1000323e
cmp ecx, 0xd1
je 0x1000323e
cmp ecx, 0xd2
je 0x1000323e
cmp ecx, 0xf0
je 0x1000323e
cmp ecx, 0x106
je 0x1000323e
cmp ecx, 0x107
je 0x1000323e
cmp ecx, 0x110
je 0x1000323e
cmp ecx, 0x120
je 0x1000323e
cmp ecx, 0x139
je 0x1000323e
cmp ecx, 0x144
je 0x1000323e
cmp ecx, 0x152
je 0x1000323e
cmp ecx, 0x165
je 0x1000323e
cmp ecx, 0x17e
je 0x1000323e
cmp ecx, 0x1a0
je 0x1000323e
cmp ecx, 0x1a7
je 0x1000323e
cmp ecx, 0x1a8
je 0x1000323e
cmp ecx, 0x1a9
je 0x1000323e
cmp ecx, 0x1b3
je 0x1000323e
cmp ecx, 0x1b6
je 0x1000323e
cmp ecx, 0x1d9
je 0x1000323e
cmp ecx, 0x1e1
je 0x1000323e
cmp ecx, 0x207
je 0x1000323e
cmp ecx, 0x2b8
je 0x1000323e
cmp ecx, 0x2d0
je 0x1000323e
cmp ecx, 0x2d9
je 0x1000323e
add eax, 0x1060
mov edx, 0xa
fst dword [eax + 0x24c8]
add eax, 4
sub edx, edi
fst dword [eax + 0x164]
fst dword [eax + 0x24d4]
fst dword [eax - 4]
fst dword [eax - 0x16c]
fst dword [eax + 0x164]
fst dword [eax + 0x26a4]
fst dword [eax + 0x26a8]
fst dword [eax + 0x29a8]
fst dword [eax + 0x24c4]
jne 0x100031fe
add ecx, edi
cmp ecx, 0x3e7
jl 0x100030b2
fstp st(0)
cmp dword [0x10009684], 0
je 0x10003265
push 0
push 0
push 0
push edi
push edi
call dword [sym.imp.USER32.dll_mouse_event]
mov eax, dword [0x10faa410]
test eax, eax
jne 0x1000327d
mov eax, dword [0x10faa40c]
add eax, 0x24890
mov dword [0x10faa410], eax
mov ecx, dword [0x10faa408]
call eax
mov ecx, eax
mov eax, dword [0x10faa408]
imul ecx, ecx, 0x4c8
lea edx, [ecx + eax + 0x7480]
push 0xa4
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], eax
call ebx
test ax, ax
jne 0x100032b9
push 0xa0
call ebx
test ax, ax
je 0x10003307
mov eax, dword [esp + 0x1fc]
fild dword [esp + 0x1fc]
test eax, eax
jns 0x100032d1
fadd dword [0x100075b0]
fld qword [0x100075d8]
fdiv st(1), st(0)
fxch st(1)
call fcn.100065d0
fild dword [esp + 0x200]
mov ecx, dword [esp + 0x200]
mov dword [esp + 0x30], eax
test ecx, ecx
jns 0x100032fc
fadd dword [0x100075b0]
fdivrp st(1)
call fcn.100065d0
mov dword [esp + 0x28], eax
cmp dword [0x100091cc], 0xf
ja 0x10003934
cmp dword [0x10009650], 0
je 0x10003329
push 0xa4
call ebx
test ax, ax
jne 0x10003346
cmp dword [0x10009670], 0
je 0x10003934
push 0xa0
call ebx
test ax, ax
je 0x10003934
mov esi, dword [0x100091cc]
mov eax, dword [0x10faa408]
mov edx, esi
imul edx, edx, 0x4c8
lea ebx, [edx + eax + 0x7480]
lea eax, [ebx + 6]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10003366
sub eax, edx
cmp eax, 2
jbe 0x100033c7
cmp word [ebx + 0x34], 0
jne 0x100033c7
mov ecx, dword [ebx]
lea edx, [esi + esi*2]
fld dword [edx*4 + 0x10faa4f0]
lea edx, [edx*4 + 0x10faa4f0]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x100033c7
fld dword [edx + 4]
fld dword [ecx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x100033c7
fld dword [edx + 8]
fld dword [ecx + 0xc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x100033c7
mov dword [0x100091cc], 0xffffffff
jmp 0x1000405c
mov eax, dword [ebx]
mov edx, dword [eax + 4]
lea ecx, [esi + esi*2]
lea ecx, [ecx*4 + 0x10faa4f0]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 4], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], eax
mov edx, dword [ebx]
lea ecx, [esp + 0x50]
push ecx
push 3
push edx
call fcn.10002270
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
lea edi, [esp + 0x16c]
mov dword [eax + 8], ecx
call fcn.100023b0
add esp, 0xc
test al, al
je 0x100033b8
mov edx, dword [ebx]
mov ecx, 2
lea esi, [esp + 0x16c]
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.100023b0
add esp, 0xc
test al, al
je 0x100033b8
mov edx, dword [ebx]
mov ecx, 6
lea esi, [esp + 0x16c]
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.100023b0
add esp, 0xc
test al, al
je 0x100033b8
push 0x3c
lea ecx, [esp + 0x180]
push 0
push ecx
call sub.MSVCR100.dll_memset
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x188], ecx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x18c], edx
mov eax, dword [eax + 0x34]
mov edx, dword [ebx]
add esp, 0xc
cmp dword [0x10faa3cc], 0
lea esi, [esp + 0x16c]
mov dword [esp + 0x184], eax
jne 0x1000370a
mov ecx, 3
call fcn.10002310
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x17c]
mov dword [esp + 0x190], eax
call fcn.10002510
mov edx, dword [ebx]
lea esi, [esp + 0x16c]
test al, al
je 0x100035f5
mov ecx, 3
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.100023b0
fld dword [esp + 0x16c]
fisub dword [esp + 0x38]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 1
jne 0x1000405a
fld dword [esp + 0x164]
fisub dword [esp + 0x24]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 1
jne 0x10004058
push 0
push 0
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x1000405c
mov ecx, 6
call fcn.10002310
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x17c]
mov dword [esp + 0x190], eax
call fcn.10002510
test al, al
je 0x100033b8
mov edx, dword [ebx]
mov ecx, 6
lea esi, [esp + 0x16c]
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
lea edi, [esp + 0x16c]
mov dword [ecx + 8], eax
call fcn.100023b0
fld dword [esp + 0x16c]
fisub dword [esp + 0x38]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 1
jne 0x1000405a
fld dword [esp + 0x164]
fisub dword [esp + 0x24]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 1
jne 0x10004058
push 0
push 0
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x1000405c
mov ecx, 6
call fcn.10002310
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x17c]
mov dword [esp + 0x190], eax
call fcn.10002510
mov edx, dword [ebx]
lea esi, [esp + 0x16c]
test al, al
je 0x1000381f
mov ecx, 6
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
lea edi, [esp + 0x16c]
mov dword [ecx + 8], eax
call fcn.100023b0
fld dword [esp + 0x16c]
fisub dword [esp + 0x38]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 1
jne 0x1000405a
fld dword [esp + 0x164]
fisub dword [esp + 0x24]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 1
jne 0x10004058
push 0
push 0
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x1000405c
mov ecx, 3
call fcn.10002310
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x17c]
mov dword [esp + 0x190], eax
call fcn.10002510
test al, al
je 0x100033b8
mov edx, dword [ebx]
mov ecx, 3
lea esi, [esp + 0x16c]
call fcn.10002310
mov edx, dword [eax]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
lea edi, [esp + 0x16c]
mov dword [ecx + 8], eax
call fcn.100023b0
fld dword [esp + 0x16c]
fisub dword [esp + 0x38]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 1
jne 0x1000405a
fld dword [esp + 0x164]
fisub dword [esp + 0x24]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 1
jne 0x10004058
push 0
push 0
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.100065d0
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x1000405c
fld1
mov edi, dword [esp + 0x4c]
xor eax, eax
mov dword [esp + 0x34], 0x10faa4f0
mov edx, dword [esp + 0x34]
mov dword [0x100091cc], 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [0x10faa408]
lea ebx, [eax + ecx + 0x7480]
lea eax, [ebx + 6]
mov dword [esp + 0x40], ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10003975
sub eax, esi
cmp eax, 2
jbe 0x10004024
mov cl, byte [ebx + 5]
cmp cl, byte [edi + 5]
je 0x10004024
cmp word [ebx + 0x34], 0
jg 0x100039cc
mov ecx, dword [ebx]
fld dword [edx]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x100039cc
fld dword [edx + 4]
fld dword [ecx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x100039cc
fld dword [edx + 8]
fld dword [ecx + 0xc]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10004024
mov esi, dword [ebx]
mov eax, dword [edi]
fld dword [esi + 4]
fsub dword [eax + 4]
mov ecx, 2
fstp dword [esp + 0x10]
fst dword [esp + 0x20]
fld dword [esp + 0x10]
test cl, 1
je 0x100039f6
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
shr ecx, 1
je 0x10003a02
fmul st(0), st(0)
fstp dword [esp + 0x10]
jmp 0x100039e3
fstp st(0)
mov ecx, 2
fld dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esi + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x10]
fst dword [esp + 0x20]
fld dword [esp + 0x10]
test cl, 1
je 0x10003a32
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
shr ecx, 1
je 0x10003a3e
fmul st(0), st(0)
fstp dword [esp + 0x10]
jmp 0x10003a1f
fstp st(0)
fld dword [esp + 0x20]
fstp dword [esp + 0x3c]
fld dword [esi + 0xc]
fsub dword [eax + 0xc]
mov eax, 2
fstp dword [esp + 0x10]
fstp dword [esp + 0x20]
jmp 0x10003a60
fld dword [esp + 0x10]
test al, 1
je 0x10003a72
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
shr eax, 1
je 0x10003a7e
fmul st(0), st(0)
fstp dword [esp + 0x10]
jmp 0x10003a60
fstp st(0)
fld dword [esp + 0x20]
fld dword [esp + 0x3c]
fadd dword [esp + 0x14]
fxch st(1)
fstp dword [esp + 0x14]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
call sub.MSVCR100.dll__CIsqrt
fstp dword [esp + 0x14]
cmp dword [0x10009650], 0
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fdiv qword [0x100075c0]
fstp dword [esp + 0x3c]
jne 0x10003ad5
cmp dword [0x10009670], 0
je 0x10003cde
cmp dword [0x100091cc], 0xffffffff
jne 0x10003cde
lea edx, [esp + 0x50]
push edx
push 6
push esi
call fcn.10002270
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
lea edi, [esp + 0x16c]
mov dword [eax + 8], ecx
call fcn.100023b0
add esp, 0xc
test al, al
jne 0x10003b82
mov eax, dword [ebx]
lea edx, [esp + 0x50]
push edx
push 7
push eax
call fcn.10002270
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.100023b0
add esp, 0xc
test al, al
jne 0x10003b82
mov eax, dword [ebx]
lea edx, [esp + 0x50]
push edx
push 2
push eax
call fcn.10002270
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.100023b0
add esp, 0xc
test al, al
je 0x10003cde
fld dword [esp + 0x160]
fisub dword [esp + 0x2c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fild dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 1
jne 0x10003cde
fld dword [esp + 0x164]
fisub dword [esp + 0x24]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 1
jne 0x10003cde
fld dword [0x100075d0]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x10003cde
push 0x3c
lea edx, [esp + 0x1bc]
push 0
push edx
call sub.MSVCR100.dll_memset
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x1c4], ecx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x1c8], edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1cc], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esp + 0x1d0], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x1d4], edx
mov eax, dword [eax + 0xc]
add esp, 0xc
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x1b8]
mov dword [esp + 0x1cc], eax
call fcn.10002510
push 0x3c
lea ecx, [esp + 0x1bc]
push 0
push ecx
mov byte [esp + 0x27], al
call sub.MSVCR100.dll_memset
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x1c4], edx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x1c8], ecx
mov edx, dword [eax + 0x34]
mov eax, dword [ebx]
mov dword [esp + 0x1cc], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1d0], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x1d4], edx
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1cc], eax
jne 0x10004045
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x1b8]
call fcn.10002510
test al, al
jne 0x10004045
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
mov esi, dword [esp + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [ecx + 4], edx
lea edi, [esp + 0x16c]
mov dword [ecx + 8], eax
call fcn.100023b0
add esp, 0xc
test al, al
je 0x10003e75
cmp dword [0x10009674], 0
fld dword [esp + 0x164]
fsub qword [0x100075c8]
fstp dword [esp + 0x164]
je 0x10004005
cmp byte [ebx + 0x20], 0
je 0x10003db4
push 0x10007410
lea ecx, [esp + 0x24c]
push 0x10007414
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
fld dword [esp + 0x170]
fld qword [0x100075f8]
add esp, 0xc
fadd st(1), st(0)
faddp st(1)
call fcn.100065d0
fld dword [esp + 0x160]
mov esi, eax
call fcn.100065d0
push esi
push eax
push esi
push eax
lea edx, [esp + 0x17c]
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0x10009654]
mov ecx, dword [eax]
push 0xffff0000
push 0x100
lea edx, [esp + 0x174]
push edx
push 0xffffffffffffffff
lea edx, [esp + 0x258]
push edx
push 0
push eax
mov eax, dword [ecx + 0x38]
call eax
cmp dword [0x10009674], 0
je 0x10004005
movzx eax, word [ebx + 0x34]
fld dword [esp + 0x164]
fadd qword [0x100075f8]
cmp ax, 0x5a
jl 0x10003e0b
movsx ecx, ax
push ecx
push 0xff7fff00
call fcn.100065d0
mov ebx, eax
fld dword [esp + 0x168]
call fcn.100065d0
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.100011c0
mov ebx, dword [esp + 0x48]
add esp, 8
jmp 0x10004005
cmp ax, 0x28
jl 0x10003e44
movsx edx, ax
push edx
push 0xffffff33
call fcn.100065d0
mov ebx, eax
fld dword [esp + 0x168]
call fcn.100065d0
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.100011c0
mov ebx, dword [esp + 0x48]
add esp, 8
jmp 0x10004005
cwde
push eax
push 0xffff0000
call fcn.100065d0
mov ebx, eax
fld dword [esp + 0x168]
call fcn.100065d0
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.100011c0
mov ebx, dword [esp + 0x48]
add esp, 8
jmp 0x10004005
cmp dword [0x1000967c], 0
je 0x10004005
push 0x3c
lea ecx, [esp + 0x180]
push 0
push ecx
call sub.MSVCR100.dll_memset
mov esi, dword [esp + 0x58]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x188], edx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18c], ecx
mov edx, dword [eax + 0x18]
mov eax, dword [ebx]
mov dword [esp + 0x190], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x194], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x198], edx
mov eax, dword [eax + 0xc]
add esp, 0xc
cmp dword [0x10faa40c], 0
mov edi, 7
mov dword [esp + 0x190], eax
mov dword [esp + 0x1a0], edi
je 0x10003f21
mov ecx, dword [0x10faa40c]
mov edx, dword [ecx + 0x5b74f4]
mov eax, dword [edx + 0x68]
lea ecx, [esp + 0x20c]
push ecx
lea edx, [esp + 0x180]
push edx
mov dword [0x10faa3e0], eax
call eax
add esp, 8
test al, al
sete byte [esp + 0x1b]
jmp 0x10003f26
mov byte [esp + 0x1b], 0
push 0x3c
lea eax, [esp + 0x180]
push 0
push eax
call sub.MSVCR100.dll_memset
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x188], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x18c], edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0x190], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x194], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x198], edx
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x190], eax
mov dword [esp + 0x1a0], edi
jne 0x10003fbd
mov eax, dword [0x10faa40c]
test eax, eax
je 0x10004005
mov ecx, dword [eax + 0x5b74f4]
mov eax, dword [ecx + 0x68]
lea edx, [esp + 0x20c]
push edx
lea ecx, [esp + 0x180]
push ecx
mov dword [0x10faa3e0], eax
call eax
add esp, 8
test al, al
sete al
test al, al
je 0x10004005
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add eax, 0xffffffd3
push eax
add ecx, 0xffffffd8
push ecx
push eax
push ecx
lea edx, [esp + 0x248]
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [0x10009654]
mov ecx, dword [eax]
push 0xffff00ff
push 0x100
lea edx, [esp + 0x240]
push edx
push 0xffffffffffffffff
push str._0_0_
push 0
push eax
mov eax, dword [ecx + 0x38]
call eax
mov eax, dword [ebx]
fld1
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 4], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], eax
mov edx, ecx
inc dword [esp + 0x38]
add dword [esp + 0x48], 0x4c8
add edx, 0xc
mov dword [esp + 0x34], edx
cmp edx, 0x10faa5b0
jl 0x1000395a
jmp 0x1000405a
mov ecx, dword [esp + 0x38]
mov dword [0x100091cc], ecx
jmp 0x1000405c
call fcn.100025b0
jmp 0x1000405c
fstp st(0)
fstp st(0)
cmp dword [0x10009678], 0
je 0x10004091
cmp dword [0x10faa40c], 0
je 0x100040c6
cmp byte [0x100091b3], 0
jne 0x100040c6
call fcn.10002930
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x340]
xor ecx, esp
call fcn.10005bba
mov esp, ebp
pop ebp
ret
cmp dword [0x10009668], 0
je 0x100040cb
cmp dword [0x10faa40c], 0
je 0x100040c6
cmp byte [0x100091b3], 0
jne 0x100040c6
call fcn.10002660
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x340]
xor ecx, esp
call fcn.10005bba
mov esp, ebp
pop ebp
ret
call fcn.100025b0
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10005bba
mov esp, ebp
pop ebp
ret