Function at 0x14001ff9c
Capabilities:
Authenticate hmac

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x150]
sub rsp, 0x250
mov rax, qword [0x1400499b8]
xor rax, rsp
mov qword [rbp + 0x140], rax
movsx rax, word [0x1400495a0]
mov qword [rbp - 0x30], 0x62
mov qword [rbp - 0x80], rax
movabs rax, 0xd8be1c7d7b23d
mov byte [rsp + 0x5c], 0xaf
mov qword [rbp - 0x40], rax
mov eax, dword [0x1400494fc]
mov dword [rsp + 0x74], eax
mov rax, qword [0x1400495d8]
mov dword [rsp + 0x70], 0xc3
mov qword [rbp - 0x48], rax
mov eax, 0x6d88
mov qword [rbp - 8], rdx
movsx edx, byte [0x1400494fb]
mov ebx, dword [0x1400495d0]
mov word [rsp + 0x78], ax
mov al, byte [0x140049588]
mov byte [rsp + 0x5d], 0x58
mov byte [rsp + 0x50], al
movsxd rax, dword [0x140049590]
mov qword [rbp - 0x78], rax
mov al, byte [0x1400495a8]
mov byte [rsp + 0x51], al
mov eax, 0xb393
movzx edi, word [0x1400495f8]
mov rsi, qword [0x140049600]
mov r15b, byte [0x1400495d4]
mov word [rsp + 0x54], ax
movzx eax, word [0x140049554]
mov byte [rsp + 0x7c], 0x50
mov word [rsp + 0x68], ax
mov rax, qword [0x140049580]
mov eax, 0x2a15
mov qword [rbp], rcx
mov word [rsp + 0x68], ax
movsx rax, word [0x1400495b4]
mov qword [rbp - 0x18], rax
movsx eax, byte [0x1400494e4]
mov dword [rsp + 0x60], eax
mov eax, dword [0x1400495d8]
mov dword [rsp + 0x60], eax
movsx eax, word [0x1400495b4]
mov dword [rsp + 0x60], eax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x64], eax
movsx eax, word [0x1400495b4]
add dword [0x140049594], eax
movsxd rax, dword [0x140cf72d0]
sub rbx, rax
mov qword [rbp + 8], r8
mov eax, dword [rsp + 0x64]
mov r8d, 1
add eax, 0x46
mov dword [rbp - 0x38], 0x947a61a0
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x64]
add eax, 0x3a
mov dword [rbp - 0x50], r15d
mov dword [rbp - 0x1c], eax
mov byte [0x1400494fb], r8b
mov eax, dword [rsp + 0x64]
add eax, 0x379
mov dword [rbp - 0x20], eax
mov al, dil
and al, 0xc9
or byte [0x1400494e7], al
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
add eax, 0x23
mov dword [rbp - 0x70], eax
mov dword [rsp + 0x74], 4
movsx ecx, byte [0x1400494e5]
mov eax, dword [rsp + 0x64]
add cx, 0x12
add eax, 0x30a
mov word [0x1400495a4], cx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x74]
lea r13d, [rax + rdx*2]
mov dword [rbp - 0x34], r13d
mov eax, dword [rsp + 0x64]
xor r12d, r12d
add eax, 0x1c
mov edx, r12d
mov dword [rsp + 0x60], eax
movsxd rcx, dword [rsp + 0x70]
mov rax, qword [0x140049598]
cmp rcx, rax
mov eax, dword [rsp + 0x70]
mov ecx, r12d
setle dl
cmp edx, ecx
je 0x1400201b6
movsxd rax, dword [0x140049590]
cmp rax, qword [0x140049610]
jg 0x1400201b6
movsx esi, byte [rsp + 0x51]
sub rbx, r8
mov eax, dword [0x140a0f0f0]
mov ecx, edi
mov dword [rsp + 0x64], eax
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x64]
mov rcx, qword [0x1400495a8]
add eax, 0x2bd
mov dword [rsp + 0x60], eax
movzx r14d, word [rsp + 0x54]
movsx rax, byte [0x1400494e4]
neg r14b
imul rcx, rax
mov eax, dword [rsp + 0x64]
add eax, 0x137
mov qword [0x1400495a8], rcx
mov dword [rbp - 0x6c], eax
mov eax, dword [rsp + 0x64]
add eax, 0x150
mov dword [rbp - 0x60], eax
mov al, dil
movsx rcx, byte [rsp + 0x51]
sub al, byte [0x1400494fc]
xor rcx, 0x2db6
mov qword [rbp - 0x48], rcx
add al, 0x6b
add al, byte [0x140049590]
mov rcx, 0xffffffffffffff4c
mov byte [rsp + 0x50], al
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
add eax, 0xa656
mov dword [rsp + 0x60], eax
mov rax, qword [0x140049580]
sub rcx, rax
mov eax, dword [rsp + 0x64]
add qword [0x1400495d8], rcx
add eax, 0xd8
mov dword [rsp + 0x60], eax
test esi, esi
je 0x14002028a
cmp dword [0x1400494fc], r12d
je 0x14002028a
mov ecx, 1
jmp 0x14002028d
mov ecx, r12d
mov rax, qword [rbp - 0x48]
mov eax, 1
cmp ecx, eax
mov al, byte [0x1400494e5]
jne 0x1400202cd
test al, al
je 0x1400202f9
mov ecx, dword [0x140049590]
mov eax, 0x1e0a
add ecx, 0x71
add ecx, esi
mov dword [0x140049590], ecx
movsx ecx, byte [0x1400494fb]
add cx, ax
mov word [0x1400495e0], cx
jmp 0x1400202f9
neg al
mov eax, r12d
sbb rcx, rcx
and rcx, 0xffffffff8fc86126
add rcx, 0x70379f4d
cmp word [0x1400495a0], r12w
sete al
sub cx, ax
sub cx, bx
mov word [rsp + 0x54], cx
mov eax, dword [rsp + 0x64]
add eax, 0x18
mov dword [rsp + 0x6c], eax
movzx ebx, word [0x1400495e0]
movzx eax, byte [str.MSUnsupportedAlgorit]
sub ebx, 0x23260c74
shr rax, 6
mov qword [0x140049610], rax
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x14002033f
movsx ecx, byte [0x1400494e4]
movsx eax, r14b
add ecx, eax
mov dword [0x1400494fc], ecx
mov eax, dword [rsp + 0x6c]
mov esi, dword [0x14004956c]
imul ecx, eax, 0x679a
xor esi, 0x6b4f
mov byte [0x1400494e7], r12b
mov eax, 0x9b9df
sub eax, ecx
movzx ecx, word [0x1400495fc]
mov dword [rbp - 0x10], eax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x64], eax
movabs rax, 0x54052db2bd68a
add rcx, rax
mov rax, qword [rbp - 0x48]
xor ax, cx
lea rcx, [0x140036a90]
not ax
mov word [0x140049514], ax
mov eax, dword [rsp + 0x64]
add eax, 0xfa
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x64]
add eax, 0xa23c
mov dword [rsp + 0x60], eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x140049594], eax
lea rcx, [rbp + 0x20]
mov eax, dword [rsp + 0x64]
add eax, 0xae
mov dword [rsp + 0x6c], eax
mov rax, qword [rbp - 0x78]
sub esi, eax
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x78], rax
mov eax, dword [rsp + 0x6c]
movsd xmm0, qword [str.WinHttpOpen]
or eax, 0xf
xor eax, 0x24d
movsd qword [rbp + 0x20], xmm0
mov dword [rbp - 0x28], eax
mov eax, dword [0x140036aa8]
mov dword [rbp + 0x28], eax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov word [rsp + 0x54], ax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
add eax, 0xa18e
cmp dword [0x1400494fc], r12d
mov dword [rsp + 0x6c], eax
je 0x140020461
movsx rcx, byte [0x1400494fb]
mov edx, r12d
mov rax, qword [rbp - 0x80]
cmp rcx, rax
mov al, byte [0x1400494fb]
mov ecx, r12d
setge dl
cmp al, 0x19
setge cl
cmp edx, ecx
ja 0x14002047f
lea eax, [rdi + 0x57]
mov byte [rsp + 0x51], al
jmp 0x14002047f
mov rax, qword [rbp - 0x30]
mov rax, qword [0x140049608]
mov edi, dword [0x140049610]
add rax, 0xffffffff8cb4faa5
mov qword [0x1400495f0], rax
mov eax, dword [rsp + 0x64]
add eax, 0x101
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x64]
add eax, 0xe6f
mov dword [rsp + 0x60], eax
mov eax, 3
mov word [0x1400495bc], ax
mov rax, qword [rbp - 0x30]
mov al, byte [0x140a0f0f0]
mov byte [str.MSUnsupportedAlgorit], al
mov byte [0x1400494fb], 0x4b
movsx eax, byte [0x1400494fb]
movzx edx, byte [rsp + 0x5c]
add edx, eax
movzx eax, word [0x140049554]
cmp eax, edx
jne 0x1400205ac
mov r15d, 0x44
movzx eax, byte [rsp + 0x5c]
mov edx, r12d
cmp eax, dword [0x14004956c]
mov ecx, r12d
mov al, byte [rsp + 0x5c]
setle dl
cmp edx, ecx
jne 0x140020515
movzx ecx, word [rsp + 0x54]
mov rax, qword [0x140049598]
sub cx, ax
add cx, r15w
mov word [rsp + 0x54], cx
jmp 0x14002055e
mov ecx, dword [rsp + 0x74]
mov rax, qword [0x140049578]
cmp rax, rcx
jbe 0x14002053d
mov rax, qword [rbp - 0x80]
mov ecx, 0xc4
movzx edx, ax
imul edx, ecx
mov word [0x1400495fc], dx
jmp 0x14002055e
mov dword [rsp + 0x74], 0x4e
mov al, byte [0x1400494e5]
mov al, byte [0x1400494e5]
add al, r14b
add al, bl
neg al
mov byte [0x1400494e5], al
movzx ecx, byte [rsp + 0x5c]
mov rax, qword [0x140049600]
sub ecx, 0x27b7bf13
cmp rax, rcx
jne 0x1400205a8
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, eax
mov qword [0x1400495f0], rcx
mov byte [0x1400494fb], 0x4b
movsx eax, byte [0x1400494fb]
movzx edx, byte [rsp + 0x5c]
add edx, eax
movzx eax, word [0x140049554]
cmp eax, edx
je 0x1400204df
mov r15d, dword [rbp - 0x50]
mov eax, dword [rsp + 0x70]
cmp esi, eax
jne 0x1400205c4
cmp dword [0x140049594], r12d
jne 0x1400205c4
movzx eax, word [0x1400495e0]
mov eax, 0x680c
mov ecx, 0x89
mov word [0x1400495e0], ax
mov r14d, 0x49
mov eax, dword [rsp + 0x6c]
sub r14b, byte [0x1400494fc]
or eax, 0xfbaf
sub eax, 0xf8b4
mov dword [rsp + 0x64], r14d
mov dword [rbp - 0x68], eax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x68]
add eax, 0xb1
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x68]
add eax, 0x35ba
mov dword [rbp - 0x54], eax
mov eax, dword [rsp + 0x68]
mov edx, dword [0x140049590]
add eax, 0x49
mov dword [rsp + 0x6c], eax
add edx, 0x546dcf56
movzx eax, word [0x1400495fc]
and edx, eax
mov eax, r12d
movsx r12, byte [rsp + 0x5d]
test edi, edi
sete al
xor r9d, r9d
sub edx, eax
add r12d, 0x38284dc3
mov al, byte [rsp + 0x50]
add r12d, edx
sub cl, r12b
mov r8d, r9d
add cl, al
mov byte [rsp + 0x50], cl
mov ecx, 0x3697
mov eax, dword [rsp + 0x6c]
sub ecx, eax
mov eax, dword [rbp - 0x54]
sub ecx, eax
mov eax, dword [0x140a0f0f0]
mov dword [rbp - 0x5c], ecx
mov ecx, r9d
mov dword [rsp + 0x68], eax
movzx eax, word [0x1400495e0]
movzx edx, word [0x1400495e0]
and rdx, rax
mov rax, qword [0x1400495f0]
and ax, dx
mov word [0x1400495e0], ax
mov eax, dword [rsp + 0x68]
add eax, 0x8b
mov dword [rsp + 0x6c], eax
movsx rax, word [0x1400495a0]
cmp qword [0x1400495d8], rax
mov eax, dword [0x140049594]
sete r8b
cmp qword [0x1400495d8], 0x12
sete cl
cmp r8d, ecx
cmovae eax, dword [0x140a0f0f0]
mov dword [0x140049594], eax
mov eax, dword [rsp + 0x68]
add eax, 0xb46e
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x68]
add eax, 0x35
mov dword [rbp - 0x54], eax
call qword [sym.imp.USER32.dll_GetFocus]
xor r8d, r8d
mov rbx, rax
test rax, rax
je 0x140020731
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowVisible]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowUnicode]
xor r8d, r8d
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14002074b
cmp word [0x1400495fc], r8w
jne 0x14002074b
mov eax, 1
jmp 0x14002074e
mov eax, r8d
cmp qword [0x1400495a8], 0x6770
mov ecx, r8d
setae cl
xor ecx, eax
movzx eax, word [0x140049554]
not eax
not ecx
cmp eax, ecx
jne 0x140020797
mov rax, qword [0x1400495c8]
mov ecx, r12d
xor rcx, 0x860c
sub rax, rcx
mov qword [0x1400495c8], rax
mov eax, 0xa812
mov word [rsp + 0x78], ax
jmp 0x1400207a3
movzx eax, word [0x140a0f0f0]
mov word [rsp + 0x54], ax
mov eax, dword [rsp + 0x58]
mov edx, r8d
mov ecx, 0x16d4a
movzx ebx, r14b
sub ecx, eax
mov eax, dword [rsp + 0x58]
sub ecx, eax
mov eax, dword [rsp + 0x6c]
sub ecx, eax
mov eax, dword [rbp - 0x54]
sub ecx, eax
mov eax, dword [0x140a0f0f0]
mov dword [rbp - 0x64], ecx
mov dword [rsp + 0x68], eax
movsx eax, byte [0x1400494e3]
cmp ebx, eax
mov eax, r8d
setne dl
cmp r14b, 0x30
setne al
cmp edx, eax
je 0x140020801
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov cl, byte [rsp + 0x50]
mov r15d, eax
mov dword [rbp - 0x50], eax
mov ecx, dword [rsp + 0x68]
add ecx, 0x2f
mov dword [rsp + 0x60], ecx
mov ecx, r13d
xor ecx, 0xc0074ddb
sub dword [0x140049590], ecx
mov ecx, dword [rsp + 0x68]
add ecx, 0xc7a1
mov dword [rsp + 0x60], ecx
mov eax, dword [rsp + 0x68]
movzx ecx, word [0x1400495fc]
add eax, 0xdeb0
mov dword [rsp + 0x6c], eax
movzx eax, r15b
xor ecx, eax
movzx eax, byte [str.MSUnsupportedAlgorit]
sub ecx, eax
lea eax, [rcx + 0x72ad2835]
not eax
cdqe
mov qword [rbp - 0x80], rax
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov byte [rsp + 0x5d], al
xor r9d, r9d
mov eax, dword [rbp - 0x20]
mov ecx, 0xe241
mov eax, dword [rbp - 0x1c]
mov r14d, r9d
mov eax, dword [rsp + 0x6c]
sub ecx, eax
cmp byte [str.MSUnsupportedAlgorit], r9b
mov eax, dword [0x140a0f0f0]
mov dword [rbp - 0x1c], ecx
sete r14b
mov dword [rsp + 0x68], eax
mov rax, qword [rbp - 0x78]
sub r14d, eax
mov eax, dword [rsp + 0x74]
shr eax, 6
not r14d
mov byte [rsp + 0x5d], al
mov eax, dword [rsp + 0x68]
mov ecx, dword [0x140049594]
add eax, 0x96
mov dword [rsp + 0x60], eax
mov rax, qword [rbp - 0x80]
cmp rcx, rax
jne 0x1400208d2
mov al, byte [0x1400495e8]
sub al, 0x48
mov byte [0x1400494fb], al
mov eax, dword [rsp + 0x68]
add eax, 0x1a2
mov dword [rsp + 0x6c], eax
call qword [sym.imp.USER32.dll_GetFocus]
xor edx, edx
test rax, rax
je 0x140020905
mov rcx, rax
call qword [sym.imp.USER32.dll_GetMenu]
mov rcx, rax
mov edx, 1
call qword [sym.imp.USER32.dll_GetSubMenu]
xor edx, edx
mov eax, edx
mov ecx, 0x59
cmp word [0x1400495fc], cx
setae al
cmp eax, 1
jae 0x140020933
movsx ecx, word [0x1400495b4]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [0x1400495f8], ax
xor edx, edx
jmp 0x140020955
movsxd rcx, dword [rsp + 0x70]
mov rax, qword [0x1400495c0]
cmp rcx, rax
jg 0x140020955
movzx eax, word [0x1400495fc]
add eax, 0x14
mov qword [0x140049610], rax
mov eax, dword [rsp + 0x68]
lea esi, [r13 + 0x1221841e]
add eax, 0xbc
mov dword [rsp + 0x60], eax
mov rax, qword [rbp - 0x30]
movzx eax, word [rsp + 0x54]
mov dword [rbp - 0x38], eax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x68], eax
movzx ecx, word [0x1400495f8]
mov rax, qword [0x1400495c8]
cmp rax, rcx
jae 0x1400209a6
movsx ecx, word [0x1400495b4]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [rsp + 0x54], ax
xor edx, edx
mov eax, dword [rsp + 0x68]
add eax, 0x1db
mov dword [rsp + 0x60], eax
movsx rcx, word [0x1400495b4]
mov rax, qword [0x140049580]
cmp rcx, rax
jb 0x1400209f1
movzx eax, word [0x140049514]
mov eax, dword [rsp + 0x70]
mov al, byte [0x1400495d4]
mov byte [0x140049513], al
movsx rax, word [0x1400495a0]
sar rax, 7
mov qword [0x1400495d8], rax
mov eax, dword [rsp + 0x68]
add eax, 0x1dc
cmp word [0x1400495fc], dx
mov dword [rbp - 0x58], eax
je 0x140020a15
lea esi, [r13 - 0x3d9c1e8d]
mov qword [rbp - 0x30], 0x1c45
mov eax, dword [rsp + 0x68]
add eax, 0x3a5
mov dword [rbp - 0x20], eax
mov qword [rbp - 0x80], rdx
mov al, byte [rsp + 0x5d]
mov rax, qword [rbp - 0x80]
test rax, rax
jne 0x140020a4d
mov cl, byte [0x140049608]
mov al, byte [0x1400495a4]
sub cl, 0x2a
shl al, 4
mov byte [0x1400494e5], al
mov dword [rbp - 0x50], ecx
movzx eax, word [0x1400495f8]
movabs rcx, 0xfa03b676de9a9
lea r15, [rax - 0x2b47]
mov al, byte [rsp + 0x50]
mov word [rsp + 0x68], ax
mov eax, 1
mov qword [0x1400495d8], rax
mov eax, dword [rsp + 0x74]
sub rax, rcx
mov qword [rbp - 0x18], r15
mov qword [0x140049580], rax
mov rax, qword [0x1400495d8]
test rax, rax
je 0x140020aac
cmp rax, 1
jne 0x140020ab4
movzx eax, word [0x140a0f0f0]
mov word [rsp + 0x78], ax
jmp 0x140020ab4
mov qword [rbp - 0x18], 0x53
mov qword [rsp + 0x40], rdx
lea rcx, [fcn.140027c40]
mov qword [rsp + 0x38], rdx
mov r15d, 0x104
mov qword [rsp + 0x30], rdx
mov r9d, r15d
mov qword [rsp + 0x28], rdx
xor r8d, r8d
mov qword [rsp + 0x20], rdx
lea rdx, [rbp + 0x30]
call fcn.140012594
mov rdx, qword [rbp - 8]
lea r8, [rbp + 0x30]
mov rcx, qword [rbp]
mov r9d, r15d
call fcn.1400147cc
mov r15d, dword [rbp - 0x50]
xor r9d, r9d
cmp eax, 3
jne 0x140020bee
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
test r15b, r15b
je 0x140020b28
movzx eax, byte [rsp + 0x64]
mov qword [0x140049578], rax
mov ecx, dword [rsp + 0x58]
mov r8d, r9d
mov eax, dword [rbp - 0x10]
add ecx, eax
mov eax, dword [0x1400494fc]
mov dword [rbp - 0x54], ecx
not eax
mov qword [rbp - 0x30], 1
mov rdx, qword [rbp - 0x78]
movsxd rcx, eax
movzx eax, word [rsp + 0x78]
add eax, ebx
and rdx, rcx
movsx ecx, word [0x1400495b8]
not ecx
cmove r8d, eax
mov eax, r13d
not eax
imul ecx, eax
mov rax, r9
sub rcx, qword [0x140049588]
test r8d, r8d
cmove rax, rcx
mov qword [0x140049600], rax
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x28]
add ecx, eax
mov dword [rbp - 0x28], ecx
movzx eax, word [rsp + 0x54]
shl ax, 4
mov word [rsp + 0x54], ax
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x68]
add ecx, eax
mov dword [rbp - 0x68], ecx
mov edx, dword [rbp - 0x54]
mov eax, dword [rbp - 0x54]
sub edx, eax
mov ecx, dword [rbp - 0x28]
cmp ecx, edx
je 0x140020bee
mov cl, byte [0x140036ab8]
movsd xmm0, qword [str.ibm00858]
mov byte [rbp + 0x18], cl
lea rcx, [rbp + 0x10]
movsd qword [rbp + 0x10], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rcx, eax
mov eax, 3
mov qword [0x1400495d8], rcx
jmp 0x140021ec9
mov qword [rsp + 0x30], r9
lea rcx, [rbp + 0x30]
mov dword [rsp + 0x28], r9d
mov edx, 0x80000000
xor r9d, r9d
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
xor r8d, r8d
mov qword [rbp - 0x10], rax
mov r10, rax
cmp rax, 0xffffffffffffffff
jne 0x140020df5
mov rdx, qword [rbp - 0x48]
movzx ecx, word [0x1400495d4]
sub rdx, rcx
mov rcx, qword [rbp - 0x48]
sub rdx, rcx
mov byte [0x1400494e4], 0x17
mov qword [rbp - 0x48], rdx
mov ecx, dword [rsp + 0x74]
movsx eax, byte [0x1400494e4]
add ecx, 0x17
cmp eax, ecx
jne 0x140020ce5
mov rax, qword [rbp - 0x80]
movabs rcx, 0x656bba6ee0fdb
movsxd rdx, dword [0x14004956c]
add rcx, rax
cmp rdx, rcx
jne 0x140020ce5
test edx, edx
je 0x140020c98
movsx edx, word [0x1400495b4]
movsx ecx, r13w
imul edx, ecx
mov word [0x1400495b4], dx
jmp 0x140020ce5
movzx eax, word [0x140049514]
test ax, ax
je 0x140020ce5
movsxd rcx, dword [0x14004956c]
mov eax, 0xb9c41957
sub rcx, qword [0x140049588]
imul rcx, rax
mov rax, r8
test rcx, rcx
sete al
mov qword [rbp - 0x80], rax
mov al, byte [rsp + 0x50]
test al, al
je 0x140020cd8
mov al, byte [0x140049554]
jmp 0x140020cdf
mov rax, qword [0x140049600]
mov byte [str.MSUnsupportedAlgorit], al
mov ecx, dword [0x1400495e4]
mov edx, r8d
add ecx, edi
mov byte [0x1400494e4], 0x17
mov rcx, qword [rbp - 0x78]
mov eax, ebx
sete dl
imul eax, r12d
sub edx, eax
movsxd rax, dword [0x1400494fc]
imul rcx, rax
add rdx, rcx
movzx ecx, word [0x1400495f8]
mov eax, dword [0x140a0f0f0]
add rcx, rdx
not rcx
mov qword [0x1400495c0], rcx
mov dword [rsp + 0x58], eax
mov al, byte [rsp + 0x5d]
mov eax, 0xd43b145d
mov word [0x140049554], r8w
mov qword [0x140049578], rax
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x5c]
add ecx, eax
mov dword [rbp - 0x5c], ecx
mov al, byte [0x1400494e3]
mov al, byte [rsp + 0x51]
mov eax, dword [rsp + 0x74]
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x64]
add ecx, eax
mov dword [rbp - 0x68], ecx
mov rax, qword [0x1400495c8]
cmp qword [0x1400495e8], rax
jbe 0x140020db9
movsx rcx, byte [rsp + 0x51]
mov edx, r8d
mov rax, qword [0x1400495c0]
cmp rax, rcx
mov rax, qword [0x1400495c0]
mov ecx, r8d
setle dl
cmp rax, 0x17
setle cl
cmp edx, ecx
ja 0x140020db9
mov al, byte [0x1400494fb]
sub al, 0x4a
mov byte [0x1400494fb], al
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x1c]
add ecx, eax
mov dword [rbp - 0x64], ecx
mov ecx, dword [rbp - 0x64]
mov eax, dword [rbp - 0x5c]
or ecx, eax
mov eax, dword [rbp - 0x68]
cmp ecx, eax
je 0x140020df5
movzx eax, word [0x1400495e0]
cmp eax, edi
ja 0x140020deb
mov eax, 1
mov word [0x1400495bc], ax
mov eax, 5
jmp 0x140021ec9
mov rcx, qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov r9d, 0x1000002
mov qword [rsp + 0x40], r8
mov rdx, r10
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
xor r8d, r8d
call fcn.140012594
mov ecx, dword [rsp + 0x6c]
xor r10d, r10d
mov edx, dword [rsp + 0x6c]
add ecx, 0xfffffdd2
imul edx, ecx
mov qword [rbp - 0x28], rax
cmp edx, 0x334
je 0x1400216d5
test r13d, r13d
je 0x140020e5f
movsx ecx, byte [0x1400494fb]
mov word [0x140049554], cx
jmp 0x140020e6d
movzx eax, word [0x140049514]
mov word [0x140049554], ax
mov al, byte [rsp + 0x50]
mov edx, r10d
cmp byte [0x140049513], al
mov eax, r10d
sete dl
cmp byte [0x140049513], 9
sete al
cmp edx, eax
jne 0x140020f06
movzx eax, word [0x1400495f8]
mov rdx, rbx
mov rcx, qword [0x140049580]
sub rdx, rax
movzx eax, word [0x1400495f8]
mov rax, qword [rbp - 0x78]
cmp rcx, rdx
jbe 0x140020ebb
lea edi, [r13 - 0x5ff9]
jmp 0x140020f28
cmp dword [0x140049594], r10d
jne 0x140020ed6
movsx eax, word [0x1400495b8]
not eax
test eax, eax
jne 0x140020ed6
mov eax, r10d
jmp 0x140020edb
mov eax, 1
cmp eax, esi
jne 0x140020f28
mov eax, dword [0x140a0f0f0]
movzx ecx, word [rsp + 0x78]
sub rcx, qword [0x1400495e8]
mov dword [0x140049590], eax
movzx eax, word [rsp + 0x78]
add ax, cx
mov word [rsp + 0x78], ax
jmp 0x140020f28
movabs rax, 0x12065ffaf06e9
movsxd rcx, esi
imul rcx, rax
movzx eax, word [0x1400495d4]
and rax, rcx
sub rcx, rax
mov qword [rbp - 0x40], rcx
mov eax, dword [0x140a0f0f0]
mov ecx, 0x9a095e31
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
add rcx, qword [0x1400495e8]
add eax, 0x47
mov qword [0x140049608], rcx
mov dword [0x1400495e4], 0xbd85b45d
mov dword [rbp - 0x64], eax
mov qword [0x1400495d8], 2
movzx r8d, r15b
lea eax, [r8 + 0xf32a]
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x58]
add eax, 0x59
mov dword [rbp - 0x64], eax
mov rax, qword [0x140049608]
lea rcx, [rax*2]
mov eax, dword [rsp + 0x58]
add eax, 0x4a4d
mov byte [0x140049513], 0xec
add rcx, r13
cmp qword [rbp - 0x40], 0xeb
mov qword [0x140049608], rcx
mov dword [rbp - 0x64], eax
jne 0x140020fdf
mov eax, 1
cmp dword [0x1400495e4], eax
jne 0x140020fdf
mov rcx, qword [0x140049600]
mov rax, qword [0x140049600]
sub rcx, rax
mov rax, qword [rbp - 0x80]
add rax, rcx
mov qword [0x140049600], rax
movzx eax, byte [rsp + 0x50]
mov r9d, dword [rbp - 0x34]
add rax, 0xac
mov byte [0x140049513], 0xec
mov qword [rbp - 0x80], rax
movsx ecx, byte [0x1400494e5]
movsx rax, word [0x1400495b4]
not ecx
movsxd rdx, ecx
movsx ecx, byte [0x1400494e3]
imul ecx, r9d
movzx r15d, r15b
and rdx, r15
sub rdx, rax
add rdx, qword [0x140049588]
imul eax, ecx, 0xd2aca99f
mov rcx, r10
test eax, eax
mov rax, qword [rbp - 0x78]
cmove rcx, rdx
mov qword [0x1400495e8], rcx
test rax, rax
jne 0x14002106d
mov eax, dword [rsp + 0x70]
mov ecx, r10d
test eax, eax
sete cl
cmp ecx, r8d
jae 0x14002106d
movzx eax, word [0x140049554]
not eax
sub eax, 0x71b3d00a
mov dword [0x1400495e4], eax
mov dword [rbp - 0x64], 0x2e9
movsx ecx, byte [0x1400494e3]
mov eax, dword [rsp + 0x70]
sub cl, al
mov byte [0x1400494e3], cl
mov al, byte [0x1400494e5]
test al, al
mov eax, dword [rsp + 0x74]
jne 0x140021099
mov rax, qword [rbp - 0x78]
mov byte [0x1400494fb], al
movabs r8, 0xede4e5f9dedec
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
add eax, 0x90
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x58]
add eax, 0x5c
mov dword [rbp - 0x5c], eax
movabs rax, 0x465464c72e91c
mov qword [rbp - 0x48], rax
mov eax, dword [rsp + 0x58]
add eax, 0xd2ee
mov dword [rbp - 0x5c], eax
mov qword [0x140049580], r8
mov rcx, qword [rbp - 0x80]
mov rax, qword [0x140049580]
add rcx, r8
cmp rax, rcx
jne 0x140021135
movzx ecx, byte [rsp + 0x5c]
movsx eax, byte [0x1400494e4]
add ecx, 0x86
cmp eax, ecx
jne 0x140021135
mov rdi, qword [0x140049580]
mov ecx, 0xab9b
mov rax, qword [rbp - 0x78]
sub edi, 0xe627
movzx edx, ax
imul edx, ecx
mov word [rsp + 0x54], dx
movsx eax, word [0x1400495a0]
imul ecx, eax, 0xaaf321d7
mov rax, qword [rbp - 0x18]
mov qword [0x140049580], r8
add rax, 0xffffffffffffff73
mov qword [0x1400495d8], rax
mov eax, dword [rbp - 0x70]
mov dword [0x140049594], ecx
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x6c]
add eax, 0x36
add ecx, eax
mov dword [rbp - 0x5c], ecx
movzx ecx, byte [rsp + 0x50]
mov edx, dword [rsp + 0x74]
mov eax, dword [rsp + 0x74]
add edx, ecx
and eax, edx
mov dword [rsp + 0x74], eax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
test r9d, r9d
jne 0x1400211cc
mov eax, dword [rbp - 0x38]
mov edx, r10d
movzx ecx, word [rsp + 0x54]
not eax
cmp eax, ecx
movsx eax, byte [rsp + 0x68]
setg dl
cmp eax, edx
jg 0x1400211cc
movzx eax, word [0x140049608]
mov ecx, 0x57b9
sub ax, cx
mov word [0x1400495bc], ax
mov al, byte [rsp + 0x5d]
mov eax, dword [rsp + 0x58]
add eax, 0x50
mov dword [rbp - 0x70], eax
call qword [sym.imp.USER32.dll_GetFocus]
xor r10d, r10d
mov rbx, rax
test rax, rax
je 0x140021205
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowEnabled]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowUnicode]
xor r10d, r10d
mov eax, dword [rsp + 0x58]
movabs rcx, 0xf4d241d2e7ccb
mov ebx, dword [rsp + 0x64]
add eax, 0x104
mov dword [rbp - 0x68], eax
mov rax, qword [0x140049600]
add rax, rcx
mov qword [rbp - 0x40], rax
mov eax, dword [rsp + 0x58]
add eax, 0x44
mov dword [rbp - 0x68], eax
mov rcx, qword [rbp - 0x80]
mov rax, qword [rbp - 0x80]
sub rcx, qword [0x1400495d8]
sub rcx, rax
mov qword [rbp - 0x80], rcx
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x6c]
sub ecx, eax
mov eax, dword [rbp - 0x60]
imul eax, ecx
imul edx, eax, 0x84
mov eax, dword [rbp - 0x70]
imul ecx, eax, 0x7a
mov rax, qword [0x140049608]
not rax
sub edx, ecx
add edx, 0x28ce
mov dword [rbp - 0x68], edx
test rax, rax
jne 0x14002128d
test bl, bl
jne 0x14002128d
mov ecx, r10d
lea edx, [rax + 1]
jmp 0x140021294
mov edx, 1
mov ecx, edx
mov rax, qword [0x1400495c8]
test rax, rax
je 0x1400212b1
mov rax, qword [0x140049578]
not rax
test rax, rax
mov eax, edx
jne 0x1400212b4
mov eax, r10d
cmp ecx, eax
ja 0x1400212f1
cmp qword [0x1400495e8], r10
mov rcx, r10
mov rax, qword [rbp - 0x78]
mov r8d, r10d
mov rdx, qword [0x1400495f0]
sete cl
movsxd r9, dword [0x1400495b0]
cmp rcx, rax
mov ecx, r10d
setbe r8b
cmp rdx, r9
setbe cl
cmp ecx, r8d
jb 0x14002132b
jmp 0x1400212f8
mov r9d, dword [0x1400495b0]
test r9d, r9d
je 0x140021310
mov rax, qword [0x140049608]
sar rax, 5
mov byte [0x1400494e4], al
jmp 0x14002132b
mov rax, qword [0x1400495c8]
mov ecx, r10d
movsx r12d, byte [0x1400494e5]
add rax, r13
sete cl
add r12d, ecx
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
mov word [0x1400495fc], ax
mov eax, dword [rsp + 0x58]
add eax, 0x8f91
movzx ecx, dil
mov dword [rbp - 0x70], eax
mov eax, dword [rsp + 0x58]
add eax, 0x27
mov dword [rbp - 0x60], eax
mov al, byte [0x1400494e5]
mov eax, dword [rsp + 0x70]
mov rax, qword [rbp - 0x78]
movzx eax, word [0x1400495b4]
mov eax, dword [rsp + 0x70]
mov eax, r14d
imul eax, esi
and r14d, eax
mov eax, dword [rsp + 0x58]
add eax, 0x44af
cmp dword [0x1400495e4], r10d
mov dword [rbp - 0x60], eax
mov qword [rbp - 0x78], 2
movzx eax, byte [rbp - 0x78]
cmovne ecx, eax
mov byte [0x1400494e5], cl
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x1400213e0
sub rax, 1
je 0x1400213d3
cmp rax, 1
jne 0x1400213fa
mov rax, qword [0x140049600]
mov ecx, 0x2162
movsx ecx, cx
movsx edx, ax
imul edx, ecx
mov word [0x1400495b4], dx
jmp 0x1400213fa
mov r12, qword [0x1400495c8]
shr r12, 2
jmp 0x1400213fa
mov al, byte [rsp + 0x50]
neg al
mov byte [0x1400494e7], al
movzx eax, bl
sub ax, 0x15
mov word [0x1400495b8], ax
movzx eax, byte [0x140049513]
cmp eax, dword [0x140049594]
je 0x14002142d
mov rax, qword [rbp - 0x78]
cmp r15, rax
jae 0x140021421
mov rax, qword [0x1400495c8]
add byte [0x140049513], al
jmp 0x14002142f
mov eax, dword [0x140a0f0f0]
mov qword [rbp - 0x18], rax
jmp 0x14002142f
dec edi
mov ecx, dword [rbp - 0x60]
mov eax, dword [rbp - 0x70]
xor ecx, eax
sub ecx, 0xc960
mov dword [rbp - 0x70], ecx
cmp qword [rbp - 0x28], r10
jne 0x140021454
mov al, byte [rsp + 0x50]
mov ebx, 6
jmp 0x140021e98
mov rcx, qword [sym.imp.KERNEL32.dll_GetLastError]
xor r9d, r9d
mov qword [rsp + 0x40], r10
xor r8d, r8d
mov qword [rsp + 0x38], r10
xor edx, edx
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r10
call fcn.140012594
mov r13d, dword [rbp - 0x34]
xor r10d, r10d
cmp rax, 0xb7
jne 0x1400216d5
cmp qword [0x1400495e8], r15
mov edx, r10d
mov eax, r10d
seta dl
cmp qword [0x1400495e8], 0x46
seta al
cmp edx, eax
jae 0x1400214dc
mov rdx, qword [rbp - 0x48]
mov ecx, r13d
not rdx
mov eax, r14d
and rdx, rax
sub ecx, r12d
add rdx, rcx
mov al, bl
sub al, byte [0x140049610]
not rdx
not al
add al, dl
mov byte [rsp + 0x5d], al
mov eax, dword [rsp + 0x70]
mov edx, r10d
movzx ecx, word [0x1400495fc]
cmp ecx, eax
mov eax, r10d
setl dl
cmp word [0x1400495fc], 0x64
setb al
cmp edx, eax
je 0x140021540
movzx ecx, byte [str.MSUnsupportedAlgorit]
movzx eax, word [rsp + 0x54]
cmp cx, ax
ja 0x140021539
mov edx, dword [0x1400495e4]
mov eax, dword [rbp - 0x38]
mov rcx, qword [rbp - 0x80]
xor rdx, rax
mov rax, qword [0x140049608]
inc rax
imul rcx, rax
add rcx, rdx
mov qword [rbp - 0x30], rcx
jmp 0x140021544
mov byte [rsp + 0x5c], 0x3c
jmp 0x140021544
mov al, byte [rsp + 0x51]
mov eax, dword [0x140a0f0f0]
lea ecx, [r13 + 0x6aa0b157]
mov dword [rsp + 0x58], eax
mov ebx, 1
movzx r12d, byte [rsp + 0x50]
mov qword [0x140049588], rcx
sub r12d, 0xd441
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x64]
add ecx, eax
mov dword [rsp + 0x6c], ecx
movsx ecx, byte [0x1400494fb]
movzx eax, byte [rsp + 0x50]
not ecx
imul eax, ecx
movzx ecx, word [0x1400495e0]
not ecx
movsxd r8, ecx
movabs rcx, 0x7f560e5e16a4e
movsxd rdx, eax
movsx rax, byte [0x1400494e5]
sub r8, rdx
mov rdx, qword [rbp - 0x78]
add dx, ax
mov eax, r10d
add dx, word [0x140049554]
cmp r8, rcx
cmove ax, dx
mov word [0x1400495d4], ax
mov eax, dword [0x140a0f0f0]
mov qword [0x140049580], rax
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x5c]
add ecx, eax
imul rax, qword [0x1400495a8], 0x135f
mov dword [rbp - 0x6c], ecx
movzx ecx, word [0x140049514]
sub cx, ax
mov word [0x140049514], cx
mov rax, qword [rbp - 0x48]
movzx r8d, word [0x1400495b4]
add al, byte [0x1400495a4]
add al, byte [0x1400495a8]
mov ecx, dword [rsp + 0x58]
add al, bl
not al
sub al, byte [0x1400494e4]
add r8b, al
mov eax, dword [rbp - 0x68]
add ecx, eax
mov word [rsp + 0x68], r8w
mov dword [rbp - 0x60], ecx
mov edx, dword [rbp - 0x60]
mov eax, dword [rsp + 0x6c]
or edx, eax
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x70]
xor ecx, eax
add edx, ecx
mov byte [rsp + 0x7c], r8b
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rsp + 0x6c]
sub ecx, eax
cmp edx, ecx
je 0x1400216da
movsx eax, r8b
mov ecx, r10d
cmp eax, dword [0x1400494fc]
mov eax, r10d
setge cl
cmp r8b, 0x3b
setge al
cmp ecx, eax
jae 0x14002169a
test r14d, r14d
je 0x1400216cb
test esi, esi
je 0x14002168d
mov al, byte [rsp + 0x7c]
jmp 0x140021693
mov al, byte [0x1400494fb]
movzx eax, word [rsp + 0x78]
jmp 0x1400216cb
movzx edx, word [rsp + 0x54]
movsx eax, byte [rsp + 0x51]
sub dx, ax
movzx eax, word [rsp + 0x54]
xor dx, ax
mov word [rsp + 0x54], dx
mov rcx, qword [rbp - 0x78]
imul rcx, qword [0x1400495d8]
mov rax, qword [rbp - 0x78]
sub rax, rcx
mov qword [rbp - 0x78], rax
mov ebx, 7
jmp 0x140021e98
mov ebx, 1
mov rdx, qword [rbp - 0x28]
xor r9d, r9d
mov rcx, qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r10
lea r8d, [r9 + 4]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r10
call fcn.140012594
mov r8d, dword [rbp - 0x20]
mov r15, rax
mov ecx, dword [rbp - 0x58]
and r8d, ecx
mov ecx, dword [rsp + 0x60]
imul edx, ecx, 0x331
cmp edx, r8d
je 0x140021e1f
movsx edx, byte [0x1400494e4]
movzx ecx, word [0x1400495d4]
mov qword [0x1400495d8], rbx
xor ebx, ebx
mov dword [0x140049590], 0x86
cmp ecx, edx
jne 0x14002177a
test esi, esi
je 0x14002175f
mov al, byte [0x140a0f0f0]
mov byte [rsp + 0x50], al
jmp 0x1400217d6
movsxd rax, dword [0x140b5788c]
sub r14b, 0x6f
mov byte [str.MSUnsupportedAlgorit], r14b
mov qword [0x140049588], rax
jmp 0x1400217d6
test r14d, r14d
je 0x1400217b7
movzx eax, byte [rsp + 0x50]
movsx ecx, word [0x1400495b8]
sub ecx, eax
mov al, byte [rsp + 0x50]
add al, cl
mov ecx, ebx
cmp word [0x140049554], bx
mov byte [rsp + 0x50], al
movzx eax, dil
cmove ecx, eax
movzx eax, dil
movzx ecx, cl
imul ecx, eax
mov byte [rsp + 0x5c], cl
jmp 0x1400217d6
movzx edx, word [rsp + 0x54]
mov eax, r13d
mov ecx, dword [0x1400495e4]
not eax
cmp eax, edx
cmovne ecx, dword [0x1400495e8]
mov dword [0x1400495e4], ecx
cmp word [0x1400495fc], bx
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
je 0x14002184d
mov eax, dword [0x1400495d0]
cmp esi, eax
ja 0x140021807
mov al, byte [rsp + 0x5c]
movzx r12d, byte [str.MSUnsupportedAlgorit]
sub al, 0x15
mov byte [rsp + 0x51], al
jmp 0x14002184d
movsx eax, byte [0x1400494e4]
mov ecx, ebx
not eax
movsxd rdx, eax
mov rax, qword [0x140049588]
not rax
cmp rdx, rax
sete cl
cmp ecx, r13d
je 0x14002184d
mov rax, qword [0x140049600]
mov ecx, 0xe3
movzx edx, ax
mov eax, 4
imul edx, ecx
mov word [0x1400495d4], dx
mov word [rsp + 0x54], ax
mov eax, dword [rsp + 0x58]
lea rcx, str.gdi32
add eax, 0xd4da
mov dword [rsp + 0x60], eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r9, qword [rbp - 0x18]
mov r14d, dword [rsp + 0x64]
mov dword [0x1400495b0], eax
mov eax, dword [rsp + 0x58]
add eax, 0xb675
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x58]
add eax, 0xcd
mov dword [rsp + 0x60], eax
mov eax, 4
mov dword [0x1400495d0], eax
mov ecx, dword [rsp + 0x70]
mov r8b, byte [rsp + 0x50]
not ecx
movzx eax, word [0x1400495a4]
inc eax
add ecx, eax
movzx ecx, r12b
sete al
add r8b, al
mov rax, qword [0x140049580]
movzx edx, al
mov eax, dword [0x1400495d0]
imul edx, ecx
sub dl, r9b
add dl, r14b
xor dl, r8b
not dl
mov byte [0x1400494e7], dl
test eax, eax
je 0x14002195c
sub eax, 1
je 0x140021938
sub eax, 1
je 0x140021932
sub eax, 1
je 0x140021910
mov r13, qword [rbp - 0x40]
cmp eax, 1
jne 0x14002198c
mov rax, qword [0x140049598]
shl rax, 6
mov qword [rbp - 0x48], rax
jmp 0x14002198c
movsx eax, byte [0x140049594]
imul ecx, eax, 0x3b
mov eax, edi
mov byte [rsp + 0x5d], cl
test r14b, r14b
jne 0x14002192c
movsx eax, word [0x1400495b4]
mov byte [rsp + 0x51], al
jmp 0x140021956
mov eax, dword [rsp + 0x74]
jmp 0x140021956
mov eax, dword [rbp - 0x38]
mov ecx, 0x3c8b
sub ax, cx
mov word [0x140049514], ax
movsx ecx, byte [rsp + 0x5d]
shl ecx, 8
mov dword [rsp + 0x70], ecx
mov r13, qword [rbp - 0x40]
jmp 0x14002198c
mov al, byte [rsp + 0x50]
test edi, edi
mov rax, qword [rbp - 0x80]
mov rcx, rbx
mov r13, qword [rbp - 0x40]
sete cl
xor rax, r9
xor rcx, r13
add rcx, rax
mov rax, qword [rbp - 0x48]
cmp rcx, rax
mov eax, ebx
sete al
mov word [0x1400495a4], ax
mov rax, qword [0x1400495c0]
mov ecx, 0xd9
xor ax, cx
mov word [rsp + 0x78], ax
movsx ecx, byte [rsp + 0x51]
mov eax, dword [0x14004956c]
lea edx, [rax + rax]
mov eax, dword [rsp + 0x60]
add ecx, edx
mov edx, ebx
mov dword [0x14004956c], ecx
imul ecx, eax, 0x17
xor ecx, 0x1252
mov dword [rbp - 0x60], ecx
movzx ecx, word [0x1400495e0]
movzx eax, word [rsp + 0x54]
cmp ax, cx
movzx eax, word [rsp + 0x54]
mov ecx, ebx
setne dl
cmp ax, 0x5f
setne cl
cmp edx, ecx
ja 0x140021a20
movsxd rcx, dword [rsp + 0x70]
mov edx, ebx
mov rax, qword [0x140049578]
cmp rcx, rax
mov eax, dword [rsp + 0x70]
mov ecx, ebx
seta dl
cmp eax, 0x4b
setg cl
cmp edx, ecx
ja 0x140021a3e
movzx eax, word [0x140049590]
mov word [0x1400495b4], ax
jmp 0x140021a3e
mov eax, dword [rsp + 0x70]
mov ecx, ebx
test eax, eax
sete cl
cmp ecx, dword [0x140049590]
jle 0x140021a3e
add sil, 6
mov byte [rsp + 0x50], sil
xor ebx, ebx
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [0x140049594]
add eax, 0x8169
mov dword [rsp + 0x60], eax
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [0x1400495b4], ax
mov eax, dword [rsp + 0x58]
add eax, 0xcb3a
mov dword [rbp - 0x58], eax
call qword [sym.imp.KERNEL32.dll_GetOEMCP]
mov ecx, dword [rsp + 0x58]
mov esi, eax
add ecx, 0xe
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x74], 4
movzx edx, word [rsp + 0x54]
movzx ecx, word [rsp + 0x54]
sub edx, r12d
movsx r12, word [rsp + 0x68]
sub dx, cx
mov word [rsp + 0x54], dx
movzx ecx, byte [rsp + 0x50]
movsx edx, word [0x1400495a0]
sub edx, ecx
movsx rax, r12b
movsxd rcx, edx
sub rcx, rax
mov rax, qword [0x140049578]
add eax, ecx
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x74]
dec eax
sub eax, 1
je 0x140021b39
sub eax, 1
je 0x140021b16
cmp eax, 1
jne 0x140021b4e
mov al, byte [0x1400494e5]
add al, dil
cmp word [0x1400495fc], bx
mov byte [str.MSUnsupportedAlgorit], al
movzx eax, word [0x1400495a0]
cmovne ax, word [0x1400495b8]
movsx rax, ax
mov qword [0x1400495c0], rax
jmp 0x140021b4e
movsx edx, word [0x1400495b4]
movsx eax, word [0x1400495b4]
movzx ecx, byte [0x140049513]
add eax, edx
add cx, ax
mov word [0x1400495b4], cx
jmp 0x140021b4e
mov al, byte [rsp + 0x51]
imul ecx, dword [0x140049590], 0xdfdb22e9
sub qword [0x140049610], rcx
mov ecx, dword [rsp + 0x60]
mov eax, dword [rbp - 0x58]
imul ecx, eax
xor ecx, 0xb1ef6
mov dword [rbp - 0x58], ecx
call qword [sym.imp.USER32.dll_GetCursor]
test rax, rax
je 0x140021b74
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetCaretPos]
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
movzx eax, word [rsp + 0x78]
test ax, ax
je 0x140021ba3
movsxd rax, dword [0x1400495b0]
movabs rcx, 0xd3f20a8d77b6e
add rax, rcx
mov qword [0x140049588], rax
mov eax, dword [rsp + 0x58]
add eax, 0xb2
mov dword [rsp + 0x60], eax
movzx eax, word [0x1400495b4]
sub al, 0x65
mov byte [rsp + 0x51], al
mov eax, dword [rsp + 0x58]
add eax, 0x13ae
mov dword [rbp - 0x70], eax
mov eax, dword [rsp + 0x58]
add eax, 0x128c
mov dword [rbp - 0x70], eax
call qword [sym.imp.USER32.dll_GetFocus]
mov rbx, rax
test rax, rax
je 0x140021bf5
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowVisible]
movzx eax, word [0x1400495e0]
movzx r8d, r14b
xor r14d, r14d
imul r8d, eax
movzx eax, word [0x1400495e0]
and r8w, ax
mov word [0x1400495e0], r8w
mov eax, dword [rsp + 0x60]
add eax, 0xe9c8
xor eax, 0xe9fa
mov dword [rsp + 0x60], eax
test r15, r15
jne 0x140021e22
movzx eax, word [0x140049514]
mov edx, r14d
test ax, ax
movsxd rax, dword [rsp + 0x70]
mov r8, qword [0x1400495c0]
mov ecx, dword [rsp + 0x70]
sete dl
add rax, rdx
not ecx
and cl, byte [0x140049610]
add r8, rax
add r8, qword [0x1400495e8]
movsx edx, cl
not r8
movsx eax, sil
imul edx, eax
not dl
add dl, r8b
mov r8d, 0x88fdd506
mov byte [rsp + 0x51], dl
mov edx, 0x71534b5
mov rcx, qword [rbp - 0x30]
mov rax, qword [0x140049578]
add rcx, r8
mov dword [0x1400495e4], edx
cmp rax, rcx
jne 0x140021cfe
lea r13d, [r14 + 1]
movsx ecx, byte [0x1400494e5]
mov eax, dword [rsp + 0x74]
add eax, ecx
cmp eax, r13d
jne 0x140021cfa
mov rax, qword [rbp - 0x80]
mov ecx, r14d
test rax, rax
movzx eax, word [0x1400495d4]
sete cl
sub ecx, eax
movzx eax, word [rsp + 0x54]
add cl, byte [0x1400494fc]
sub cl, al
mov dword [0x1400495e4], edx
mov byte [rsp + 0x5c], cl
mov rcx, qword [rbp - 0x30]
mov rax, qword [0x140049578]
add rcx, r8
cmp rax, rcx
je 0x140021ca8
mov r13, qword [rbp - 0x40]
mov eax, dword [0x140a0f0f0]
mov ecx, dword [rbp - 0x50]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp - 0x80]
mov rax, qword [0x140049600]
movzx eax, cl
mov ecx, dword [rsp + 0x58]
mov word [0x1400495bc], ax
mov eax, dword [rbp - 0x60]
add ecx, eax
mov dword [rbp - 0x6c], ecx
mov ecx, dword [rsp + 0x58]
mov eax, dword [rbp - 0x58]
add ecx, eax
mov dword [rbp - 0x58], ecx
call qword [sym.imp.USER32.dll_AnyPopup]
mov eax, eax
mov qword [0x1400495f0], rax
mov rax, qword [0x1400495f0]
mov rax, qword [0x1400495f0]
cmp rax, 0x17
jae 0x140021d90
movsx edx, word [0x1400495a0]
mov r8d, r14d
movzx ecx, word [0x1400495bc]
mov eax, r14d
cmp edx, ecx
setne r8b
cmp edx, 0x5f
setne al
cmp r8d, eax
jbe 0x140021db3
mov ecx, dword [rsp + 0x70]
mov eax, dword [rsp + 0x74]
add ecx, eax
mov dword [rsp + 0x74], ecx
jmp 0x140021db3
movzx eax, byte [0x1400494e7]
mov rcx, qword [rbp - 0x80]
xor ecx, eax
movsx eax, r12b
not ecx
mov dword [rsp + 0x74], ecx
imul ecx, eax, 0xb7fee115
mov dword [0x14004956c], ecx
mov ecx, dword [rsp + 0x58]
mov eax, dword [rsp + 0x60]
add ecx, eax
mov dword [rsp + 0x6c], ecx
mov edx, dword [rsp + 0x6c]
mov eax, dword [rbp - 0x6c]
mov ecx, dword [rbp - 0x58]
imul edx, eax
mov eax, dword [rbp - 0x6c]
imul ecx, eax
mov eax, dword [rsp + 0x6c]
sub edx, ecx
cmp edx, eax
je 0x140021e22
mov rdx, qword [rbp - 0x28]
lea rax, [r13 + 0x2b]
mov rcx, qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r9d, r9d
mov qword [rsp + 0x40], r14
xor r8d, r8d
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
mov qword [0x1400495c8], rax
call fcn.140012594
mov ebx, 9
jmp 0x140021e95
xor r14d, r14d
mov r9, qword [rbp + 8]
mov r8, r15
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp]
call fcn.14001f9b8
mov rcx, qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
xor r9d, r9d
mov qword [rsp + 0x40], r14
xor r8d, r8d
mov qword [rsp + 0x38], r14
mov rdx, r15
mov qword [rsp + 0x30], r14
mov ebx, eax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
call fcn.140012594
mov rdx, qword [rbp - 0x28]
xor r9d, r9d
mov rcx, qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r8d, r8d
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
call fcn.140012594
xor r10d, r10d
mov rdx, qword [rbp - 0x10]
xor r9d, r9d
mov rcx, qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r8d, r8d
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r10
call fcn.140012594
mov eax, ebx
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.1400267f0
mov rbx, qword [rsp + 0x2a0]
add rsp, 0x250
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret