Function at 0x45f679
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x4c0c5b
call fcn.00483820
sub esp, 0x228
push ebx
mov ebx, ecx
or dword [ebp - 0x34], 0xffffffff
or dword [ebp - 0x30], 0xffffffff
mov eax, dword [ebx + 0xe0a]
push esi
mov dword [ebp - 0x7c], eax
push edi
lea eax, [ebp - 0x1a0]
xor edi, edi
push eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x60], edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
and byte [ebp - 0x18f], 0x7f
and byte [ebp - 0x190], 0x7f
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov eax, dword [ebx + 0xf9a]
mov ecx, dword [ebx + 0xf36]
mov eax, dword [ecx + eax*4]
push eax
mov dword [ebp - 0x78], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
mov ecx, ebx
mov dword [ebp - 0x28], eax
xor esi, esi
call fcn.0047b427
test eax, eax
je 0x45f738
push edi
mov ecx, ebx
call fcn.0047b427
mov ecx, eax
call fcn.004aeae9
mov esi, eax
cmp esi, edi
je 0x45f738
push 1
push dword [esi + 0x1c]
call fcn.0041419f
push edi
push dword [esi + 0x1c]
call fcn.0041419f
or dword [esi + 0x1d8], 0xffffffff
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], edi
cmp byte [eax], 0
je 0x4608a1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp dword [ebx + 0xf1a], 0
lea eax, [eax + eax*8]
lea edi, [ecx + eax*2]
je 0x45f8d4
push 1
push 0x209
push 0x200
lea eax, [ebp - 0xa0]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x45f820
mov ecx, dword [ebx + 0xf1a]
lea eax, [ebp - 0xa0]
push eax
call fcn.0049ad6b
mov eax, dword [ebp - 0x9c]
cmp eax, dword [0x4f530c]
jne 0x45f760
mov eax, dword [0x4eec8c]
mov dword [ebp - 0x18], eax
and dword [ebp - 4], 0
mov dword [ebp - 0x10], eax
push 0xd1
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.0049be1e
push 0xd2
lea ecx, [ebp - 0x10]
call fcn.0049be1e
push 1
mov ecx, ebx
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call fcn.004995e0
cmp eax, 1
je 0x45f801
and byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.0049b7ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0049b7ff
jmp 0x45f760
and byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x20], 1
call fcn.0049b7ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0049b7ff
mov eax, dword [0x4f530c]
push 1
push eax
push eax
lea eax, [ebp - 0xa0]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x45f8d4
mov eax, dword [0x4f530c]
cmp dword [ebp - 0x9c], eax
jne 0x45f8ae
mov eax, dword [0x4eec8c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], eax
push 0xd1
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.0049be1e
push 0xd2
lea ecx, [ebp - 0x18]
call fcn.0049be1e
push 1
mov ecx, ebx
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.004995e0
cmp eax, 1
je 0x45f8b5
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.0049b7ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0049b7ff
mov eax, dword [0x4f530c]
push 1
jmp 0x45f827
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x20], 1
mov byte [ebp - 4], 2
call fcn.0049b7ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0049b7ff
cmp dword [ebp - 0x20], 0
jne 0x4608a1
cmp dword [ebp - 0x60], 0
jne 0x4608a1
movzx eax, byte [edi]
lea ecx, [eax - 1]
cmp ecx, 0x82
ja case.0x45f901.17
movzx ecx, byte [ecx + 0x460a71]
jmp dword [ecx*4 + 0x46093d]
test esi, esi
je case.0x45f901.6
mov ax, word [edi + 2]
mov cx, word [edi + 6]
cmp dword [edi + 6], 0xffffffff
mov dword [ebp - 0x10], eax
mov word [ebp - 0x24], cx
jne 0x45f932
push eax
mov ecx, esi
call fcn.00445ce6
jmp case.0x45f901.6
cmp ax, 0x11
jne 0x45f96f
cmp dword [ebp - 0x14], 0
jle 0x45f94e
cmp byte [edi - 0x12], 0x4b
jne 0x45f94e
cmp dword [edi - 0x10], 0x11
je case.0x45f901.6
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
or byte [ebp - 0x18f], 0x80
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
cmp word [ebp - 0x10], 0x10
jne 0x45f98c
cmp dword [ebp - 0x14], 0
jle 0x45f98c
cmp byte [edi - 0x12], 0x4b
jne 0x45f98c
cmp dword [edi - 0x10], 0x10
je case.0x45f901.6
push 0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_ValidateRect]
movzx eax, word [ebp - 0x24]
shl eax, 0x10
inc eax
push eax
movzx eax, word [ebp - 0x10]
push eax
push 0x100
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x2c], 0
je case.0x45f901.6
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x80]
push eax
push 0xb0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0xbc]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x84]
add ecx, eax
add edx, eax
cmp dword [ebp - 0x38], ecx
je 0x45f9f8
cmp dword [ebp - 0x38], edx
je 0x45f9fa
cmp dword [ebp - 0x38], ecx
jg 0x45f9fa
mov ecx, edx
cmp dword [ebx + 0xe2a], 0
je 0x45fa20
sub ecx, eax
jns 0x45fa0b
xor edx, edx
jmp 0x45fa0d
mov edx, ecx
mov ecx, dword [ebp - 0x38]
sub ecx, eax
jns 0x45fa18
xor eax, eax
jmp 0x45fa1a
mov eax, ecx
push edx
push eax
push 1
jmp 0x45fa3b
sub ecx, eax
jns 0x45fa28
xor edx, edx
jmp 0x45fa2a
mov edx, ecx
mov ecx, dword [ebp - 0x38]
sub ecx, eax
jns 0x45fa35
xor eax, eax
jmp 0x45fa37
mov eax, ecx
push edx
push eax
push 0
push dword [esi + 0x1c]
call fcn.004241df
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ax, word [edi + 2]
mov di, word [edi + 6]
cmp ax, 0x11
mov dword [ebp - 0x10], eax
jne 0x45fa82
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
and byte [ebp - 0x18f], 0x7f
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
movzx eax, di
shl eax, 0x10
inc eax
push eax
movzx eax, word [ebp - 0x10]
push eax
push 0x101
jmp 0x45fab5
and dword [ebp - 0x1c], 0
test esi, esi
je case.0x45f901.6
movzx eax, word [edi + 6]
shl eax, 0x10
inc eax
push eax
movzx eax, word [edi + 2]
push eax
push 0x102
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov eax, dword [edi + 0xa]
mov ecx, dword [edi + 0xe]
push eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 6]
and eax, 0x40
mov dword [esi + 0x174], eax
mov eax, dword [edi + 6]
and eax, 0x20
mov dword [esi + 0x178], eax
mov eax, dword [edi + 6]
and eax, 4
mov dword [esi + 0x17c], eax
mov eax, dword [edi + 6]
and eax, 8
mov dword [esi + 0x180], eax
mov eax, dword [edi + 6]
and eax, 2
mov dword [esi + 0x18c], eax
mov eax, dword [edi + 6]
and eax, 1
mov dword [esi + 0x190], eax
mov eax, dword [edi + 6]
and eax, 0x10
cmp dword [esi + 0x178], 0
mov dword [esi + 0x194], eax
je 0x45fb51
or dword [esi + 0x1d8], 0xffffffff
mov eax, dword [edi + 6]
mov ecx, 0x200
mov edx, eax
and edx, ecx
cmp edx, ecx
jne 0x45fb6d
mov dword [ebx + 0xe3e], 2
jmp 0x45fb8b
mov ecx, 0x100
and eax, ecx
cmp eax, ecx
jne 0x45fb84
mov dword [ebx + 0xe3e], 1
jmp 0x45fb8b
and dword [ebx + 0xe3e], 0
cmp dword [ebp - 0x1c], 0
je 0x45fbb3
cmp dword [esi + 0x178], 0
jne 0x45fbb3
push dword [ebp - 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
and dword [ebp - 0x1c], 0
call edi
push dword [ebp - 0x10]
call edi
jmp case.0x45f901.6
mov eax, dword [edi + 6]
push dword [ebp - 0x18]
and dword [ebp - 0x1c], 0
and eax, 0x80
lea ecx, [ebx + 0xe1a]
mov dword [esi + 0x188], eax
mov dword [ebp - 0x70], eax
call fcn.0049b93c
push dword [ebp - 0x48]
lea ecx, [ebx + 0xe1e]
call fcn.0049b93c
cmp dword [esi + 0x198], 0
je 0x45fc16
mov eax, dword [edi + 6]
and dword [ebp - 0x70], 0
test al, 0x40
je 0x45fc06
push 1
mov ecx, esi
call fcn.0044369e
jmp 0x45fcd9
and eax, 0x20
mov ecx, esi
push eax
call fcn.00443c95
jmp 0x45fcd9
cmp dword [esi + 0x178], 0
je 0x45fcc0
cmp dword [ebx + 0xe3e], 2
jne 0x45fcc0
push dword [ebp - 0x18]
lea ecx, [ebp - 0x50]
call fcn.0049b86d
push dword [ebp - 0x48]
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 4
call fcn.0049b86d
cmp dword [esi + 0x17c], 0
mov byte [ebp - 4], 5
je 0x45fc63
cmp dword [0x4ea828], 0
jne 0x45fc71
lea eax, [ebp - 0x50]
push eax
push dword [esi + 0x1c]
call fcn.0044e639
pop ecx
pop ecx
lea eax, [ebp - 0x58]
push eax
push dword [esi + 0x1c]
call fcn.0044e639
pop ecx
pop ecx
call fcn.004b563d
push dword [esi + 0x180]
mov eax, dword [eax + 4]
mov ecx, eax
push dword [esi + 0x17c]
push dword [esi + 0x18c]
push dword [ebp - 0x58]
push dword [ebp - 0x50]
call fcn.0040e564
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.0049b7ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.0049b7ff
jmp 0x45fcd9
mov edi, dword [edi + 6]
push 0
mov eax, edi
and edi, 1
and eax, 2
mov ecx, esi
push eax
push edi
push dword [ebp - 0x18]
call fcn.004425bd
xor ecx, ecx
cmp dword [esi + 0x184], ecx
mov dword [ebp - 0x44], ecx
je 0x45fd0e
mov edx, dword [ebx + 0xf9a]
mov edi, dword [ebx + 0xf72]
push 1
test byte [edi + edx*2], 0x40
pop eax
mov dword [ebp - 0x44], eax
je 0x45fd0b
cmp dword [esi + 0x178], ecx
jne 0x45fd16
mov dword [ebp - 0x1c], eax
jmp 0x45fd0e
mov dword [ebp - 0x20], eax
cmp dword [esi + 0x178], ecx
je 0x45fd1d
or dword [esi + 0x1d8], 0xffffffff
push dword [ebp - 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call edi
push dword [ebp - 0x10]
call edi
jmp 0x46088f
mov edi, dword [edi + 0xa]
and dword [ebp - 0x1c], 0
test edi, edi
je 0x45fda7
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp byte [eax], 0
jne 0x45fd58
call fcn.004b563d
mov ecx, dword [eax + 4]
call fcn.00409337
jmp 0x45fd9b
push eax
lea ecx, [ebp - 0x54]
call fcn.0049b86d
xor eax, eax
mov dword [ebp - 4], 6
test esi, esi
je 0x45fd71
mov eax, dword [esi + 0x1c]
lea ecx, [ebp - 0x54]
push ecx
push eax
call fcn.0044e639
pop ecx
pop ecx
call fcn.004b563d
mov eax, dword [eax + 4]
push dword [ebp - 0x54]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x7c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.0049b7ff
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x45fea1
call fcn.004b563d
mov ecx, dword [eax + 4]
call fcn.00409337
jmp 0x45fea1
test esi, esi
je case.0x45f901.6
mov eax, dword [0x4eec8c]
mov ebx, dword [edi + 0xa]
mov dword [ebp - 0x10], eax
test ebx, ebx
mov dword [ebp - 4], 7
je 0x45fe36
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
lea ecx, [ebp - 0x10]
push edi
call fcn.0049b93c
mov al, byte [edi]
test al, al
je 0x45fe26
cmp al, 0x20
jne 0x45fe0a
cmp byte [edi + 1], 0
jne 0x45fe0a
mov ecx, dword [esi + 0x3c]
call fcn.0042e173
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x45fe5d
mov eax, dword [esi + 0x1c]
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.0044e639
pop ecx
pop ecx
mov ecx, dword [esi + 0x3c]
push dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x78]
jmp 0x45fe01
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esi + 0x3c]
add eax, 0x20
push eax
jmp 0x45fe4a
mov ecx, dword [esi + 0x3c]
cmp dword [ecx + 0x7c], 0
je 0x45fe46
call fcn.0042de8d
jmp 0x45fe5d
add ecx, 0x20
push ecx
lea ecx, [ebp - 0x10]
call fcn.0049b8ec
mov ecx, dword [esi + 0x3c]
push dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x78]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0049b7ff
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x14], eax
lea eax, [eax + eax*8]
cmp byte [ecx + eax*2], 0
jmp 0x45f741
test esi, esi
je case.0x45f901.6
mov ecx, dword [esi + 0x3c]
call fcn.0042c9c6
jmp 0x45fea1
call fcn.004b563d
mov ecx, dword [eax + 4]
call fcn.0040dc5c
test esi, esi
je case.0x45f901.6
xor esi, esi
mov ecx, ebx
push esi
call fcn.0047b427
test eax, eax
je case.0x45f901.6
push esi
mov ecx, ebx
call fcn.0047b427
mov ecx, eax
call fcn.004aeae9
mov esi, eax
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00436f1d
mov ecx, esi
call fcn.0043698d
jmp 0x46040b
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00436f1d
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00436c2d
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x40]
push eax
push 0xb0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x14], 0
jle 0x45ff44
cmp byte [edi - 0x12], 0x46
jne 0x45ff44
test byte [edi - 0xc], 1
jne 0x45ff44
cmp dword [ebp - 0x70], 0
je 0x45ff44
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x5c]
push eax
push ecx
push 0
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x5c], eax
push dword [esi + 0x1c]
call fcn.004241df
cmp dword [ebx + 0xe2a], 0
je 0x45ff67
push 1
push dword [esi + 0x1c]
call fcn.004141df
push dword [ebp - 0x5c]
push dword [ebp - 0x40]
push 0
push dword [esi + 0x1c]
call fcn.004241df
mov eax, dword [esi + 0xbc]
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
jmp 0x4603ce
test esi, esi
je case.0x45f901.6
and dword [ebp - 0x2c], 0
push 0
push dword [esi + 0x1c]
call fcn.004141df
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.004408aa
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00440f6b
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00439d2b
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00439ada
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00440f61
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00438064
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
lea edi, [esi + 0x1a4]
mov ecx, esi
mov dword [edi], 1
call fcn.004380d3
jmp 0x460057
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00437fbb
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
lea edi, [esi + 0x1a4]
mov ecx, esi
mov dword [edi], 1
call fcn.004381f0
and dword [edi], 0
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov dword [ebx + 0xe0a], 1
jmp 0x460082
test esi, esi
je case.0x45f901.6
and dword [ebx + 0xe0a], 0
mov ecx, esi
call fcn.0043d33c
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
xor edi, edi
push edi
push edi
push 0x224
push dword [ebx + 0xbc]
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
mov ecx, ebx
call fcn.0047b427
mov ecx, eax
call fcn.004aeae9
mov esi, eax
cmp esi, edi
jmp 0x4600f1
test esi, esi
je case.0x45f901.6
push 1
push 0
push 0x224
push dword [ebx + 0xbc]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov ecx, ebx
call fcn.0047b427
mov ecx, eax
call fcn.004aeae9
mov esi, eax
test esi, esi
je case.0x45f901.6
push dword [ebx + 0xe2a]
mov ecx, esi
call fcn.0043d2d7
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
push 0
push 0
push dword [edi + 6]
mov ecx, esi
call fcn.0043c5e5
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043c438
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043e01d
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043bdd3
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043e10f
jmp case.0x45f901.6
mov eax, dword [ebx + 0xf9a]
xor ecx, ecx
cmp dword [ebx + 0xf8a], ecx
mov dword [ebp - 0x24], eax
jle case.0x45f901.6
mov edx, dword [edi + 6]
mov eax, dword [ebx + 0xf86]
movzx ebx, word [eax]
cmp edx, ebx
je 0x4601ae
mov ebx, dword [ebp - 0x3c]
inc ecx
inc eax
inc eax
cmp ecx, dword [ebx + 0xf8a]
jl 0x460194
jmp case.0x45f901.6
cmp edx, 0xffffffff
je 0x45fe69
mov ebx, dword [ebp - 0x3c]
xor esi, esi
mov dword [ebx + 0xf9a], ecx
cmp dword [edi + 2], esi
jle 0x4601dc
mov ecx, ebx
call fcn.0045f679
test eax, eax
je 0x4601d6
mov esi, dword [edi + 2]
inc esi
inc esi
cmp esi, dword [edi + 2]
jl 0x4601c7
xor esi, esi
mov ecx, ebx
push esi
call fcn.0047b427
test eax, eax
je 0x4601fb
push esi
mov ecx, ebx
call fcn.0047b427
mov ecx, eax
call fcn.004aeae9
mov esi, eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0xf9a], eax
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
cmp dword [esi + 0x198], 0
jne case.0x45f901.6
jmp 0x460235
test esi, esi
je case.0x45f901.6
cmp dword [esi + 0x198], 0
je case.0x45f901.6
mov ecx, esi
call fcn.00438a3e
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
cmp dword [esi + 0x198], 0
je case.0x45f901.6
push dword [edi + 6]
mov ecx, esi
push dword [edi + 2]
call fcn.0043b46c
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
push 0
jmp 0x46027e
test esi, esi
je case.0x45f901.6
push 1
push dword [edi + 2]
mov ecx, esi
push dword [edi + 6]
push 1
call fcn.0043b6d2
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
push dword [edi + 2]
mov ecx, esi
call fcn.00444942
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
test byte [edi + 6], 4
je 0x4602c2
push 1
pop eax
mov dword [ebx + 0xdea], eax
jmp 0x4602cc
and dword [ebx + 0xdea], 0
push 1
pop eax
test byte [edi + 6], 1
je 0x4602da
mov dword [ebx + 0xdf6], eax
jmp 0x4602e1
and dword [ebx + 0xdf6], 0
test byte [edi + 6], 2
je 0x4602ef
mov dword [ebx + 0xde6], eax
jmp 0x4602f6
and dword [ebx + 0xde6], 0
test byte [edi + 6], 8
je 0x460304
mov dword [ebx + 0xdee], eax
jmp 0x46030b
and dword [ebx + 0xdee], 0
mov eax, dword [edi + 2]
mov dword [ebx + 0xdf2], eax
mov ecx, dword [esi + 0x3c]
call fcn.0042d79a
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00445d60
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043df52
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
push eax
mov ecx, esi
call fcn.0043be95
jmp case.0x45f901.6
cmp dword [ebx + 0xe2a], 0
lea edi, [ebx + 0xe2a]
jne case.0x45f901.6
mov ecx, ebx
call fcn.0046645b
cmp dword [edi], 0
je 0x46089a
jmp case.0x45f901.6
cmp dword [ebx + 0xe2a], 0
lea edi, [ebx + 0xe2a]
je case.0x45f901.6
mov ecx, ebx
call fcn.0046645b
cmp dword [edi], 0
jne 0x46089a
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043e985
jmp 0x4603ce
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043dfe3
mov dword [ebp - 0x2c], 1
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ec02
jmp 0x46040b
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ec15
jmp 0x46040b
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ec43
and dword [ebp - 0x2c], 0
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, dword [esi + 0x3c]
call fcn.0042ce72
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, dword [esi + 0x3c]
call fcn.0042ce9f
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043bbab
jmp case.0x45f901.6
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x44], 0
jmp 0x460768
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x44], 0
jmp 0x460647
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ea32
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ea56
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.0043ea7a
jmp case.0x45f901.6
mov edi, dword [edi + 0xa]
and dword [ebp - 0x1c], 0
test edi, edi
mov dword [ebp - 0x48], edi
je 0x460888
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
call edi
cmp byte [eax], 0
mov dword [ebp - 0x24], eax
je 0x46055e
push dword [ebx + 0xf12]
call edi
or dword [ebp - 0x10], 0xffffffff
test eax, eax
je 0x46051b
and dword [ebp - 0x18], 0
lea edi, [eax + 0x410]
push dword [ebp - 0x24]
push edi
call fcn.00485390
pop ecx
test eax, eax
pop ecx
jne 0x4604fe
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x18]
add edi, 0x454
cmp dword [ebp - 0x18], 0xa
jl 0x4604e9
push dword [ebx + 0xf12]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x460522
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x10], 0xffffffff
je 0x460565
push dword [ebp - 0x10]
mov ecx, ebx
call fcn.00468483
call fcn.004b563d
mov eax, dword [eax + 4]
cmp dword [eax + 0x124], 0
je 0x460565
call fcn.004b563d
mov eax, dword [eax + 4]
push 0xffffffffffffffff
mov eax, dword [eax + 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x460565
mov dword [ebp - 0x20], 1
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x46088f
test esi, esi
je case.0x45f901.6
mov edi, dword [edi + 0xa]
and dword [ebp - 0x1c], 0
test edi, edi
je 0x46089a
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
push 0x803a
mov ecx, esi
call fcn.0043d914
jmp 0x4606f4
test esi, esi
je case.0x45f901.6
xor eax, eax
push eax
mov dword [ebp - 0x1c], eax
push dword [edi + 6]
push dword [edi + 2]
push eax
push 0x803f
jmp 0x4605f6
test esi, esi
je case.0x45f901.6
push dword [edi + 2]
xor eax, eax
mov dword [ebp - 0x1c], eax
push eax
push eax
push eax
push 0x803c
jmp 0x4605f6
test esi, esi
je case.0x45f901.6
push dword [edi + 2]
xor eax, eax
mov dword [ebp - 0x1c], eax
push eax
push eax
push eax
push 0x803e
mov ecx, esi
call fcn.0043d914
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, dword [esi + 0x3c]
and dword [ebp - 0x1c], 0
call fcn.0042ca0a
jmp case.0x45f901.6
and dword [ebp - 0x6c], 0
and dword [ebp - 0x64], 0
test esi, esi
je case.0x45f901.23
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x6c]
push eax
push 0xb0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x64]
jne case.0x45f901.6
jmp case.0x45f901.23
and dword [ebp - 0x74], 0
and dword [ebp - 0x68], 0
test esi, esi
je case.0x45f901.6
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x74]
push eax
push 0xb0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
call fcn.0043a7e3
mov ecx, dword [esi + 0xbc]
add ecx, dword [ebp - 0x68]
cmp ecx, eax
jmp 0x460768
test esi, esi
je case.0x45f901.6
mov edi, dword [edi + 0xa]
and word [ebp - 0x4c], 0
lea eax, [ebp - 0x4c]
push eax
push 0
push dword [esi + 0x1c]
call fcn.00423f6d
test edi, edi
je 0x4606c3
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp byte [eax], 0
jne 0x4606bf
xor eax, eax
test eax, eax
jne 0x4606cc
cmp word [ebp - 0x4c], 0
jne 0x4606dc
jmp 0x4606ec
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.00484860
pop ecx
test eax, eax
pop ecx
jne 0x4606ec
push dword [ebp - 0x14]
push dword [ebp - 0x28]
call fcn.0045f62a
pop ecx
mov dword [ebp - 0x14], eax
pop ecx
test edi, edi
je case.0x45f901.6
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp case.0x45f901.6
mov edi, dword [edi + 2]
test edi, edi
mov dword [ebp - 0x34], edi
jne 0x460711
mov dword [ebp - 0x34], 0xfffffffe
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
jmp case.0x45f901.6
cmp dword [ebp - 0x34], 0xfffffffe
jne 0x460727
mov eax, dword [ebp - 0x30]
jmp 0x46077b
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0
jle case.0x45f901.6
jmp 0x460722
mov al, byte [edi]
test al, al
je case.0x45f901.6
cmp al, 0x13
je case.0x45f901.6
inc dword [ebp - 0x14]
add edi, 0x12
jmp case.0x45f901.22
or eax, 0xffffffff
test esi, esi
je 0x460765
mov ecx, esi
call fcn.0043d368
mov eax, dword [esi + 0x1f0]
inc eax
cmp eax, dword [edi + 2]
je case.0x45f901.6
push dword [ebp - 0x14]
push dword [ebp - 0x28]
call fcn.0045f62a
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
jmp case.0x45f901.6
mov dword [ebp - 0x60], 1
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
mov ecx, esi
call fcn.00447d39
jmp case.0x45f901.6
test esi, esi
je case.0x45f901.6
push 0
lea ecx, [ebp - 0x210]
call fcn.004597e0
mov ecx, dword [edi + 0xa]
xor eax, eax
test ecx, ecx
mov dword [ebp - 4], 8
mov dword [ebp - 0x24], ecx
je 0x4607d2
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp byte [edi], 0x21
jne 0x4607de
and dword [ebp - 0x1a8], 0
test eax, eax
je 0x4607f3
cmp byte [eax], 0
je 0x4607f3
push eax
lea ecx, [ebp - 0x1b0]
call fcn.0049b93c
lea ecx, [ebp - 0x210]
call fcn.00497510
cmp eax, 1
jne 0x46083e
cmp byte [edi], 0x21
jne 0x460831
lea eax, [ebp - 0x234]
push 0xa
push eax
push dword [ebp - 0x1ac]
call fcn.004850a3
add esp, 0xc
lea eax, [ebp - 0x234]
lea ecx, [ebp - 0x1b4]
push eax
call fcn.0049b93c
push dword [ebp - 0x1b4]
mov ecx, esi
call fcn.004408ed
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x210]
call fcn.00459877
jmp case.0x45f901.6
mov edi, dword [edi + 2]
cmp edi, 9
ja case.0x45f901.6
mov dword [0x4f4a8c], edi
jmp case.0x45f901.6
push 0x2030
push str.Macro_Playback
push str.Error_while_playing_back_macro__playback_ABORTED_
mov ecx, ebx
call fcn.004995e0
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], 0
jne 0x4608a1
jmp case.0x45f901.6
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x7c]
test esi, esi
mov dword [ebx + 0xe0a], eax
je 0x4608b5
mov ecx, esi
call fcn.0043d33c
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
push 0x11
mov dword [ebp - 0x30], ebx
call esi
mov edi, 0x8000
and ax, di
cmp ax, di
jne 0x4608d4
push 1
pop ebx
push 0x10
call esi
and ax, di
cmp ax, di
jne 0x4608e7
mov dword [ebp - 0x30], 1
test ebx, ebx
jne 0x4608f0
cmp dword [ebp - 0x30], ebx
je 0x460922
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test ebx, ebx
je 0x460908
or byte [ebp - 0x18f], 0x80
cmp dword [ebp - 0x30], 0
je 0x460915
or byte [ebp - 0x190], 0x80
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret