Function at 0x10044500
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x19c
mov eax, dword [0x100db040]
xor eax, esp
mov dword [esp + 0x198], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
test ebx, ebx
je 0x10045661
cmp dword [ebp + 0x2c], 0
je 0x10045587
cvttss2si eax, dword [ebp + 0x18]
cvttss2si ecx, dword [ebp + 0x14]
push eax
mov eax, 0x799756
cvttss2si edx, dword [ebp + 0x10]
push ecx
cvttss2si esi, dword [ebp + 0xc]
push edx
push esi
call eax
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
add esp, 0x10
mov ecx, 0x936aac
mov esi, 0x92eb1a
test al, al
je 0x100446e2
mov al, byte [ebp + 0x1c]
cmp al, 1
je 0x10044586
cmp al, 2
jne 0x1004460e
push ebx
call ecx
mov ecx, dword [eax + 0x98]
jmp 0x1004458f
push ebx
call ecx
mov ecx, dword [eax + 0x94]
call esi
mov esi, eax
test esi, esi
js 0x1004460b
push 0x12
call edi
test ax, ax
jns 0x100445d9
push 0x11
call edi
test ax, ax
jns 0x100445d9
push 2
call edi
test ax, ax
jns 0x100445d9
cmp dword [0x855e4bc], 0
jne 0x100445d9
push esi
push dword [ebx + 4]
call fcn.1006a0e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.100a0150
mov esp, ebp
pop ebp
ret
push 2
call edi
test ax, ax
jns 0x1004460b
mov eax, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call eax
test ax, ax
je 0x1004460b
push esi
call fcn.10031090
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.100a0150
mov esp, ebp
pop ebp
ret
mov al, byte [ebp + 0x1c]
test al, al
jne 0x100446e2
push 0x12
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x100446e2
push 0x11
call edi
test ax, ax
jns 0x100446e2
push 2
call edi
test ax, ax
jns 0x100446e2
cmp dword [0x855e4bc], 0
jne 0x100446e2
movzx esi, byte [ebx + 0x51]
mov eax, 0x7fc95b
push 9
call eax
mov ecx, eax
mov eax, 0x7fb628
call eax
test al, al
jne 0x100446e2
push 7
mov eax, 0x7fc95b
call eax
mov ecx, eax
mov eax, 0x7fb628
call eax
test al, al
jne 0x100446e2
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0xdc]
mov eax, 0x927c78
call eax
test al, al
jne 0x100446e2
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0xa0]
mov eax, 0x927c78
call eax
test al, al
jne 0x100446e2
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0xb0]
mov eax, 0x927c78
call eax
test al, al
jne 0x100446e2
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0x9c]
mov eax, 0x927c78
call eax
test al, al
je 0x100445bb
mov eax, 0x936aac
call eax
mov esi, dword [ebp + 0x2c]
cmp dword [eax + 0x1f8], esi
jne 0x10045587
mov eax, 0x936aac
call eax
mov edx, 0x982371
mov ecx, dword [eax + 0xcc]
call edx
test eax, eax
jne 0x10045489
cmp byte [ebp + 0x20], 1
mov dword [0x10180bcc], eax
mov dword [0x10180c64], 0xffffffff
je 0x10044743
mov eax, 0x936aac
call eax
mov eax, dword [eax + 0x94]
cmp dword [eax + 0xac], 0
jne 0x10045587
mov eax, 0x936aac
call eax
mov eax, dword [eax + 0xc4]
mov dword [esp + 0x18], eax
cvttss2si eax, dword [ebp + 0x18]
push eax
cvttss2si eax, dword [ebp + 0x14]
push eax
cvttss2si eax, dword [ebp + 0x10]
push eax
cvttss2si eax, dword [ebp + 0xc]
push eax
mov eax, 0x799756
call eax
add esp, 0x10
test al, al
je 0x10044eca
cmp dword [0x102c4ea8], 1
jne 0x10044868
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x102c4eb0]
add ecx, dword [0x1021aec0]
cmp eax, ecx
jbe 0x10044868
push 2
call edi
test ax, ax
jns 0x10044868
push 0x10
call edi
test ax, ax
jns 0x10044868
push 0x59
lea eax, [esp + 0x144]
push 0
push eax
call fcn.100a23c0
add esp, 0xc
lea eax, [esp + 0x140]
push dword [0x7cf0f5]
push 0x59
push eax
call fcn.100a9652
add esp, 0xc
lea eax, [esp + 0x140]
mov ecx, 0x101888b0
push eax
push 0x47
call fcn.1003ad30
push eax
lea eax, [esp + 0x5e]
push eax
call fcn.10045cb0
mov ecx, dword [0x10643c08]
lea edi, [esp + 0xbb]
mov esi, ebx
add esp, 0xc
mov edx, 0xf3
movq xmm0, qword [ecx]
movq qword [esp + 0x4b], xmm0
mov ax, word [ecx + 8]
mov word [esp + 0x53], ax
mov al, byte [ecx + 0xa]
mov ecx, 0x23
mov byte [esp + 0x55], al
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x48]
mov word [esp + 0x48], 0xf3c1
mov byte [esp + 0x4a], 0x78
call fcn.10098a10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [0x1021aec0], eax
mov al, byte [ebp + 0x1c]
cmp al, 1
je 0x10044894
cmp al, 2
jne 0x10044d0c
push ebx
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0x98]
mov eax, 0x92eb1a
call eax
mov esi, eax
mov dword [esp + 0x1c], esi
jmp 0x100448af
push ebx
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0x94]
mov eax, 0x92eb1a
call eax
mov esi, eax
mov dword [esp + 0x1c], eax
test esi, esi
js 0x10044d09
mov eax, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x12
call eax
test ax, ax
jne 0x10044d09
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x10044d09
push 2
call edi
test ax, ax
jns 0x10044d09
cmp dword [0x855e4bc], 0
jne 0x10044d09
push 9
mov eax, 0x7fc95b
call eax
mov ecx, eax
mov edi, 0x7fb628
call edi
test al, al
jne 0x10044d09
push 7
mov eax, 0x7fc95b
call eax
mov ecx, eax
call edi
test al, al
jne 0x10044d09
push 8
mov eax, 0x7fc95b
call eax
mov ecx, eax
call edi
mov edi, 0x936aac
test al, al
jne 0x10045197
call edi
mov ecx, dword [eax + 0x100]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045197
call edi
mov ecx, dword [eax + 0xdc]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045197
call edi
mov ecx, dword [eax + 0xa0]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045197
call edi
mov ecx, dword [eax + 0xb0]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045197
call edi
mov ecx, dword [eax + 0x9c]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045197
push dword [ebx + 4]
mov eax, 0x917636
call eax
mov edx, 0x91850f
mov ecx, eax
call edx
mov ecx, dword [ebx + 4]
mov edx, eax
cmp ecx, 0x1c00
jl 0x100449dc
cmp ecx, 0x1c09
jle 0x10045197
cmp ecx, 0x1c14
je 0x10045197
cmp ecx, 0x1c23
jl 0x100449fc
cmp ecx, 0x1c28
jle 0x10045197
cmp ecx, 0x1c2e
jl 0x10044a10
cmp ecx, 0x1c32
jle 0x10045197
cmp ecx, 0x1c46
jl 0x10044a24
cmp ecx, 0x1c47
jle 0x10045197
cmp ecx, 0x1c48
jl 0x10044a38
cmp ecx, 0x1c4d
jle 0x10045197
cmp ecx, 0x1a3c
je 0x10045197
cmp ecx, 0x1c5e
je 0x10045197
cmp ecx, 0x1c55
jl 0x10044a64
cmp ecx, 0x1c57
jle 0x10045197
cmp ecx, 0x1c61
jl 0x10044a78
cmp ecx, 0x1c62
jle 0x10045197
cmp ecx, 0x1807
jl 0x10044a8c
cmp ecx, 0x1818
jle 0x10045197
cmp ecx, 0x1823
je 0x10045197
cmp ecx, 0x182c
jl 0x10044aac
cmp ecx, 0x1830
jle 0x10045197
cmp ecx, 0x1a1d
je 0x10045197
cmp ecx, 0x1a51
je 0x10045197
cmp ecx, 0x1a52
je 0x10045197
cmp ecx, 0x1c85
je 0x10045197
cmp ecx, 0x1c97
je 0x10045197
cmp ecx, 0x1caa
je 0x10045197
cmp ecx, 0x1ce0
je 0x10045197
cmp ecx, 0x1e00
jge 0x10045197
cmp byte [ebp + 0x1c], 2
mov al, byte [edx + 0x234]
movzx ecx, al
mov dword [esp + 0x20], ecx
mov cl, byte [edx + 0x231]
mov byte [esp + 0x12], al
mov byte [esp + 0x28], al
mov byte [esp + 0x14], al
mov byte [esp + 0x30], al
mov byte [esp + 0x34], al
mov byte [esp + 0x13], cl
jne 0x10044bc3
cmp esi, 0xac
jl 0x10044b62
push 3
call edi
mov edx, 0x92e70a
mov ecx, dword [eax + 0x98]
call edx
add esi, 0xffffff54
jmp 0x10044bd7
cmp esi, 0x8c
jl 0x10044b83
push 2
call edi
mov edx, 0x92e70a
mov ecx, dword [eax + 0x98]
call edx
add esi, 0xffffff74
jmp 0x10044bd7
cmp esi, 0x6c
jl 0x10044b9e
push 1
call edi
mov edx, 0x92e70a
mov ecx, dword [eax + 0x98]
call edx
add esi, 0xffffff94
jmp 0x10044bd7
cmp esi, 0x4c
jl 0x10044bb9
push 0
call edi
mov edx, 0x92e70a
mov ecx, dword [eax + 0x98]
call edx
add esi, 0xffffffb4
jmp 0x10044bd7
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
jmp 0x10044be1
push 0
call edi
mov edx, 0x92e70a
mov ecx, dword [eax + 0x94]
call edx
add esi, 0xfffffff4
mov cl, byte [esp + 0x13]
mov edi, eax
mov al, byte [esp + 0x12]
cmp dword [esp + 0x20], 0xff
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], edi
je 0x10044d09
test al, al
jne 0x10044f8c
mov eax, dword [0x10643c08]
cmp dword [eax + 0x1244], 0xffffffff
jne 0x10044c4e
push esi
mov eax, 0x9cb0d1
mov ecx, edi
call eax
push dword [esp + 0x28]
push 0
push ebx
push dword [esp + 0x28]
push 0
mov eax, 0x5b2459
call eax
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov eax, 0x992ec6
call eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.100a0150
mov esp, ebp
pop ebp
ret
test cl, cl
jne 0x10044d09
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x439877
call eax
add esp, 4
test al, al
je 0x10044cd8
mov eax, dword [0x10643c08]
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x439877
call eax
add esp, 4
cmp al, 6
je 0x10044cd8
mov eax, dword [0x10643c08]
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x439877
call eax
add esp, 4
cmp al, 4
je 0x10044cd8
mov eax, dword [0x10643c08]
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x439877
call eax
add esp, 4
cmp al, 5
je 0x10044cd8
mov eax, dword [0x10643c08]
cmp dword [eax + 0x12d0], 0xffffffff
jne 0x10044cdd
push esi
mov eax, 0x9cb0d1
mov ecx, edi
call eax
mov al, byte [esp + 0x12]
inc al
movzx eax, al
push eax
jmp 0x10044c1b
mov eax, dword [0x10643c08]
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x439877
call eax
add esp, 4
cmp al, 6
jne 0x10044d09
mov eax, dword [0x10643c08]
cmp dword [eax + 0x12d0], 0xffffffff
jne 0x10044d09
mov eax, dword [ebx + 4]
sub eax, 0x20
cmp eax, 3
jbe 0x10044cbf
mov al, byte [ebp + 0x1c]
mov edi, 0x936aac
test al, al
jne 0x10044ec7
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x12
call esi
test ax, ax
jne 0x10044ec7
push 0x12
call esi
test ax, ax
jne 0x10044ec7
push 0x10
call esi
test ax, ax
jne 0x10044ec7
call edi
mov ecx, dword [eax + 0xcc]
mov eax, 0x982371
call eax
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
test eax, eax
jne 0x1004519f
push 1
call esi
test ax, ax
jns 0x1004519f
cmp dword [0x855e4bc], 0
jne 0x1004519f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1021aec4]
add ecx, 0x12c
cmp eax, ecx
jbe 0x10044ec7
movzx esi, byte [ebx + 0x51]
lea eax, [esi - 0xed]
cmp eax, 9
ja 0x10044ec7
lea eax, [esp + 0x14]
mov dword [esp + 0x14], esi
push eax
lea eax, [esp + 0x3c]
mov ecx, 0x1086aa90
push eax
call fcn.10042020
mov eax, dword [esp + 0x40]
mov edx, dword [0x1086aa90]
cmp byte [eax + 0xd], 0
jne 0x10044dd7
cmp esi, dword [eax + 0x10]
jge 0x10044dd9
mov eax, edx
xor edi, edi
lea ecx, [eax + 0x14]
cmp eax, edx
cmovne edi, ecx
test edi, edi
je 0x10044ec7
mov eax, 0x936aac
call eax
mov eax, dword [eax + 0xcc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x10044ec7
mov ecx, eax
mov eax, 0x982371
call eax
test eax, eax
jne 0x10044ec7
cmp dword [edi + 6], eax
jl 0x10044ec7
mov ecx, dword [esp + 0x14]
lea eax, [edi + 2]
push eax
push 0
mov eax, 0x981fc2
call eax
test al, al
je 0x10044ec7
lea eax, [esp + 0x14]
mov dword [esp + 0x14], esi
push eax
lea eax, [esp + 0x3c]
mov ecx, 0x1086aa90
push eax
call fcn.10042020
mov edi, dword [esp + 0x40]
mov eax, dword [0x1086aa90]
cmp byte [edi + 0xd], 0
jne 0x10044e63
cmp esi, dword [edi + 0x10]
jge 0x10044e65
mov edi, eax
cmp edi, eax
je 0x10044eb1
mov ecx, dword [0x7f05cac]
test ecx, ecx
je 0x10044ead
cmp esi, 0xed
jl 0x10044ead
cmp esi, 0xf7
jge 0x10044ead
lea eax, [esi + esi*8]
cmp dword [eax*4 + 0x10868958], 0
je 0x10044ead
cmp dword [eax*4 + 0x1086895c], 1
jne 0x10044ead
sub esp, 8
lea eax, [esi + esi*2]
push ecx
lea ecx, [eax*4 + 0x106b90c4]
call fcn.10042e20
mov byte [edi + 0x14], 0
mov ecx, dword [esp + 0x18]
mov eax, 0x992ec6
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1021aec4], eax
mov esi, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x18]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045587
cvttss2si eax, dword [ebp + 0x18]
push eax
cvttss2si eax, dword [ebp + 0x14]
push eax
cvttss2si eax, dword [ebp + 0x10]
push eax
cvttss2si eax, dword [ebp + 0xc]
push eax
mov eax, 0x799756
call eax
add esp, 0x10
test al, al
je 0x10045587
cmp byte [ebp + 0x24], 0
jne 0x10045587
movsx edi, byte [ebp + 0x1c]
mov eax, 0x50770e
push edi
push ebx
call eax
add esp, 8
lea eax, [esp + 0x38]
push eax
cvttss2si eax, dword [ebp + 0x18]
push eax
cvttss2si eax, dword [ebp + 0x14]
push eax
cvttss2si eax, dword [ebp + 0x10]
push eax
cvttss2si eax, dword [ebp + 0xc]
push eax
mov eax, 0x9922bb
call eax
push 0xc
mov eax, 0x519dd9
mov ecx, ebx
call eax
test al, al
je 0x100453cc
push 0
mov eax, 0x519e1b
mov ecx, ebx
call eax
test al, al
jne 0x100453cc
push edi
push ebx
lea eax, [esp + 0x40]
push eax
push esi
mov eax, 0x936aac
call eax
mov edx, 0x99cfcb
mov ecx, dword [eax + 0xc8]
call edx
jmp 0x10045587
cmp al, 0xa
jne 0x10045019
mov ecx, dword [0x10643c08]
mov eax, dword [ecx + 0x17bc]
movzx edx, ax
cmp eax, 0xffffffff
jne 0x10044fe4
movzx eax, word [ecx + 0x1848]
mov esi, 0x4e9f6a
push eax
push 0xffffffffffffffff
call esi
cmp al, 1
jne 0x10044fce
movzx eax, word [ebx + 4]
push 0
push eax
call esi
cmp al, 1
je 0x10045661
push dword [esp + 0x24]
mov eax, 0x9cb0d1
mov ecx, edi
call eax
push dword [esp + 0x34]
jmp 0x10044c1b
cmp dword [ecx + 0x1848], 0xffffffff
jne 0x10044d09
push 0xffffffffffffffff
push edx
mov esi, 0x4e9f6a
call esi
cmp al, 1
jne 0x10045010
movzx eax, word [ebx + 4]
push 0
push eax
call esi
cmp al, 1
je 0x10045661
push dword [esp + 0x24]
jmp 0x10044cc0
mov edx, dword [0x1086ac04]
test edx, edx
jne 0x100450a8
cmp al, 0xec
ja 0x100450a8
cmp al, 0xb
ja 0x1004505d
imul ecx, dword [esp + 0x20], 0x8c
mov eax, dword [0x10643c08]
cmp dword [ecx + eax + 0x1244], 0xffffffff
jne 0x10044d09
push esi
mov eax, 0x9cb0d1
mov ecx, edi
call eax
push dword [esp + 0x30]
jmp 0x10044c1b
cmp al, 0xec
jne 0x10044d09
mov eax, dword [0x10643c08]
cmp dword [eax + 0x18d4], 0xffffffff
jne 0x10044d09
push esi
mov eax, 0x9cb0d1
mov ecx, edi
call eax
push dword [esp + 0x14]
push 0
push ebx
push dword [esp + 0x28]
mov eax, 0x5b2459
push 0
call eax
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov eax, 0x992ec6
call eax
jmp 0x10044d09
mov ecx, dword [esp + 0x20]
cmp ecx, 0xed
jb 0x10044d09
cmp al, 0xf7
jae 0x10044d09
lea eax, [ecx + ecx*8]
cmp dword [eax*4 + 0x10868958], 0
je 0x10044d09
cmp edx, dword [eax*4 + 0x10868964]
jne 0x10044d09
mov edi, dword [0x1086aa90]
mov ecx, 0xed
mov dword [esp + 0x28], ecx
mov esi, 0x1086aab8
lea eax, [ecx - 0xed]
test eax, eax
js 0x1004515c
cmp eax, 0xa
jge 0x1004515c
cmp dword [esi - 0xc], 0
je 0x1004515c
cmp edx, dword [esi]
jne 0x1004515c
mov eax, dword [esp + 0x20]
cmp dword [esi - 4], eax
jne 0x1004515c
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ecx
push eax
lea eax, [esp + 0x3c]
mov ecx, 0x1086aa90
push eax
call fcn.10042020
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmp byte [eax + 0xd], 0
jne 0x1004513f
cmp ecx, dword [eax + 0x10]
jge 0x10045141
mov eax, edi
cmp eax, edi
je 0x10045171
cmp byte [eax + 0x14], 0
je 0x10045171
add eax, 0x16
je 0x10045171
cmp dword [eax + 4], 0xffffffff
je 0x10045171
mov edx, dword [0x1086ac04]
inc ecx
add esi, 0x24
mov dword [esp + 0x28], ecx
cmp esi, 0x1086ac20
jl 0x100450f2
jmp 0x10044d09
mov al, cl
mov dword [esp + 0x14], eax
cmp al, 0xff
je 0x10044d09
push dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, 0x9cb0d1
call eax
push dword [esp + 0x14]
jmp 0x10045085
mov al, byte [ebp + 0x1c]
jmp 0x10044d11
push 2
call esi
test ax, ax
jns 0x10044ec7
cmp dword [0x855e4bc], 0
jne 0x10044ec7
cmp dword [0x118edf8], 0xa
je 0x10045661
mov al, byte [ebx + 0x51]
mov byte [esp + 0x30], al
mov byte [esp + 0x14], al
movzx esi, al
mov eax, 0x7fc95b
push 9
call eax
mov ecx, eax
mov eax, 0x7fb628
call eax
test al, al
jne 0x10044ec7
push 7
mov eax, 0x7fc95b
call eax
mov ecx, eax
mov eax, 0x7fb628
call eax
test al, al
jne 0x10044ec7
call edi
mov ecx, dword [eax + 0xdc]
mov eax, 0x927c78
call eax
test al, al
jne 0x10044ec7
call edi
mov ecx, dword [eax + 0xa0]
mov eax, 0x927c78
call eax
test al, al
jne 0x10044ec7
call edi
mov ecx, dword [eax + 0xb0]
mov eax, 0x927c78
call eax
test al, al
jne 0x10044ec7
call edi
mov ecx, dword [eax + 0x9c]
mov eax, 0x927c78
call eax
test al, al
jne 0x10044ec7
mov eax, 0x9150df
mov ecx, ebx
call eax
mov ecx, ebx
movzx edi, byte [eax + 0x238]
mov eax, 0x9150df
call eax
movzx eax, byte [eax + 0x239]
mov dword [esp + 0x28], eax
mov eax, 0x936aac
call eax
push dword [esp + 0x28]
push edi
mov ecx, dword [eax + 0x94]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
jne 0x100452e0
mov eax, 0x936aac
call eax
push dword [esp + 0x28]
push edi
mov ecx, dword [eax + 0x98]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
call eax
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x10044ec7
add eax, 0x40
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x10044ec7
cmp esi, 0xed
jb 0x100453a1
cmp esi, 0xf7
jae 0x100453a1
lea eax, [esp + 0x14]
mov dword [esp + 0x14], esi
push eax
lea eax, [esp + 0x3c]
mov ecx, 0x1086aa90
push eax
call fcn.10042020
mov edi, dword [esp + 0x40]
mov eax, dword [0x1086aa90]
cmp byte [edi + 0xd], 0
jne 0x10045324
cmp esi, dword [edi + 0x10]
jge 0x10045326
mov edi, eax
cmp edi, eax
je 0x1004538b
mov byte [edi + 0x15], 0xff
mov ecx, dword [0x7f05cac]
test ecx, ecx
je 0x10045372
cmp esi, 0xed
jl 0x10045372
cmp esi, 0xf7
jge 0x10045372
lea eax, [esi + esi*8]
cmp dword [eax*4 + 0x10868958], 0
je 0x10045372
cmp dword [eax*4 + 0x1086895c], 1
jne 0x10045372
sub esp, 8
lea eax, [esi + esi*2]
push ecx
lea ecx, [eax*4 + 0x106b90c4]
call fcn.10042e20
push edi
mov ecx, 0x1086aa90
call fcn.10028b90
push 0xa4
push eax
call fcn.100a01e3
add esp, 8
mov eax, dword [esp + 0x20]
add al, 0xc
movzx eax, al
push eax
push 0
push ebx
push dword [esp + 0x3c]
jmp 0x10044c22
push esi
mov eax, 0x936aac
call eax
mov edx, 0x946404
mov ecx, dword [eax + 0x94]
call edx
mov eax, dword [esp + 0x20]
add al, 0xc
movzx eax, al
push eax
push 0
push ebx
push dword [esp + 0x20]
jmp 0x10044c22
mov eax, 0x936aac
call eax
mov esi, dword [eax + 0xc4]
cmp dword [esi + 8], 0
je 0x10045587
mov eax, 0x936aac
call eax
mov ecx, dword [eax + 0xc4]
mov eax, 0x927c78
call eax
test al, al
jne 0x10045587
mov eax, dword [ebp + 0x2c]
mov ecx, esi
mov dword [esi + 0x80], eax
lea eax, [esp + 0x38]
push eax
mov eax, 0x9922f4
mov byte [esi + 0x88], 1
mov dword [esi + 0x84], ebx
call eax
cmp byte [ebp + 0x20], 1
jne 0x10045448
push ebx
push dword [esi + 0x74]
mov ecx, 0x1028edf4
push dword [esi + 0x70]
call fcn.1007c090
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x3c]
call eax
jmp 0x10045587
mov eax, 0x99321b
call eax
test al, al
je 0x1004547b
movzx eax, byte [ebp + 0x28]
push 0
push edi
push eax
push ebx
push dword [esi + 0x74]
mov eax, 0x7fc95b
push dword [esi + 0x70]
call eax
mov edx, 0x7fcc22
mov ecx, eax
call edx
mov edx, 0x7cebbd
mov ecx, eax
call edx
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x3c]
call eax
jmp 0x10045587
cmp byte [ebp + 0x20], 1
mov edi, 0x936aac
je 0x100454a9
call edi
mov eax, dword [eax + 0x94]
cmp dword [eax + 0xac], 0
jne 0x10045587
cvttss2si eax, dword [ebp + 0x18]
push eax
cvttss2si eax, dword [ebp + 0x14]
push eax
cvttss2si eax, dword [ebp + 0x10]
push eax
cvttss2si eax, dword [ebp + 0xc]
push eax
mov eax, 0x799756
call eax
add esp, 0x10
test al, al
je 0x10045587
mov al, byte [ebp + 0x1c]
cmp al, 1
je 0x100454ed
cmp al, 2
jne 0x10045587
push ebx
call edi
mov ecx, dword [eax + 0x98]
jmp 0x100454f6
push ebx
call edi
mov ecx, dword [eax + 0x94]
mov eax, 0x92eb1a
call eax
mov esi, eax
cmp esi, dword [0x10180c64]
je 0x10045518
call edi
mov edx, 0x992ec6
mov ecx, dword [eax + 0xc4]
call edx
jmp 0x1004557d
cmp dword [0x10180bcc], 0
je 0x10045587
lea eax, [esp + 0x38]
push eax
push 0x20
push 0x18
push 0x8c
push dword [0x8b156ec]
mov eax, 0x9922bb
call eax
push 0
push 0
push 1
push dword [0x10180bcc]
lea eax, [esp + 0x48]
push eax
push 0
call edi
mov edx, 0x99232e
mov ecx, dword [eax + 0xc4]
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x10180c60]
cmp eax, 0x32
jbe 0x10045587
test esi, esi
jne 0x10045587
mov dword [0x10180c64], 0xffffffff
mov dword [0x10180bcc], 0
or esi, 0xffffffff
or edi, esi
cmp dword [ebx + 0x6c], 5
ja 0x100455b5
push 0
push dword [ebx + 4]
mov eax, 0x905968
call eax
mov edx, 0x90765c
mov ecx, eax
call edx
test eax, eax
je 0x100455b5
mov ecx, dword [ebx + 0x6c]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + ecx*4 + 0x14]
cmp dword [0x102c5070], 0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
movsx edx, byte [ebx + 0x21]
movsx ebx, byte [ebx + 0x20]
movss xmm0, dword [ebp + 0x18]
jne 0x10045623
push edi
push esi
mov esi, dword [ebp + 0x24]
push esi
push edx
push ebx
push eax
push ecx
sub esp, 0x10
mov eax, 0x5c5c08
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp + 0x14]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp + 0x10]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp + 0xc]
movss dword [esp], xmm0
call eax
add esp, 0x2c
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.100a0150
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x30]
push edi
push esi
mov esi, dword [ebp + 0x24]
push esi
push edx
push ebx
push eax
push ecx
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp + 0x14]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp + 0x10]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp + 0xc]
movss dword [esp], xmm0
call fcn.10077310
add esp, 0x30
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100a0150
mov esp, ebp
pop ebp
ret