Function at 0x14007dd6c
Capabilities:
Get keyboard layout
Log keystrokes via polling
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov r15, qword [rbp + 0x100]
mov r14, rcx
xor edi, edi
xor ecx, ecx
mov r12, r9
mov rsi, r8
mov rbx, r15
mov dword [rsp + 0x34], edi
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x40], rax
call qword [sym.imp.USER32.dll_GetKeyboardState]
lea ecx, [rdi + 1]
mov edx, 0xc000
mov r13d, 0x100
test eax, eax
jne 0x14007ddef
lea rcx, [rbp - 0x70]
mov r8d, r13d
xor edx, edx
call qword [sym.imp.msvcrt.dll_memset]
jmp 0x14007de63
cmp rsi, 0x12
jne 0x14007de11
movzx ecx, byte [rbp + 0x35]
mov rax, r12
shr rax, 0x10
test r13w, ax
movzx eax, byte [rbp - 0x5e]
cmovne ecx, eax
mov byte [rbp + 0x35], cl
lea ecx, [rsi - 0x11]
mov eax, dword [r14 + 0x1500]
cmp eax, 3
je 0x14007de36
cmp eax, ecx
jg 0x14007de59
mov rax, qword [r14 + 8]
cmp dword [rax + 0x184], edi
je 0x14007de59
cmp dword [r14 + 0x1508], edi
jne 0x14007de59
cmp rsi, 0x90
jne 0x14007de59
test byte [rbp - 0x60], 0x80
jne 0x14007de59
mov rax, r12
mov esi, 0x2b
shr rax, 0x10
test dx, ax
jne 0x14007de59
xor byte [rbp + 0x20], cl
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_SetKeyboardState]
mov rdx, qword [r14 + 8]
cmp dword [rdx + 0x18c], edi
je 0x14007de8f
mov ecx, 0xc000
mov rax, r12
shr rax, 0x10
and ax, cx
mov ecx, 0x4000
cmp ax, cx
jne 0x14007de8f
xor eax, eax
jmp 0x14007ef63
mov r8b, byte [rbp + 0x35]
shr r12, 0x10
mov eax, 0x2000
mov r9d, edi
mov r10d, 1
test ax, r12w
je 0x14007deb8
test r8b, 0x80
cmove r9d, r10d
mov dword [rsp + 0x34], r9d
movzx ecx, r12w
mov eax, ecx
shr eax, 0xf
not eax
and eax, r10d
mov dword [rsp + 0x50], eax
test r9d, r9d
je 0x14007def2
test byte [rbp - 0x5f], 0x80
je 0x14007def2
cmp dword [r14 + 0x1564], edi
je 0x14007dee4
mov byte [rbp - 0x5e], dil
jmp 0x14007def2
mov r8b, 0x80
mov r9d, edi
mov dword [rsp + 0x34], edi
mov byte [rbp + 0x35], r8b
movzx r10d, byte [rbp - 0x60]
and ecx, 0x81ff
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rbp - 0x5f]
mov eax, r10d
shr ecx, 7
shr eax, 7
lea r11d, [rax + rcx*2]
mov ecx, dword [r14 + 0x3714]
test ecx, ecx
jne 0x14007df5b
mov rax, r13
mov qword [0x140188808], rax
cmp dword [r14 + 0x1560], edi
je 0x14007df3f
cmp rsi, 0x12
jne 0x14007df3f
test r13w, r12w
je 0x14007dfb3
mov rax, rsi
cmp rsi, 0x5d
mov qword [rsp + 0x48], WSAAsyncSelect
cmove rax, qword [rsp + 0x48]
mov qword [0x140188808], rax
jmp 0x14007df62
mov rax, qword [0x140188808]
cmp rsi, rax
jne 0x14007dfb3
test ecx, ecx
jne 0x14007df84
mov eax, 0xc000
test ax, r12w
jne 0x14007df84
mov ecx, 1
mov dword [r14 + 0x3714], ecx
jmp 0x14007dfcb
mov eax, 1
cmp ecx, eax
jne 0x14007dfa5
mov eax, 0x8000
test ax, r12w
je 0x14007dfa5
mov dword [r14 + 0x3714], 2
jmp 0x14007dfac
mov dword [r14 + 0x3714], edi
mov ecx, 1
jmp 0x14007dfcb
mov eax, 1
cmp ecx, eax
mov ecx, eax
jne 0x14007dfcb
cmp rsi, 0x11
je 0x14007dfcb
mov dword [r14 + 0x3714], edi
cmp dword [r14 + 0x3714], ecx
jle 0x14007dfe0
test r9d, r9d
je 0x14007dfe5
mov dword [r14 + 0x3714], edi
test r9d, r9d
jne 0x14007e020
cmp dword [rdx + 0x184], edi
je 0x14007e000
cmp dword [r14 + 0x1508], edi
jne 0x14007e000
cmp dword [r14 + 0x1500], 2
jne 0x14007e020
cmp dword [r14 + 0x1500], 3
je 0x14007e020
cmp dword [r14 + 0x1530], edi
jne 0x14007e020
cmp dword [r14 + 0x3714], edi
je 0x14007e0c4
test r13w, r12w
jne 0x14007e0c4
cmp rsi, 0x25
ja 0x14007e07a
je 0x14007e073
mov rax, rsi
sub rax, 0xc
je 0x14007e06c
sub rax, 0x15
je 0x14007e065
dec rax
je 0x14007e05e
dec rax
je 0x14007e057
dec rax
jne 0x14007e0c4
mov eax, 0x67
jmp 0x14007e0b9
mov eax, WSAAsyncSelect
jmp 0x14007e0b9
mov eax, WSAAsyncSelect
jmp 0x14007e0b9
mov eax, 0x69
jmp 0x14007e0b9
mov eax, reloc.WS2_32.dll_WSAAsyncSelect
jmp 0x14007e0b9
mov eax, WSAAsyncSelect
jmp 0x14007e0b9
mov rax, rsi
sub rax, 0x26
je 0x14007e0b4
dec rax
je 0x14007e0ad
dec rax
je 0x14007e0a6
sub rax, 5
je 0x14007e09f
dec rax
jne 0x14007e0c4
mov eax, WSAGetLastError
jmp 0x14007e0b9
mov eax, 0x60
jmp 0x14007e0b9
mov eax, WSAAsyncSelect
jmp 0x14007e0b9
mov eax, 0x66
jmp 0x14007e0b9
mov eax, 0x68
test byte [rbp + 0x20], cl
je 0x14007e0c1
or r11d, ecx
movsxd rsi, eax
mov eax, 0x1b
lea r13, [0x140000000]
cmp dword [rsp + 0x50], edi
je 0x14007ebc5
mov dl, 0x80
test dl, r8b
jne 0x14007ebc5
cmp dword [r14 + 0x3714], edi
jne 0x14007ebc5
test r9d, r9d
je 0x14007e0fe
mov byte [r15], al
lea rbx, [r15 + 1]
cmp rsi, 0x21
jne 0x14007e132
cmp r11d, ecx
jne 0x14007e124
lea r8d, [rsi - 0x1f]
xor r9d, r9d
mov rcx, qword [r14 + 0x18]
mov edx, 0x115
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14007de88
cmp r11d, 2
jne 0x14007e14e
xor r9d, r9d
xor r8d, r8d
jmp 0x14007e110
cmp rsi, 0x22
jne 0x14007e1b6
cmp r11d, ecx
jne 0x14007e143
lea r8d, [rsi - 0x1f]
jmp 0x14007e10d
cmp r11d, 2
jne 0x14007e14e
mov r8, rcx
jmp 0x14007e10d
cmp r11d, 3
jne 0x14007e1b6
mov r11, qword [r14 + 8]
mov rcx, r11
call fcn.1400bfe4c
mov r8d, eax
neg r8d
cmp dword [r11 + 0xe84], 3
jne 0x14007de88
cmp rsi, 0x21
je 0x14007e183
mov rcx, qword [r11 + 0xe98]
jmp 0x14007e18a
mov rcx, qword [r11 + 0xe90]
mov eax, dword [r11 + 0x168]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
cmp ecx, r8d
jl 0x14007e1a6
mov r8d, ecx
test ecx, ecx
cmovg r8d, edi
or edx, 0xffffffff
mov rcx, r11
call fcn.1400c5950
jmp 0x14007de88
cmp rsi, 0x2d
jne 0x14007e1cf
cmp r11d, ecx
jne 0x14007e1cf
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x70]
jmp 0x14007de88
test r9d, r9d
je 0x14007e2a1
cmp rsi, 0x73
jne 0x14007e271
cmp dword [r14 + 0x153c], edi
jne 0x14007ef5f
cmp dword [r14 + 0x1530], edi
je 0x14007e376
test r9d, r9d
jne 0x14007e569
mov rcx, rsi
sub rcx, 0x61
je 0x14007e350
dec rcx
je 0x14007e33a
dec rcx
je 0x14007e324
dec rcx
je 0x14007e30e
dec rcx
je 0x14007e309
dec rcx
je 0x14007e2f3
dec rcx
je 0x14007e2dd
dec rcx
je 0x14007e2c4
dec rcx
jne 0x14007e37f
mov ecx, r11d
lea rax, [0x140000000]
and ecx, 3
mov cl, byte [rcx + rax + 0x125ca8]
mov byte [rbx], cl
jmp 0x14007e366
cmp rsi, 0x20
jne 0x14007e2a1
cmp dword [r14 + 0x1540], edi
je 0x14007e1ef
mov rcx, qword [r14 + 0x18]
xor r9d, r9d
mov edx, 0x112
mov r8d, 0xf100
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14007ef5f
cmp rsi, 0x13
jne 0x14007e1ef
cmp r11d, 2
jne 0x14007e1ef
mov rax, qword [r14 + 8]
xor dword [rax + 0x184], ecx
jmp 0x14007de88
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125ca0]
jmp 0x14007e364
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c98]
jmp 0x14007e364
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c90]
jmp 0x14007e364
mov byte [rbx], 0x2e
jmp 0x14007e366
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c88]
jmp 0x14007e364
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c80]
jmp 0x14007e364
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c78]
jmp 0x14007e364
mov eax, r11d
lea rcx, [0x140000000]
and eax, 3
mov al, byte [rax + rcx + 0x125c70]
mov byte [rbx], al
mov eax, 1
sub rbx, r15
add rax, rbx
jmp 0x14007ef63
test r9d, r9d
jne 0x14007e569
mov edx, dword [r14 + 0x1500]
mov ecx, edi
cmp edx, 3
je 0x14007e3ab
mov eax, 1
cmp edx, eax
jg 0x14007e3db
mov rax, qword [r14 + 8]
cmp dword [rax + 0x184], edi
je 0x14007e3db
cmp dword [r14 + 0x1508], edi
jne 0x14007e3db
cmp rsi, 0x2b
je 0x14007e3d6
cmp rsi, 0x6a
je 0x14007e3cf
cmp rsi, 0x6d
je 0x14007e3c8
cmp rsi, 0x6f
jne 0x14007e3db
lea ecx, [rsi - 0x1e]
jmp 0x14007e3db
mov ecx, 0x53
jmp 0x14007e3db
mov ecx, 0x52
jmp 0x14007e3db
mov ecx, 0x50
mov r8, qword [r14 + 8]
cmp dword [r8 + 0x184], edi
je 0x14007e511
cmp dword [r14 + 0x1508], edi
jne 0x14007e511
cmp rsi, 0x67
ja 0x14007e49b
je 0x14007e494
mov rax, rsi
sub rax, 0xd
je 0x14007e47e
sub rax, 0x53
je 0x14007e474
dec rax
je 0x14007e46a
dec rax
je 0x14007e460
dec rax
je 0x14007e456
dec rax
je 0x14007e44c
dec rax
je 0x14007e442
dec rax
jne 0x14007e511
lea ecx, [rax + 0x76]
jmp 0x14007e515
mov ecx, 0x75
jmp 0x14007e515
mov ecx, reloc.WS2_32.dll_WSACleanup
jmp 0x14007e515
mov ecx, reloc.WS2_32.dll_WSAStartup
jmp 0x14007e515
mov ecx, WSACleanup
jmp 0x14007e515
mov ecx, WSACleanup
jmp 0x14007e515
mov ecx, WSACleanup
jmp 0x14007e515
mov eax, 0x100
test ax, r12w
je 0x14007e511
mov ecx, 0x4d
jmp 0x14007e511
mov ecx, 0x77
jmp 0x14007e515
mov rax, rsi
sub rax, 0x68
je 0x14007e50c
dec rax
je 0x14007e505
dec rax
je 0x14007e4fb
dec rax
je 0x14007e4de
sub rax, 2
je 0x14007e4d4
dec rax
je 0x14007e4cd
dec rax
jne 0x14007e511
cmp edx, 2
jne 0x14007e511
lea ecx, [rax + 0x6f]
jmp 0x14007e511
mov ecx, WSAGetLastError
jmp 0x14007e515
cmp edx, 2
jne 0x14007e511
lea ecx, [rdx + 0x6b]
jmp 0x14007e511
cmp edx, 2
jne 0x14007e4ef
neg r11d
sbb eax, eax
neg eax
lea ecx, [rax + 0x6b]
jmp 0x14007e515
neg r11d
sbb eax, eax
neg eax
lea ecx, [rax + 0x6c]
jmp 0x14007e515
cmp edx, 2
jne 0x14007e511
lea ecx, [rdx + 0x68]
jmp 0x14007e511
mov ecx, 0x79
jmp 0x14007e515
mov ecx, 0x78
test ecx, ecx
je 0x14007e55f
cmp dword [r8 + 0x188], edi
mov r8d, ecx
je 0x14007e53e
lea eax, [rcx - 0x50]
mov rcx, rbx
cmp eax, 3
ja 0x14007e535
lea rdx, [0x140125cb0]
jmp 0x14007e548
lea rdx, [0x140125cb4]
jmp 0x14007e548
lea rdx, str.eO_c
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_sprintf]
movsxd rcx, eax
add rbx, rcx
sub rbx, r15
mov rax, rbx
jmp 0x14007ef63
mov ecx, 1
mov dl, 0x80
lea eax, [rcx + 0x1a]
cmp rsi, 8
jne 0x14007e5b3
test r11d, r11d
jne 0x14007e597
mov eax, dword [r14 + 0x14f8]
neg eax
sbb cl, cl
and cl, 0x77
add cl, sil
mov byte [rbx], cl
mov byte [rbx + 1], dil
mov rax, 0xfffffffffffffffe
jmp 0x14007ef63
cmp r11d, ecx
jne 0x14007e632
mov eax, dword [r14 + 0x14f8]
neg eax
sbb cl, cl
and cl, 0x89
add cl, 0x7f
jmp 0x14007e585
cmp rsi, 9
jne 0x14007e5d8
cmp r11d, ecx
jne 0x14007e632
mov byte [rbx], al
add rbx, rcx
mov byte [rbx], 0x5b
add rbx, rcx
mov byte [rbx], 0x5a
sub rbx, r15
lea rax, [rcx + rbx]
jmp 0x14007ef63
cmp rsi, 0x20
jne 0x14007e5f4
cmp r11d, 2
jne 0x14007e5e9
mov byte [rbx], dil
jmp 0x14007e5cc
cmp r11d, 3
jne 0x14007e632
mov byte [rbx], 0xa0
jmp 0x14007e5cc
cmp rsi, 3
jne 0x14007e622
cmp r11d, 2
jne 0x14007e68e
mov rcx, qword [r14 + 0x2110]
test rcx, rcx
je 0x14007de88
mov rax, qword [rcx]
lea edx, [rsi - 2]
call qword [rax + 0x38]
jmp 0x14007de88
cmp rsi, 0x13
jne 0x14007e632
mov word [rbx], 0x1a
jmp 0x14007e58b
cmp r11d, 2
jne 0x14007e68e
lea rax, [rsi - 0x32]
cmp rax, 6
ja 0x14007e657
lea rax, [0x140000000]
mov al, byte [rsi + rax + 0x125c96]
mov byte [rbx], al
jmp 0x14007e5cc
lea rax, [rsi - 0xbd]
test rax, 0xfffffffffffffffd
jne 0x14007e674
mov r8d, 0x1f
mov byte [rbx], r8b
jmp 0x14007e5cc
cmp rsi, 0xdf
je 0x14007e686
cmp rsi, 0xdc
jne 0x14007e6c7
mov r8d, 0x1c
jmp 0x14007e66c
cmp r11d, 3
jne 0x14007e6a5
cmp rsi, 0xde
jne 0x14007e6c7
mov byte [rbx], 0x1e
jmp 0x14007e5cc
test r11d, r11d
jne 0x14007e6c7
cmp rsi, 0xd
jne 0x14007e6c7
mov rax, qword [r14 + 8]
cmp dword [rax + 0x190], edi
je 0x14007e6c7
mov byte [rbx], sil
lea eax, [rsi - 3]
add rbx, rcx
jmp 0x14007e650
mov r8d, edi
mov ecx, 0x76
cmp rsi, 0x7a
ja 0x14007e816
je 0x14007e80e
cmp rsi, 0x75
ja 0x14007e79a
je 0x14007e783
mov rax, rsi
sub rax, 0x70
je 0x14007e76c
dec rax
je 0x14007e755
dec rax
je 0x14007e73e
dec rax
je 0x14007e727
dec rax
jne 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xd
add r8d, 0xf
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xc
add r8d, 0xe
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xc
add r8d, 0xd
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xc
add r8d, 0xc
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xc
add r8d, 0xb
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xc
add r8d, 0x11
jmp 0x14007e88b
mov rax, rsi
sub rax, rcx
je 0x14007e7fa
dec rax
je 0x14007e7e3
dec rax
je 0x14007e7cc
dec rax
jne 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xd
add r8d, 0x15
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xd
add r8d, 0x14
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xd
add r8d, 0x13
jmp 0x14007e88b
mov al, r10b
and al, dl
neg al
sbb r8d, r8d
and r8d, 0xd
add r8d, 0x12
jmp 0x14007e88b
mov r8d, reloc.OLEAUT32.dll_SafeArrayUnaccessData
jmp 0x14007e88b
mov rax, rsi
sub rax, 0x7b
je 0x14007e885
dec rax
je 0x14007e87d
dec rax
je 0x14007e875
dec rax
je 0x14007e86d
dec rax
je 0x14007e865
dec rax
je 0x14007e85d
dec rax
je 0x14007e855
dec rax
je 0x14007e84d
dec rax
jne 0x14007e88b
lea r8d, [rax + 0x22]
jmp 0x14007e88b
mov r8d, 0x21
jmp 0x14007e88b
mov r8d, 0x20
jmp 0x14007e88b
mov r8d, 0x1f
jmp 0x14007e88b
mov r8d, 0x1d
jmp 0x14007e88b
mov r8d, 0x1c
jmp 0x14007e88b
mov r8d, 0x1a
jmp 0x14007e88b
mov r8d, reloc.SHELL32.dll_ILCombine
jmp 0x14007e88b
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetElement
test r11b, 2
jne 0x14007e8ea
mov rax, rsi
sub rax, 0x21
je 0x14007e8e4
dec rax
je 0x14007e8dc
dec rax
je 0x14007e8d4
dec rax
je 0x14007e8c9
sub rax, 9
je 0x14007e8c1
mov r12d, 1
dec rax
jne 0x14007e8f0
lea r8d, [r12 + 2]
jmp 0x14007e8f0
mov r8d, 2
jmp 0x14007e8ea
mov r12d, 1
mov r8d, r12d
jmp 0x14007e8f0
mov r8d, 4
jmp 0x14007e8ea
mov r8d, 6
jmp 0x14007e8ea
mov r8d, 5
mov r12d, 1
mov r9d, dword [r14 + 0x1500]
cmp r9d, 3
jne 0x14007e90f
cmp r8d, 6
jg 0x14007e90f
movsxd rax, r8d
movsx r8d, byte [rax + r13 + 0x125cd0]
mov r10, qword [r14 + 8]
mov edx, dword [r10 + 0x188]
test edx, edx
je 0x14007e94a
lea eax, [r8 - 1]
cmp eax, 5
ja 0x14007e94a
movsxd rax, r8d
lea rdx, [0x140125cb0]
movsx r8d, byte [rax + r13 + 0x125cd8]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_sprintf]
cdqe
jmp 0x14007e36b
cmp r9d, 5
jne 0x14007ea8f
lea eax, [r8 - 0xb]
cmp eax, 0x17
ja 0x14007ea3a
movups xmm0, xmmword [str.MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
movups xmm1, xmmword [0x140125cf0]
mov al, byte [0x140125d10]
mov byte [rbp - 0x78], al
movups xmmword [rsp + 0x58], xmm0
movups xmm0, xmmword [0x140125d00]
movups xmmword [rsp + 0x68], xmm1
movups xmmword [rsp + 0x78], xmm0
cmp rsi, rcx
ja 0x14007e9da
je 0x14007e9d3
sub rsi, 0x70
je 0x14007ea13
dec rsi
je 0x14007e9ce
dec rsi
je 0x14007e9c7
dec rsi
je 0x14007e9c0
dec rsi
je 0x14007e9b9
dec rsi
jne 0x14007ea13
mov edi, r9d
jmp 0x14007ea13
mov edi, 4
jmp 0x14007ea13
mov edi, 3
jmp 0x14007ea13
mov edi, 2
jmp 0x14007ea13
mov edi, r12d
jmp 0x14007ea13
mov edi, 6
jmp 0x14007ea13
sub rsi, 0x77
je 0x14007ea0e
dec rsi
je 0x14007ea07
dec rsi
je 0x14007ea00
dec rsi
je 0x14007e9f9
dec rsi
jne 0x14007ea13
lea edi, [rsi + 0xb]
jmp 0x14007ea13
mov edi, 0xa
jmp 0x14007ea13
mov edi, 9
jmp 0x14007ea13
mov edi, 8
jmp 0x14007ea13
mov edi, 7
test byte [rbp - 0x60], 0x80
je 0x14007ea1c
add edi, 0xc
test byte [rbp - 0x5f], 0x80
je 0x14007ea25
add edi, 0x18
movsxd rax, edi
lea rdx, str.e__c
movsx r8d, byte [rsp + rax + 0x58]
jmp 0x14007e93a
cmp r9d, 5
jne 0x14007ea8f
lea eax, [r8 - 1]
cmp eax, r9d
ja 0x14007ea8f
mov eax, dword [str.HL.FIG]
mov dword [rsp + 0x50], eax
movzx eax, word [0x140125d20]
mov word [rsp + 0x54], ax
mov al, byte [0x140125d22]
mov byte [rsp + 0x56], al
cmp r8d, 3
jne 0x14007ea7a
mov byte [rbx], 0x7f
add rbx, r12
jmp 0x14007e554
movsxd rax, r8d
lea rdx, str.e__c
movsx r8d, byte [rsp + rax + 0x4f]
jmp 0x14007e545
test edx, edx
jne 0x14007ea99
cmp r9d, 4
jne 0x14007eada
lea eax, [r8 - 0xb]
cmp eax, 0xd
ja 0x14007eada
cmp r8d, 0xf
mov eax, edi
cmovg eax, r12d
cmp r8d, 0x15
jle 0x14007eab5
add eax, r12d
sub r8d, eax
add r8d, 0x45
test edx, edx
mov rcx, rbx
lea rdx, [0x140125cb0]
jne 0x14007e548
lea rdx, str.eO_c
jmp 0x14007e548
mov ecx, 1
cmp r9d, ecx
jne 0x14007eafd
lea eax, [r8 - 0xb]
cmp eax, 4
ja 0x14007eafd
add r8d, 0x36
lea rdx, str.e___c
jmp 0x14007e93a
cmp r9d, 2
jne 0x14007eb0c
lea eax, [r8 - 0xb]
cmp eax, 3
jbe 0x14007eab8
cmp dword [r14 + 0x14fc], edi
je 0x14007eb43
cmp r8d, ecx
je 0x14007eb20
cmp r8d, 4
jne 0x14007eb43
cmp r8d, ecx
lea rax, [0x140125d2c]
lea rdx, [0x140125d30]
cmove rdx, rax
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_sprintf]
jmp 0x14007e943
test r8d, r8d
je 0x14007eb54
lea rdx, str.e__d
jmp 0x14007e93a
mov rax, rsi
sub rax, 0xc
je 0x14007ec4c
sub rax, 0x19
je 0x14007ec48
dec rax
je 0x14007ec44
dec rax
je 0x14007ec40
dec rax
je 0x14007ec3c
cmp rsi, 0xd
jne 0x14007eb94
mov word [rbx], si
jmp 0x14007e58b
mov r9d, dword [rsp + 0x34]
test r9d, r9d
je 0x14007ec34
lea rax, [rsi - 0x60]
cmp rax, 9
ja 0x14007ec34
mov eax, dword [0x140188804]
lea eax, [rax + rax*4]
lea eax, [rax - 0x30]
lea eax, [rsi + rax*2]
mov dword [0x140188804], eax
mov r15d, edi
cmp dword [r14 + 0x1cc8], edi
je 0x14007ebe2
cmp byte [rbp - 0x5c], dil
je 0x14007ebe2
test r9d, r9d
mov byte [rbp - 0x5c], dil
sete r15b
cmp dword [0x14017a220], 2
mov rax, qword [rsp + 0x40]
mov edx, dword [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x70]
mov ecx, esi
mov dword [rsp + 0x20], edi
jne 0x14007ec65
lea r9, [rsp + 0x3c]
call qword [sym.imp.USER32.dll_ToAsciiEx]
mov rdx, rdi
lea r12, [0x140188c38]
mov ebx, eax
mov eax, 1
movzx ecx, byte [rsp + rdx + 0x3c]
mov word [r12 + rdx*2], cx
add rdx, rax
cmp rdx, 3
jl 0x14007ec1f
jmp 0x14007ec77
mov dword [0x140188804], edi
jmp 0x14007ebc5
mov al, 0x42
jmp 0x14007ec4e
mov al, 0x43
jmp 0x14007ec4e
mov al, 0x41
jmp 0x14007ec4e
mov al, 0x44
jmp 0x14007ec4e
mov al, 0x47
movsx r8d, al
mov r9d, r11d
mov rdx, rbx
mov rcx, r10
call fcn.1400c6b4c
jmp 0x14007e943
lea r12, [0x140188c38]
mov r9, r12
call qword [sym.imp.USER32.dll_ToAsciiEx]
mov ebx, eax
test ebx, ebx
jle 0x14007ef06
mov rcx, qword [r14 + 8]
call fcn.1400c6bbc
movsxd rbx, ebx
mov rsi, rdi
test rbx, rbx
jle 0x14007eeea
movsxd r13, dword [rsp + 0x50]
movsxd r15, r15d
mov ecx, dword [r14 + 0x3714]
mov al, byte [r12 + rsi*2]
mov byte [rsp + 0x30], al
cmp ecx, 2
jne 0x14007ecd4
test al, al
js 0x14007ecd4
cmp al, 0x20
jbe 0x14007ecd4
movzx eax, al
mov dword [r14 + 0x3714], 3
mov dword [0x140188800], eax
jmp 0x14007eed9
cmp ecx, 3
jne 0x14007ed3a
test al, al
js 0x14007ed3a
cmp al, 0x20
jbe 0x14007ed3a
mov ecx, dword [0x140188800]
movzx edx, al
xor r8d, r8d
mov dword [r14 + 0x3714], edi
call fcn.1400c9fb0
cmp eax, 0xffffffff
je 0x14007eef6
mov rcx, qword [r14 + 8]
mov word [rsp + 0x38], ax
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007eed9
mov eax, 1
lea rdx, [rsp + 0x38]
mov r9d, eax
mov r8d, eax
call fcn.1400a0dac
jmp 0x14007eed9
mov dword [r14 + 0x3714], edi
test r13, r13
jne 0x14007ee02
mov edx, dword [0x140188804]
mov rcx, qword [r14 + 8]
test edx, edx
je 0x14007edd7
cmp dword [rcx + 0x138], edi
jne 0x14007eda1
mov rax, qword [rcx + 0x20]
cmp dword [rax + 0x10], 0xfde9
je 0x14007eda1
cmp dword [r14 + 0x21e0], edi
jne 0x14007eda1
mov byte [rsp + 0x30], dl
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007edcc
lea eax, [r13 + 1]
lea rdx, [rsp + 0x30]
mov r9d, eax
mov r8d, eax
call fcn.1400a0640
jmp 0x14007edcc
mov word [rsp + 0x38], dx
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007edcc
mov eax, 1
lea rdx, [rsp + 0x38]
mov r9d, eax
mov r8d, eax
call fcn.1400a0dac
mov dword [0x140188804], edi
jmp 0x14007eecf
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007eecf
mov eax, 1
lea r8, [rsp + 0x30]
mov dword [rsp + 0x20], eax
mov r9d, eax
jmp 0x14007eec3
test r15, r15
je 0x14007ee76
cmp al, 0x80
jae 0x14007ee76
movzx eax, al
mov ecx, 0x1b
mov word [rsp + 0x50], cx
lea rcx, [0x140000000]
and eax, 0x7f
movzx eax, word [rcx + rax*2 + 0x131ff0]
mov rcx, qword [r14 + 8]
mov word [rsp + 0x52], ax
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007eecf
mov edx, dword [rsp + 0x34]
mov r8d, edi
mov rax, rdi
test edx, edx
mov r9d, 1
setne r8b
add r8d, r9d
test edx, edx
lea rdx, [rsp + 0x50]
sete al
lea rdx, [rdx + rax*2]
call fcn.1400a0dac
jmp 0x14007eecf
mov ecx, 0x1b
mov byte [rsp + 0x3d], al
mov byte [rsp + 0x3c], cl
mov rcx, qword [r14 + 8]
call fcn.1400c0550
mov rcx, qword [r14 + 0x2128]
test rcx, rcx
je 0x14007eecf
mov edx, dword [rsp + 0x34]
mov r9d, edi
mov r10d, 1
test edx, edx
mov rax, rdi
lea r8, [rsp + 0x3c]
setne r9b
mov dword [rsp + 0x20], r10d
add r9d, r10d
test edx, edx
sete al
add r8, rax
mov edx, dword [r14 + 0x21d0]
call fcn.1400a0d08
xor edx, edx
mov rcx, r14
call fcn.14007ca14
mov eax, 1
add rsi, rax
cmp rsi, rbx
jl 0x14007ec9f
mov word [0x140188c38], di
jmp 0x14007de88
mov ecx, reloc.SHELL32.dll_ILFindLastID
call qword [sym.imp.USER32.dll_MessageBeep]
jmp 0x14007de88
cmp dword [rsp + 0x34], edi
jne 0x14007ef15
mov word [0x140188c38], di
jmp 0x14007ef4c
cmp word [0x140188c38], di
je 0x14007ef4c
mov rax, qword [r14 + 8]
cmp dword [rax + 0x138], edi
jne 0x14007ef40
mov rax, qword [rax + 0x20]
cmp dword [rax + 0x10], 0xfde9
je 0x14007ef40
cmp dword [r14 + 0x21e0], edi
je 0x14007ef4c
mov eax, 0xa
mov word [0x140188c38], ax
cmp rsi, 0x12
jne 0x14007ef5f
cmp dword [r14 + 0x1544], edi
je 0x14007de88
or rax, 0xffffffffffffffff
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140001010
mov rbx, qword [rsp + 0x1e8]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret