Function at 0x5388ca
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x134]
cmp dword [eax + 0x86c], 0
je 0x538936
mov ecx, dword [0x9362cc]
mov edx, dword [ecx]
mov ecx, dword [0x9362cc]
call dword [edx + 8]
mov ecx, dword [ebp - 0x134]
sub eax, dword [ecx + 0x86c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x7d0
jbe 0x538928
mov edx, dword [ebp - 0x134]
mov dword [edx + 0x86c], 0
mov dword [ebp + 8], 0
xor eax, eax
jmp 0x539790
cmp dword [ebp + 8], 0
jne 0x538943
xor eax, eax
jmp 0x539790
mov eax, dword [ebp + 8]
cmp dword [eax + 0x200], 0x2c
jne 0x538968
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + 0x204]
cmp edx, 0xdb
jne 0x538968
xor eax, eax
jmp 0x539790
mov eax, dword [ebp - 0x134]
movsx ecx, byte [eax + 0x77e]
test ecx, ecx
je 0x53899b
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x77e]
mov ecx, dword [ebp - 0x134]
movsx edx, byte [ecx + 0x77e]
cmp eax, edx
jne 0x53899b
xor eax, eax
jmp 0x539790
mov eax, dword [0x684bb0]
cmp dword [eax + 0x24], 0x7530
je 0x5389ba
mov dword [0x5d805c], 0
xor eax, eax
jmp 0x539790
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + 0x1f9]
cmp edx, 1
jne 0x5389d0
xor eax, eax
jmp 0x539790
mov eax, dword [ebp + 8]
movsx ecx, byte [eax + 0x764]
cmp ecx, 1
jne 0x5389e6
xor eax, eax
jmp 0x539790
mov edx, dword [ebp - 0x134]
cmp dword [edx + 0x1c8], 0
je 0x5389fc
xor eax, eax
jmp 0x539790
cmp dword [ebp + 8], 0
jne 0x538a09
xor eax, eax
jmp 0x539790
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
jb 0x538a2a
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x20], 0x3e8
jae 0x538a2a
mov dword [ebp - 0x138], 1
jmp 0x538a34
mov dword [ebp - 0x138], 0
cmp dword [ebp - 0x138], 1
jne 0x538a44
xor eax, eax
jmp 0x539790
mov ecx, dword [ebp + 8]
call fcn.0051e99d
test eax, eax
je 0x538a57
xor eax, eax
jmp 0x539790
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x1fd]
cmp eax, 1
jne 0x538a6d
xor eax, eax
jmp 0x539790
mov ecx, dword [ebp - 0x134]
xor edx, edx
mov dl, byte [ecx + 0x3fe]
and edx, 0xf
cmp edx, 0xf
jne 0x538acf
mov eax, dword [0x684bb0]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x134]
movsx eax, byte [edx + 0x77e]
test eax, eax
jle 0x538acf
mov ecx, dword [ebp - 0x34]
movsx edx, byte [ecx + 0x77e]
test edx, edx
jle 0x538acf
mov eax, dword [ebp - 0x134]
movsx ecx, byte [eax + 0x77e]
mov edx, dword [ebp - 0x34]
movsx eax, byte [edx + 0x77e]
cmp ecx, eax
jne 0x538acf
xor eax, eax
jmp 0x539790
mov ecx, dword [0x684bb0]
mov dword [ebp - 0x1c], ecx
mov edx, dword [0x9362cc]
mov eax, dword [edx]
mov ecx, dword [0x9362cc]
call dword [eax + 8]
mov dword [ebp - 4], eax
mov ecx, dword [0x13c1aac]
add ecx, 0x6ec
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x24], 0
je 0x538b21
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x2dc]
and eax, 0x20000000
test eax, eax
je 0x538b21
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x27440]
add edx, 0x3e8
cmp dword [ebp - 4], edx
jae 0x538b3c
xor eax, eax
jmp 0x539790
mov eax, dword [ebp - 0x134]
fld dword [eax + 0x28]
call fcn.00599ab0
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x134]
fld dword [ecx + 0x2c]
call fcn.00599ab0
mov dword [ebp - 0x30], eax
mov edx, dword [ebp + 8]
fld dword [edx + 0x28]
call fcn.00599ab0
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
fld dword [eax + 0x2c]
call fcn.00599ab0
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.00560b76
add esp, 0x10
mov dword [ebp - 0x2c], eax
push 0x1b
mov edx, dword [0x13c1aac]
add edx, 0x6ec
push edx
call fcn.00558ff0
add esp, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
push 8
mov eax, dword [ebp - 0x1c]
add eax, 0x94
push eax
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.00560bec
add esp, 0x18
mov dword [ebp - 0x18], 3
mov edx, dword [ebp - 0x134]
movsx eax, byte [edx + 0x76a]
test eax, eax
je 0x538bf4
mov dword [ebp - 0x18], 3
mov ecx, dword [0x93677c]
add ecx, 1
mov dword [0x93677c], ecx
mov eax, dword [0x93677c]
cdq
idiv dword [ebp - 0x18]
mov dword [0x93677c], edx
cmp dword [ebp - 0x2c], 0
jl 0x538c1e
cmp dword [ebp - 0x2c], 0xf
jle 0x538c25
xor eax, eax
jmp 0x539790
cmp dword [ebp - 8], 0
je 0x538c31
cmp dword [ebp - 0xc], 0
jne 0x538c38
xor eax, eax
jmp 0x539790
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x28]
jg 0x5395f0
mov eax, dword [ebp + 8]
fld dword [eax + 0x28]
call fcn.00599ab0
cmp dword [ebp - 8], eax
jne 0x5395f0
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x2c]
call fcn.00599ab0
cmp dword [ebp - 0xc], eax
jne 0x5395f0
mov edx, dword [ebp - 0x134]
fld dword [edx + 0x28]
call fcn.00599ab0
mov ecx, dword [ebp - 0x134]
cmp dword [ecx + 0x438], eax
jne 0x5395f0
mov edx, dword [ebp - 0x134]
fld dword [edx + 0x2c]
call fcn.00599ab0
mov ecx, dword [ebp - 0x134]
cmp dword [ecx + 0x43c], eax
jne 0x5395f0
push 0x60
push 0
lea edx, [ebp - 0x100]
push edx
call fcn.005998e0
add esp, 0xc
mov word [ebp - 0xfc], 0x39d
mov eax, dword [ebp - 0x134]
mov cx, word [eax + 0x20]
mov word [ebp - 0xfa], cx
mov edx, dword [ebp - 0x134]
mov ax, word [edx + 0x20]
mov word [ebp - 0xf4], ax
mov ecx, dword [ebp - 0x134]
fld dword [ecx + 0x28]
call fcn.00599ab0
mov word [ebp - 0xf0], ax
mov edx, dword [ebp - 0x134]
fld dword [edx + 0x2c]
call fcn.00599ab0
mov word [ebp - 0xee], ax
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x287c4], 0
je 0x538d42
mov ecx, dword [ebp - 0x1c]
mov dx, word [ecx + 0x287c4]
mov word [ebp - 0xf0], dx
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 0x287c8]
mov word [ebp - 0xee], cx
mov word [ebp - 0xe6], 0xffff
mov word [ebp - 0xe8], 0xffff
mov byte [ebp - 0xe3], 0
mov edx, dword [0x93677c]
add edx, 4
mov byte [ebp - 0xe4], dl
push 0x15
mov eax, dword [ebp - 0x24]
add eax, 0x8c
push eax
call fcn.00556f5b
add esp, 8
cmp eax, 0x65
jne 0x538d90
mov word [ebp - 0xe8], 0x97
jmp 0x53908d
push 0x15
mov ecx, dword [ebp - 0x24]
add ecx, 0x8c
push ecx
call fcn.00556f5b
add esp, 8
cmp eax, 0x66
jne 0x538e05
mov word [ebp - 0xe8], 0x98
mov edx, dword [ebp - 0x24]
movsx eax, word [edx + 0x8c]
imul eax, eax, 0x8c
movsx ecx, word [eax + 0xd4e268]
cmp ecx, 0x367
jne 0x538dda
mov byte [ebp - 0xe3], 0
jmp 0x538e00
mov edx, dword [ebp - 0x24]
movsx eax, word [edx + 0x8c]
imul eax, eax, 0x8c
movsx ecx, word [eax + 0xd4e268]
cmp ecx, 0x368
jne 0x538e00
mov byte [ebp - 0xe3], 1
jmp 0x53908d
push 0x15
mov edx, dword [ebp - 0x24]
add edx, 0x8c
push edx
call fcn.00556f5b
add esp, 8
cmp eax, 0x67
jne 0x539020
mov word [ebp - 0xe8], 0x99
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x369
jne 0x538e56
mov byte [ebp - 0xe3], 0
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x36a
jne 0x538e81
mov byte [ebp - 0xe3], 1
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x36b
jne 0x538eac
mov byte [ebp - 0xe3], 2
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x36c
jne 0x538ed7
mov byte [ebp - 0xe3], 3
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x36d
jne 0x538f02
mov byte [ebp - 0xe3], 4
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x37c
jne 0x538f2d
mov byte [ebp - 0xe3], 5
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x38b
jne 0x538f58
mov byte [ebp - 0xe3], 6
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x38c
jne 0x538f83
mov byte [ebp - 0xe3], 7
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x38d
jne 0x538fab
mov byte [ebp - 0xe3], 8
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x25
jne 0x538fd0
mov byte [ebp - 0xe3], 9
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0x2ff
jne 0x538ff8
mov byte [ebp - 0xe3], 0xa
jmp 0x53901e
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0x8c]
imul ecx, ecx, 0x8c
movsx edx, word [ecx + 0xd4e268]
cmp edx, 0xafe
jne 0x53901e
mov byte [ebp - 0xe3], 0xb
jmp 0x53908d
push 0x15
mov eax, dword [ebp - 0x24]
add eax, 0x8c
push eax
call fcn.00556f5b
add esp, 8
cmp eax, 0x68
jne 0x53908d
mov word [ebp - 0xe8], 0x68
mov ecx, dword [ebp - 0x24]
movsx edx, word [ecx + 0x8c]
imul edx, edx, 0x8c
movsx eax, word [edx + 0xd4e268]
cmp eax, 0x36e
jne 0x539068
mov byte [ebp - 0xe3], 0
jmp 0x53908d
mov ecx, dword [ebp - 0x24]
movsx edx, word [ecx + 0x8c]
imul edx, edx, 0x8c
movsx eax, word [edx + 0xd4e268]
cmp eax, 0x36f
jne 0x53908d
mov byte [ebp - 0xe3], 1
mov ecx, dword [ebp + 8]
mov dx, word [ecx + 0x20]
mov word [ebp - 0xd4], dx
mov eax, dword [ebp - 0xd4]
and eax, 0xffff
push eax
mov ecx, dword [0x13c1aac]
mov edx, dword [ecx]
mov ecx, dword [0x13c1aac]
call dword [edx + 0x34]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x5390c8
xor eax, eax
jmp 0x539790
mov eax, dword [0x13c1aac]
xor ecx, ecx
mov cl, byte [eax + 0x9d2]
mov dword [ebp - 0xa0], ecx
mov word [ebp - 0xd2], 0xfffe
mov dx, word [0x5d8078]
mov word [ebp - 0xf2], dx
lea eax, [ebp - 0xe1]
push eax
push 0x5d8078
push 0
mov ecx, dword [0x13c1aac]
add ecx, 0x6ec
push ecx
call fcn.0055fed6
add esp, 0x10
mov edx, dword [ebp - 0x3c]
fld dword [edx + 0x28]
call fcn.00599ab0
mov word [ebp - 0xec], ax
mov eax, dword [ebp - 0x3c]
fld dword [eax + 0x2c]
call fcn.00599ab0
mov word [ebp - 0xea], ax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x38], 0x60
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov dl, byte [ecx + 0x14]
cmp edx, 3
jne 0x539177
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x2dc]
and ecx, 0x200000
test ecx, ecx
je 0x539177
mov word [ebp - 0xfc], 0x39e
mov dword [ebp - 0x38], 0x34
mov edx, dword [ebp - 0x24]
xor eax, eax
mov al, byte [edx + 0x14]
cmp eax, 3
jne 0x539569
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x2dc]
and edx, 0x40
test edx, edx
je 0x539569
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ebp - 0x3c]
fld dword [edx + 0x28]
fsub dword [ecx + 0x28]
call fcn.00599ab0
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ebp - 0x3c]
fld dword [edx + 0x2c]
fsub dword [ecx + 0x2c]
call fcn.00599ab0
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x104], 0
jle 0x5391e5
mov dword [ebp - 0x104], 1
jmp 0x5391f8
cmp dword [ebp - 0x104], 0
jge 0x5391f8
mov dword [ebp - 0x104], 0xffffffff
cmp dword [ebp - 0x108], 0
jle 0x53920d
mov dword [ebp - 0x108], 1
jmp 0x539220
cmp dword [ebp - 0x108], 0
jge 0x539220
mov dword [ebp - 0x108], 0xffffffff
mov eax, dword [ebp - 0x3c]
fld dword [eax + 0x28]
call fcn.00599ab0
add eax, dword [ebp - 0x104]
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x3c]
fld dword [ecx + 0x2c]
call fcn.00599ab0
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10c]
cmp dword [edx + 0xc], 0
je 0x539524
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [eax + 0x4c]
je 0x539510
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0x3c]
je 0x539510
mov eax, dword [ebp - 0x10c]
fld dword [eax + 0x28]
call fcn.00599ab0
cmp eax, dword [ebp - 0x110]
jne 0x539510
mov ecx, dword [ebp - 0x10c]
fld dword [ecx + 0x2c]
call fcn.00599ab0
cmp eax, dword [ebp - 0x114]
jne 0x539510
mov edx, dword [ebp - 0x10c]
cmp dword [edx + 0x20], 0
jb 0x5392e9
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x20], 0x3e8
jae 0x5392e9
mov dword [ebp - 0x13c], 1
jmp 0x5392f3
mov dword [ebp - 0x13c], 0
cmp dword [ebp - 0x13c], 1
jne 0x53947d
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10c]
call dword [edx + 0x54]
test eax, eax
je 0x539327
mov eax, dword [ebp - 0x10c]
movsx ecx, byte [eax + 0x1fc]
cmp ecx, 1
jne 0x53933b
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x10c], eax
jmp 0x53925d
cmp dword [0x5d807c], 0
jne 0x53947b
cmp dword [0x5d8068], 0
jne 0x53938c
mov ecx, dword [0x13c1aac]
xor edx, edx
mov dx, word [ecx + 0xf10]
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov cx, word [eax + 0x648]
cmp edx, ecx
je 0x539387
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x10c], eax
jmp 0x53925d
jmp 0x53947b
mov ecx, dword [ebp - 0x134]
movsx edx, byte [ecx + 0x77e]
test edx, edx
jle 0x5393cf
mov eax, dword [ebp - 0x134]
movsx ecx, byte [eax + 0x77e]
mov edx, dword [ebp - 0x10c]
movsx eax, byte [edx + 0x77e]
cmp ecx, eax
jne 0x5393cf
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x10c], edx
jmp 0x53925d
mov eax, dword [ebp - 0x134]
movsx ecx, byte [eax + 0x77e]
cmp ecx, 3
jne 0x539452
mov edx, dword [ebp - 0x10c]
cmp dword [edx + 0x20], 0
jb 0x539408
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x20], 0x3e8
jae 0x539408
mov dword [ebp - 0x140], 1
jmp 0x539412
mov dword [ebp - 0x140], 0
cmp dword [ebp - 0x140], 0
jne 0x53943e
mov ecx, dword [ebp - 0x10c]
movsx edx, byte [ecx + 0x77e]
test edx, edx
jle 0x539452
mov eax, dword [ebp - 0x10c]
movsx ecx, byte [eax + 0x77e]
cmp ecx, 4
je 0x539452
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x10c], eax
jmp 0x53925d
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10c]
call dword [edx + 0x58]
test eax, eax
jne 0x53947b
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x10c], ecx
jmp 0x53925d
jmp 0x5394f4
cmp dword [0x5d807c], 0
jne 0x5394f4
mov edx, dword [ebp - 0x10c]
movsx eax, byte [edx + 0x1fd]
cmp eax, 1
jne 0x5394f4
mov ecx, dword [0x13c1aac]
xor edx, edx
mov dx, word [ecx + 0xf10]
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov cx, word [eax + 0x648]
cmp edx, ecx
je 0x5394cd
mov edx, dword [ebp - 0x10c]
xor eax, eax
mov ax, word [edx + 0x648]
test eax, eax
jne 0x5394e0
mov ecx, dword [ebp - 0x10c]
xor edx, edx
mov dx, word [ecx + 0x648]
test edx, edx
jne 0x5394f4
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x10c], ecx
jmp 0x53925d
mov edx, dword [ebp - 0x10c]
mov ax, word [edx + 0x20]
mov word [ebp - 0xd0], ax
mov word [ebp - 0xce], 0xfffe
jmp 0x539524
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x10c], edx
jmp 0x53925d
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x2dc]
and ecx, 0x200000
cmp ecx, 0x200000
je 0x539559
movsx edx, word [ebp - 0xce]
cmp edx, 0xfffffffe
je 0x539559
mov word [ebp - 0xfc], 0x39d
mov dword [ebp - 0x38], 0x30
jmp 0x539569
mov word [ebp - 0xfc], 0x39e
mov dword [ebp - 0x38], 0x34
mov eax, dword [ebp - 0x38]
push eax
lea ecx, [ebp - 0x100]
push ecx
call fcn.00569b76
add esp, 8
mov edx, dword [ebp - 0x38]
push edx
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x9c]
push ecx
call fcn.00599ae0
add esp, 0xc
mov edx, dword [ebp - 0x1c]
mov ax, word [edx + 0x20]
mov word [ebp - 0x96], ax
mov byte [ebp - 0x7e], 1
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x2dc]
and edx, 0x20000000
test edx, edx
je 0x5395c3
mov al, byte [ebp - 0x7d]
or al, 4
mov byte [ebp - 0x7d], al
lea ecx, [ebp - 0x9c]
push ecx
push 0x39d
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1c]
call dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov dword [ecx + 0x27440], edx
mov eax, 1
jmp 0x539790
cmp dword [ebp + 0xc], 0
jne 0x5395fd
xor eax, eax
jmp 0x539790
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x120], ax
mov eax, dword [ebp - 0x120]
and eax, 0xffff
sar eax, 8
test eax, eax
jle 0x539625
xor eax, eax
jmp 0x539790
mov ecx, dword [ebp - 0x134]
fld dword [ecx + 0x28]
call fcn.00599ab0
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x134]
fld dword [edx + 0x2c]
call fcn.00599ab0
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 8]
fld dword [eax + 0x28]
call fcn.00599ab0
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x2c]
call fcn.00599ab0
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
call fcn.00560b76
add esp, 0x10
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x124], 1
mov dword [ebp - 0x128], 1
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 8]
jle 0x5396b3
mov dword [ebp - 0x124], 0xffffffff
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0xc]
jle 0x5396c5
mov dword [ebp - 0x128], 0xffffffff
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x118]
cmp edx, dword [ebp - 0x28]
jle 0x53974d
cmp dword [ebp - 0x11c], 0x1f4
jle 0x5396ed
xor eax, eax
jmp 0x539790
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 8]
je 0x53970a
mov ecx, dword [ebp - 0x12c]
add ecx, dword [ebp - 0x124]
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 0x130]
cmp edx, dword [ebp - 0xc]
je 0x539727
mov eax, dword [ebp - 0x130]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x130]
push eax
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.00560b76
add esp, 0x10
mov dword [ebp - 0x118], eax
jmp 0x5396cf
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x12c]
mov dword [edx + 0x27590], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x130]
mov dword [ecx + 0x27594], edx
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x27594]
push ecx
mov edx, dword [eax + 0x27590]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.005290e3
mov eax, 2
mov esp, ebp
pop ebp
ret 8