Function at 0x10002ac0
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
cmp dword [0x10009670], 0
mov eax, dword [0x10faa5d0]
push ebx
push esi
push edi
mov dword [esp + 0x1c], eax
jne 0x10002b32
cmp dword [0x10009650], 0
jne 0x10002b32
cmp dword [0x1000966c], 0
jne 0x10002b32
cmp dword [0x10fa9a68], 0
jne 0x10002b32
cmp dword [0x10faa3bc], 0
jne 0x10002b32
cmp dword [0x10009668], 0
jne 0x10002b32
cmp byte [0x10faa5c1], 0
jne 0x10002b32
cmp dword [0x10faa3d0], 0
je 0x10003af6
mov ecx, dword [eax]
lea edx, [esp + 0x204]
push edx
push eax
mov eax, dword [ecx + 0xc0]
call eax
mov esi, dword [esp + 0x20c]
mov ecx, esi
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
test ecx, ecx
jns 0x10002b60
fadd dword [0x10007570]
fld qword [0x100075a0]
fdiv st(1), st(0)
fxch st(1)
call fcn.10006070
mov edi, dword [esp + 0x210]
mov edx, edi
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x34], eax
test edx, edx
jns 0x10002b8e
fadd dword [0x10007570]
fdivrp st(1)
call fcn.10006070
shr esi, 1
shr edi, 1
cmp dword [0x10faa3fc], 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], edi
je 0x10003aeb
cmp byte [0x100091b3], 0
jne 0x10003aeb
mov eax, dword [0x10faa3f8]
cmp dword [eax + 0x54], 0
je 0x10002f86
mov ebx, 1
cmp dword [0x10faa3d0], ebx
jne 0x10002c0d
push 4
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10002c0d
mov ecx, str.LatencySim_255
call fcn.100023e0
push 0xffff00ff
add edi, 0xffffffd3
lea ecx, [esi - 0x32]
push edi
mov esi, 0x100073a4
call fcn.100012d0
add esp, 8
jmp 0x10002c37
cmp dword [0x10faa3fc], 0
je 0x10002c37
mov ecx, dword [0x10faa3fc]
mov edx, dword [ecx + 0x5b74f4]
mov eax, dword [edx + 0x204]
push str.LatencySim_0
mov dword [0x10009660], eax
call eax
add esp, 4
cmp dword [0x10faa3bc], ebx
je 0x10002c5d
cmp byte [0x10faa5c1], 0
je 0x10002e1b
mov byte [0x10faa5c1], 0
call fcn.10002350
jmp 0x10002e1b
cmp byte [0x10faa5c1], 0
jne 0x10002e1b
mov eax, dword [0x10faa3fc]
fldz
mov esi, dword [eax + 0xf9499c]
mov byte [0x10faa5c1], bl
xor ecx, ecx
mov eax, dword [esi + ecx*4]
test eax, eax
je 0x10002e0b
cmp ecx, 6
je 0x10002e0b
cmp ecx, 0x64
je 0x10002e0b
cmp ecx, 0x7e
je 0x10002e0b
cmp ecx, 0x87
je 0x10002e0b
cmp ecx, 0xc8
je 0x10002e0b
cmp ecx, 0xd1
je 0x10002e0b
cmp ecx, 0xd2
je 0x10002e0b
cmp ecx, 0xf0
je 0x10002e0b
cmp ecx, 0x106
je 0x10002e0b
cmp ecx, 0x107
je 0x10002e0b
cmp ecx, 0x110
je 0x10002e0b
cmp ecx, 0x120
je 0x10002e0b
cmp ecx, 0x139
je 0x10002e0b
cmp ecx, 0x144
je 0x10002e0b
cmp ecx, 0x152
je 0x10002e0b
cmp ecx, 0x165
je 0x10002e0b
cmp ecx, 0x17e
je 0x10002e0b
cmp ecx, 0x1a0
je 0x10002e0b
cmp ecx, 0x1a7
je 0x10002e0b
cmp ecx, 0x1a8
je 0x10002e0b
cmp ecx, 0x1a9
je 0x10002e0b
cmp ecx, 0x1b3
je 0x10002e0b
cmp ecx, 0x1b6
je 0x10002e0b
cmp ecx, 0x1d9
je 0x10002e0b
cmp ecx, 0x1e1
je 0x10002e0b
cmp ecx, 0x207
je 0x10002e0b
cmp ecx, 0x2b8
je 0x10002e0b
cmp ecx, 0x2d0
je 0x10002e0b
cmp ecx, 0x2d9
je 0x10002e0b
add eax, 0x1060
mov edx, 0xa
fst dword [eax + 0x24c8]
add eax, 4
sub edx, ebx
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 0x10002dcb
add ecx, ebx
cmp ecx, 0x3e7
jl 0x10002c7f
fstp st(0)
xor edi, edi
cmp dword [0x10fa9a68], edi
je 0x10002e30
push edi
push edi
push edi
push ebx
push ebx
call dword [sym.imp.USER32.dll_mouse_event]
mov eax, dword [0x10faa400]
cmp eax, edi
jne 0x10002e48
mov eax, dword [0x10faa3fc]
add eax, 0x24890
mov dword [0x10faa400], eax
mov ecx, dword [0x10faa3f8]
call eax
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, eax
mov eax, dword [0x10faa3f8]
imul ecx, ecx, 0x4c8
lea edx, [ecx + eax + 0x7480]
push 0xa4
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], eax
call esi
test ax, ax
jne 0x10002e8a
push 0xa0
call esi
test ax, ax
je 0x10002ed8
mov eax, dword [esp + 0x20c]
fild dword [esp + 0x20c]
test eax, eax
jns 0x10002ea2
fadd dword [0x10007570]
fld qword [0x10007598]
fdiv st(1), st(0)
fxch st(1)
call fcn.10006070
fild dword [esp + 0x210]
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x34], eax
test ecx, ecx
jns 0x10002ecd
fadd dword [0x10007570]
fdivrp st(1)
call fcn.10006070
mov dword [esp + 0x3c], eax
cmp dword [0x100091cc], 0xf
ja 0x100034c9
cmp dword [0x10009650], edi
je 0x10002ef9
push 0xa4
call esi
test ax, ax
jne 0x10002f15
cmp dword [0x1000966c], edi
je 0x100034c9
push 0xa0
call esi
test ax, ax
je 0x100034c9
mov esi, dword [0x100091cc]
mov eax, dword [0x10faa3f8]
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 0x10002f35
sub eax, edx
cmp eax, 2
jbe 0x10002f95
cmp word [ebx + 0x34], di
jne 0x10002f95
mov ecx, dword [ebx]
lea edx, [esi + esi*2]
fld dword [edx*4 + 0x10faa4e0]
lea edx, [edx*4 + 0x10faa4e0]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10002f95
fld dword [edx + 4]
fld dword [ecx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10002f95
fld dword [edx + 8]
fld dword [ecx + 0xc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10002f95
mov dword [0x100091cc], 0xffffffff
jmp 0x10003af6
mov eax, dword [ebx]
mov edx, dword [eax + 4]
lea ecx, [esi + esi*2]
lea ecx, [ecx*4 + 0x10faa4e0]
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]
mov ecx, 3
lea esi, [esp + 0x20]
call fcn.100021b0
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 + 0x18c]
mov dword [ecx + 8], eax
call fcn.10002250
add esp, 0xc
test al, al
je 0x10002f86
mov edx, dword [ebx]
mov ecx, 2
lea esi, [esp + 0x20]
call fcn.100021b0
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.10002250
add esp, 0xc
test al, al
je 0x10002f86
mov edx, dword [ebx]
mov ecx, 6
lea esi, [esp + 0x20]
call fcn.100021b0
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.10002250
add esp, 0xc
test al, al
je 0x10002f86
push 0x3c
lea ecx, [esp + 0x190]
push 0
push ecx
call sub.MSVCR100.dll_memset
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x198], ecx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x19c], edx
mov eax, dword [eax + 0x34]
mov edx, dword [ebx]
add esp, 0xc
cmp dword [0x10faa3c4], 0
lea esi, [esp + 0x20]
mov dword [esp + 0x194], eax
jne 0x100032b7
mov ecx, 3
call fcn.100021b0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
mov dword [esp + 0x1a0], eax
call fcn.100023b0
mov edx, dword [ebx]
lea esi, [esp + 0x20]
test al, al
je 0x100031ae
mov ecx, 3
call fcn.100021b0
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.10002250
fld dword [esp + 0x18c]
fisub dword [esp + 0x4c]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af4
fld dword [esp + 0x184]
fisub dword [esp + 0x38]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x3c]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af2
push 0
push 0
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x10003af6
mov ecx, 6
call fcn.100021b0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
mov dword [esp + 0x1a0], eax
call fcn.100023b0
test al, al
je 0x10002f86
mov edx, dword [ebx]
mov ecx, 6
lea esi, [esp + 0x20]
call fcn.100021b0
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 + 0x18c]
mov dword [ecx + 8], eax
call fcn.10002250
fld dword [esp + 0x18c]
fisub dword [esp + 0x4c]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af4
fld dword [esp + 0x184]
fisub dword [esp + 0x38]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x3c]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af2
push 0
push 0
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x10003af6
mov ecx, 6
call fcn.100021b0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
mov dword [esp + 0x1a0], eax
call fcn.100023b0
mov edx, dword [ebx]
lea esi, [esp + 0x20]
test al, al
je 0x100033c0
mov ecx, 6
call fcn.100021b0
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 + 0x18c]
mov dword [ecx + 8], eax
call fcn.10002250
fld dword [esp + 0x18c]
fisub dword [esp + 0x4c]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af4
fld dword [esp + 0x184]
fisub dword [esp + 0x38]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x3c]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af2
push 0
push 0
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x10003af6
mov ecx, 3
call fcn.100021b0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
mov dword [esp + 0x1a0], eax
call fcn.100023b0
test al, al
je 0x10002f86
mov edx, dword [ebx]
mov ecx, 3
lea esi, [esp + 0x20]
call fcn.100021b0
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 + 0x18c]
mov dword [ecx + 8], eax
call fcn.10002250
fld dword [esp + 0x18c]
fisub dword [esp + 0x4c]
add esp, 0xc
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af4
fld dword [esp + 0x184]
fisub dword [esp + 0x38]
fst dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fild dword [esp + 0x3c]
fcompp
fnstsw ax
test ah, 1
jne 0x10003af2
push 0
push 0
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.10006070
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x10003af6
mov dword [esp + 0x44], 0x10faa4e0
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], edi
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x4c]
mov dword [0x100091cc], 0xffffffff
jmp 0x100034f0
mov eax, dword [esp + 0x50]
mov ecx, dword [0x10faa3f8]
lea ebx, [eax + ecx + 0x7480]
lea eax, [ebx + 6]
mov dword [esp + 0x54], ebx
lea esi, [eax + 1]
jmp 0x10003510
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10003510
sub eax, esi
cmp eax, 2
jbe 0x10003abf
mov cl, byte [ebx + 5]
cmp cl, byte [edi + 5]
je 0x10003abf
cmp word [ebx + 0x34], 0
jg 0x1000356a
mov ecx, dword [ebx]
fld dword [edx]
fld dword [ecx + 4]
add ecx, 4
fucompp
fnstsw ax
test ah, 0x44
jp 0x1000356a
fld dword [edx + 4]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x1000356a
fld dword [edx + 8]
fld dword [ecx + 8]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10003abf
mov esi, dword [ebx]
mov edi, dword [edi]
fld dword [esi + 8]
fsub dword [edi + 8]
push ecx
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call section..text
fstp dword [esp + 0x18]
fld dword [esi + 4]
fsub dword [edi + 4]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call section..text
fadd dword [esp + 0x18]
fstp qword [esp + 0x24]
fld dword [esi + 0xc]
fsub dword [edi + 0xc]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call section..text
fadd qword [esp + 0x24]
add esp, 4
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 [0x10007580]
fstp dword [esp + 0x20]
jne 0x10003603
cmp dword [0x1000966c], 0
je 0x1000381a
cmp dword [0x100091cc], 0xffffffff
jne 0x1000381a
lea edx, [esp + 0x70]
push edx
push 6
push esi
call fcn.10002110
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x84]
mov dword [eax + 4], edx
lea edi, [esp + 0x18c]
mov dword [eax + 8], ecx
call fcn.10002250
add esp, 0xc
test al, al
jne 0x100036be
mov edx, dword [ebx]
mov ecx, 7
lea esi, [esp + 0x64]
call fcn.100021b0
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.10002250
add esp, 0xc
test al, al
jne 0x100036be
mov edx, dword [ebx]
mov ecx, 2
lea esi, [esp + 0x58]
call fcn.100021b0
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.10002250
add esp, 0xc
test al, al
je 0x1000381a
fld dword [esp + 0x180]
fisub dword [esp + 0x40]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fild dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x1000381a
fld dword [esp + 0x184]
fisub dword [esp + 0x38]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fild dword [esp + 0x3c]
fcompp
fnstsw ax
test ah, 1
jne 0x1000381a
fld dword [0x10007590]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x1000381a
push 0x3c
lea ecx, [esp + 0x1cc]
push 0
push ecx
call sub.MSVCR100.dll_memset
mov esi, dword [esp + 0x54]
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x1d4], edx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x1d8], ecx
mov edx, dword [eax + 0x34]
mov eax, dword [ebx]
mov dword [esp + 0x1dc], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1e0], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x1e4], edx
mov eax, dword [eax + 0xc]
add esp, 0xc
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x1c8]
mov dword [esp + 0x1dc], eax
call fcn.100023b0
push 0x3c
lea ecx, [esp + 0x1cc]
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 + 0x1d4], edx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x1d8], ecx
mov edx, dword [eax + 0x34]
mov eax, dword [ebx]
mov dword [esp + 0x1dc], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1e0], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x1e4], edx
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1dc], eax
jne 0x10003ae0
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x1c8]
call fcn.100023b0
test al, al
jne 0x10003ae0
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 + 0x18c]
mov dword [ecx + 8], eax
call fcn.10002250
add esp, 0xc
test al, al
je 0x10003980
cmp dword [0x10009670], 0
fld dword [esp + 0x184]
fsub qword [0x10007588]
fstp dword [esp + 0x184]
je 0x10003aa2
cmp byte [ebx + 0x20], 0
je 0x100038c8
push 0x100073d0
lea ecx, [esp + 0x24c]
push 0x100073d4
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
fld dword [esp + 0x190]
fld qword [0x100075a0]
add esp, 0xc
fadd st(1), st(0)
push 0xffff0000
faddp st(1)
call fcn.10006070
fld dword [esp + 0x184]
push eax
call fcn.10006070
mov ecx, eax
lea esi, [esp + 0x250]
call fcn.100012d0
add esp, 8
cmp dword [0x10009670], 0
je 0x10003aa2
movzx eax, word [ebx + 0x34]
fld dword [esp + 0x184]
fadd qword [0x100075a0]
cmp ax, 0x5a
jl 0x1000391c
movsx edx, ax
push edx
push 0xff7fff00
call fcn.10006070
mov ebx, eax
fld dword [esp + 0x188]
call fcn.10006070
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.10001200
mov ebx, dword [esp + 0x5c]
jmp 0x10003a9f
cmp ax, 0x28
jl 0x10003950
cwde
push eax
push 0xffffff33
call fcn.10006070
mov ebx, eax
fld dword [esp + 0x188]
call fcn.10006070
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.10001200
mov ebx, dword [esp + 0x5c]
jmp 0x10003a9f
movsx ecx, ax
push ecx
push 0xffff0000
call fcn.10006070
mov ebx, eax
fld dword [esp + 0x188]
call fcn.10006070
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.10001200
mov ebx, dword [esp + 0x5c]
jmp 0x10003a9f
cmp dword [0x10009678], 0
je 0x10003aa2
push 0x3c
lea edx, [esp + 0x190]
push 0
push edx
call sub.MSVCR100.dll_memset
mov esi, dword [esp + 0x58]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x198], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x19c], edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1a0], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov dword [esp + 0x1a4], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x1a8], edx
mov eax, dword [eax + 0xc]
mov edi, 7
add esp, 0xc
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1b0], edi
call fcn.100023b0
push 0x3c
lea ecx, [esp + 0x190]
push 0
push ecx
mov byte [esp + 0x27], al
call sub.MSVCR100.dll_memset
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x198], edx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x19c], ecx
mov edx, dword [eax + 0x18]
mov eax, dword [ebx]
mov dword [esp + 0x1a0], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1a4], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x1a8], edx
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1b0], edi
jne 0x10003a81
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x18c]
call fcn.100023b0
test al, al
je 0x10003aa2
mov ecx, dword [esp + 0x38]
add ecx, 0xffffffd3
push 0xffff00ff
push ecx
mov ecx, dword [esp + 0x48]
add ecx, 0xffffffd8
mov esi, str._0_0_
call fcn.100012d0
add esp, 8
mov ebx, dword [ebx]
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov dword [eax], edx
mov ecx, dword [ebx + 8]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0xc]
mov dword [eax + 8], edx
mov edx, eax
inc dword [esp + 0x10]
add dword [esp + 0x50], 0x4c8
add edx, 0xc
mov dword [esp + 0x44], edx
cmp edx, 0x10faa5a0
jl 0x100034f0
jmp 0x10003af6
mov eax, dword [esp + 0x10]
mov dword [0x100091cc], eax
jmp 0x10003af6
call fcn.10002470
jmp 0x10003af6
fstp st(0)
fstp st(0)
cmp dword [0x10009674], 0
je 0x10003b2b
cmp dword [0x10faa3fc], 0
je 0x10003b60
cmp byte [0x100091b3], 0
jne 0x10003b60
call fcn.100027f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x340]
xor ecx, esp
call fcn.1000565a
mov esp, ebp
pop ebp
ret
cmp dword [0x10009664], 0
je 0x10003b65
cmp dword [0x10faa3fc], 0
je 0x10003b60
cmp byte [0x100091b3], 0
jne 0x10003b60
call fcn.10002520
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x340]
xor ecx, esp
call fcn.1000565a
mov esp, ebp
pop ebp
ret
call fcn.10002470
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000565a
mov esp, ebp
pop ebp
ret