Function at 0x140001b80
Capabilities:
Check for foreground window switch
Check for software breakpoints
Check for time delay via gettickcount
Get graphical window text
Log keystrokes via polling
Set current directory

Disassembly:
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x13d8]
mov eax, 0x14d8
call fcn.140100df0
sub rsp, rax
movaps xmmword [rsp + 0x14c0], xmm6
movaps xmmword [rsp + 0x14b0], xmm7
mov edi, edx
mov r13d, ecx
mov byte [rsp + 0x48], 0
mov ebx, 1
movaps xmmword [rsp + 0x14a0], xmm8
cmp edx, 2
jne 0x140001be7
cmp byte [0x14013f889], 0
mov edi, ebx
jne 0x140001be7
mov byte [0x14013f889], bl
mov byte [rsp + 0x48], bl
xor esi, esi
cmp dword [0x140143dfc], esi
je 0x140001c21
cmp qword [0x140143de0], rsi
je 0x140001c0e
mov rcx, qword [0x140143dd0]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov qword [0x140143de0], rsi
call qword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x140143dfc], esi
mov qword [0x140143dd0], rsi
cmp r13d, 0x8000012f
jne 0x140001c42
mov r13d, 0xa
mov byte [rbp + 0x1430], bl
mov dword [rbp - 0x68], esi
mov dword [rbp + 0x1420], r13d
jmp 0x140001c61
cmp r13d, 5
setle al
mov byte [rbp + 0x1430], al
test al, al
je 0x140001c58
mov dword [rbp - 0x68], esi
jmp 0x140001c61
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp - 0x68], eax
cmp dword [0x140140538], esi
je 0x140001c6e
call fcn.140004330
xor r14b, r14b
cmp dword [0x140143cd4], esi
mov dword [rsp + 0x44], r14d
je 0x140001c92
call fcn.140004060
movzx r14d, r14b
test al, al
cmovne r14d, ebx
mov dword [rsp + 0x44], r14d
test r13d, r13d
jle 0x140001cd2
cmp edi, ebx
jne 0x140001cd2
inc dword [0x14013f894]
cmp byte [0x14013f883], sil
mov byte [rsp + 0x49], bl
jne 0x140001cd7
mov rcx, qword [0x14013f6f8]
xor r9d, r9d
lea edx, [r9 + 9]
lea r8d, [r9 + 0xa]
call qword [sym.imp.USER32.dll_SetTimer]
test rax, rax
setne byte [0x14013f883]
jmp 0x140001cd7
mov byte [rsp + 0x49], sil
movsd xmm7, qword [0x1401279a8]
movsd xmm8, qword [0x1401279e0]
movsd xmm6, qword [0x1401279d8]
mov r15, qword [rbp + 0x1430]
mov r12, qword [rbp - 0x50]
movsxd rax, edi
mov qword [rbp - 8], rax
mov byte [rsp + 0x50], sil
mov byte [rbp + 0x1428], sil
mov dword [rsp + 0x40], esi
xor dil, dil
jmp 0x140001d36
mov r13d, dword [rbp + 0x1420]
jmp 0x140001d31
mov esi, dword [rsp + 0x40]
jmp 0x140001d31
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
mov r14d, dword [rsp + 0x44]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
test r13d, r13d
jle 0x140001d9a
test dil, dil
jne 0x140001d9a
cmp byte [0x14013f889], dil
jne 0x140001da7
call fcn.140004d60
mov r9d, 0x311
lea rcx, [rsp + 0x60]
test eax, eax
mov eax, 0
cmovne r9d, eax
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x140001d36
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x140002073
mov dword [0x140143d48], eax
jmp 0x140002073
cmp byte [0x14013f889], 0
je 0x140001f20
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rdi, rax
test rax, rax
je 0x140001f20
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x1401430c0]
jne 0x140001f20
cmp dword [0x14013f8dc], 0
je 0x140001e0c
lea rdx, [rbp + 0x140]
mov r8d, SafeArrayAllocDescriptor
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rsi, [rbp + 0x140]
lea rdi, str.32770
mov ecx, 7
repe cmpsw word [rsi], word [rdi]
sete al
test al, al
jne 0x140001e65
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
je 0x140001f20
lea rdx, [rbp + 0x140]
mov r8d, SafeArrayAllocDescriptor
mov rcx, rax
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, str.SysTreeView32
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x140001e65
lea rdx, str.SysListView32
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x140001f20
call fcn.140004d60
mov edi, 0x311
lea rcx, [rsp + 0x60]
test eax, eax
mov eax, 0xffffffff
mov r9d, 0x1ff
cmovne edi, eax
xor eax, eax
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_PeekMessageW]
xor edx, edx
mov r9d, edi
mov r8d, 0x20e
lea rcx, [rsp + 0x60]
test eax, eax
jne 0x140001ebf
mov eax, 1
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_PeekMessageW]
xor edi, edi
jmp 0x140001faa
mov esi, dword [rbp - 0x80]
xor eax, eax
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_PeekMessageW]
xor edx, edx
lea rcx, [rsp + 0x60]
test eax, eax
jne 0x140001ef8
mov eax, 1
mov dword [rsp + 0x20], eax
mov r9d, 0x1ff
xor r8d, r8d
call qword [sym.imp.USER32.dll_PeekMessageW]
xor edi, edi
jmp 0x140001faa
mov eax, dword [rbp - 0x80]
sub eax, esi
test eax, eax
mov eax, 1
mov dword [rsp + 0x20], eax
jg 0x140001ee2
mov r9d, edi
mov r8d, 0x20e
call qword [sym.imp.USER32.dll_PeekMessageW]
xor edi, edi
jmp 0x140001faa
cmp dword [0x14013b0c8], 0
je 0x140001f81
cmp dword [0x14013f8d0], 0
jne 0x140001f81
mov rcx, qword [0x14013b0f8]
cmp byte [rcx + 0x12c], 0
jne 0x140001f76
cmp byte [rcx + 0x12e], 0
jne 0x140001f76
cmp dword [rcx + 0x120], 0xffffffff
jle 0x140001f76
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14013b0f8]
sub eax, dword [rcx + 0x11c]
cmp eax, dword [rcx + 0x120]
jb 0x140001f76
mov byte [rcx + 0x12c], 1
movzx eax, byte [rcx + 0x12c]
xor edi, edi
jmp 0x140001f85
xor edi, edi
mov eax, edi
test eax, eax
mov r9d, 0x311
mov eax, 1
cmovne r9d, edi
lea rcx, [rsp + 0x60]
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x140002068
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x140143d48]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
cmova edx, eax
mov dword [0x140143d48], edx
test r13d, r13d
jne 0x140001ff7
cmp byte [rsp + 0x50], r13b
jne 0x140001ff7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
mov byte [rsp + 0x50], 1
jmp 0x140001d36
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x14000202d
cmp byte [rbp + 0x1430], sil
je 0x14000202d
test r13d, r13d
jle 0x140002016
lea ecx, [rsi + 5]
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx edi, byte [rbp + 0x1428]
mov eax, 1
mov esi, eax
mov dword [rsp + 0x40], eax
jmp 0x140001d36
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [rbp + 0x1430], 0
jne 0x140003eab
mov ecx, dword [rbp - 0x68]
sub ecx, eax
add ecx, r13d
cmp ecx, 5
jle 0x140003eab
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
inc esi
cmp dword [0x1401430e0], 0
mov dword [rsp + 0x40], esi
je 0x1400020c1
cmp dword [0x14013b0c8], 0
je 0x1400020c1
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
lea rax, [rbp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.1400043b0
test al, al
jne 0x140001d36
mov r9d, dword [0x14013f8e4]
mov r10, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x68]
test r9d, r9d
je 0x140002790
test r10, r10
je 0x140002790
cmp r10, qword [0x14013f6f8]
je 0x140002790
cmp r11d, 0x414
je 0x140002790
cmp r11d, 0x402
je 0x140002790
lea eax, [r11 - 0x100]
cmp eax, 9
ja 0x140002528
call qword [sym.imp.USER32.dll_GetFocus]
mov rbx, rax
test rax, rax
je 0x140002517
mov rcx, rax
call fcn.1400e9c00
mov rdi, rax
test rax, rax
je 0x140002517
mov rcx, rbx
call fcn.1400b12b0
mov r15, rax
test rax, rax
je 0x140002517
mov rdx, qword [rax + 0xb8]
test rdx, rdx
je 0x14000217e
lea r8, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
movzx edi, byte [rbp + 0x1428]
test eax, eax
jne 0x140001d36
mov r11d, dword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
cmp r11d, 0x100
jne 0x14000224b
cmp byte [r15 + 0x108], 0
je 0x1400021f0
cmp rdi, 0x22
je 0x1400021bd
cmp rdi, 0x21
je 0x1400021bd
cmp rdi, 9
je 0x1400021bd
cmp rdi, 0x25
je 0x1400021bd
cmp rdi, 0x27
jne 0x1400021f0
mov rdx, rbx
mov rcx, r15
call fcn.140001a40
cmp eax, 0x2af8
jne 0x14000227d
xor eax, eax
mov qword [rbp - 0x70], rax
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
cmp r11d, 0x100
jne 0x14000224b
mov esi, dword [rsp + 0x40]
cmp rdi, 0x1b
je 0x140002225
cmp rdi, 9
je 0x140002225
cmp rdi, 0x41
jne 0x14000224b
lea ecx, [rdi - 0x30]
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x8000
test di, ax
je 0x140002241
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
test di, ax
jne 0x140002241
mov rdx, rbx
mov rcx, r15
call fcn.140001a40
cmp eax, 0x2af8
jne 0x140002407
xor eax, eax
mov qword [rbp - 0x70], rax
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
mov rcx, qword [0x140141f30]
test rcx, rcx
je 0x14000250b
cmp r11d, 0x100
jne 0x14000250b
cmp rdi, 0xd
jne 0x1400024dc
xor r9d, r9d
xor r8d, r8d
jmp 0x1400024e9
mov r13d, eax
imul r13, r13, 0x58
add r13, qword [r15 + 0x28]
mov qword [rbp - 0x70], r13
je 0x1400021d9
movzx eax, byte [r13 + 8]
cmp al, 0xf
je 0x1400021d9
mov rdi, qword [rsp + 0x70]
xor edx, edx
mov esi, edx
cmp al, 0x13
jne 0x1400022ec
mov rsi, r13
cmp rdi, 0x25
je 0x1400022bb
cmp rdi, 0x27
jne 0x1400022ec
cmp rdi, 0x27
mov byte [rsp + 0x20], dl
mov rcx, r15
sete r8b
xor r9d, r9d
mov rdx, r13
call fcn.1400c76e0
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
cmp rdi, 0x25
je 0x1400021de
cmp rdi, 0x27
je 0x1400021de
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElemsize
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1400021d9
mov rdi, qword [rsp + 0x70]
cmp rdi, 9
jne 0x140002345
cmp byte [r13 + 8], 0xc
jne 0x140002345
mov rcx, qword [r13]
lea edx, [rdi - 0x19]
call qword [sym.imp.USER32.dll_GetWindowLongW]
test al, 4
jne 0x1400021d9
mov rdi, qword [rsp + 0x70]
test rsi, rsi
jne 0x1400023a0
movzx edx, byte [r13 + 0xa]
mov rcx, r15
call fcn.1400c7400
mov rsi, rax
test rax, rax
jne 0x1400023a0
mov esi, dword [r15 + 0x20]
xor cl, cl
mov edx, eax
test esi, esi
je 0x1400021de
mov r8, qword [r15 + 0x28]
lea rax, [r8 + 8]
cmp byte [rax], 0x13
jne 0x140002382
test cl, cl
je 0x140002391
inc cl
inc edx
add rax, 0x58
cmp edx, esi
jb 0x140002377
jmp 0x1400021de
mov esi, edx
imul rsi, rsi, 0x58
add rsi, r8
je 0x1400021de
mov rcx, qword [rsi]
call qword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x1400021d9
mov rax, qword [rsp + 0x70]
cmp rax, 0x22
je 0x1400023da
cmp rax, 9
jne 0x1400023d5
lea ecx, [rax + 7]
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1400023da
xor r8d, r8d
jmp 0x1400023dd
mov r8b, 1
mov r9b, 1
mov rdx, rsi
mov rcx, r15
mov byte [rsp + 0x20], 1
call fcn.1400c76e0
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov r13d, eax
imul r13, r13, 0x58
add r13, qword [r15 + 0x28]
mov qword [rbp - 0x70], r13
je 0x140002241
cmp byte [r13 + 8], 0xc
jne 0x140002241
mov rdi, qword [rsp + 0x70]
cmp rdi, 0x1b
je 0x1400024a6
cmp rdi, 0x41
je 0x140002472
test byte [r13 + 9], 0x80
je 0x140002246
mov rcx, qword [r13]
lea r9, [0x140103614]
mov edx, 0xc2
mov r8d, 1
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13d, dword [rbp + 0x1420]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
test byte [r13 + 9], 2
jne 0x140002246
mov rcx, qword [r13]
or r9, 0xffffffffffffffff
xor r8d, r8d
mov edx, 0xb1
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13d, dword [rbp + 0x1420]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
cmp qword [r15 + 0x40], 0
mov r13d, dword [rbp + 0x1420]
movzx edi, byte [rbp + 0x1428]
je 0x140001d36
mov rcx, qword [r15 + 8]
xor r9d, r9d
mov edx, 0x414
mov r8d, 0x2af80007
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x140001d36
cmp rdi, 0x1b
jne 0x14000250b
xor r9d, r9d
lea r8d, [rdi - 0x1a]
mov edx, 0x1116
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov r13d, dword [rbp + 0x1420]
jmp 0x1400026f7
mov r11d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
mov r9d, dword [0x14013f8e4]
cmp r11d, 0x20a
je 0x140002544
cmp r11d, 0x20e
je 0x140002544
mov rdi, qword [rsp + 0x70]
jmp 0x140002703
mov rcx, qword [rbp - 0x7c]
call qword [sym.imp.USER32.dll_WindowFromPoint]
mov edx, 0xfffffff0
mov rcx, rax
mov rdi, rax
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, rdi
mov esi, eax
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.1400b1270
test rax, rax
je 0x1400025df
cmp rdi, qword [rsp + 0x60]
jne 0x1400025a0
mov r9, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov r8d, esi
mov rcx, rdi
call fcn.140001ab0
test eax, eax
jne 0x1400025df
mov rcx, qword [rsp + 0x60]
cmp rdi, rcx
je 0x1400025e4
mov r9, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov r8d, esi
mov rcx, rdi
call fcn.140001ab0
test eax, eax
je 0x1400025df
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov rcx, qword [rsp + 0x60]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov r9, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov r8d, eax
call fcn.140001ab0
test eax, eax
jne 0x1400026ed
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.1400b1270
xor ebx, ebx
mov r15, rax
test rax, rax
je 0x1400026d5
nop
mov r9, qword [rsp + 0x70]
mov r8d, dword [r15 + 0x64]
mov edx, dword [rsp + 0x68]
mov rcx, qword [r15 + 8]
call fcn.140001ab0
mov rcx, qword [r15 + 8]
test eax, eax
jne 0x1400026b1
call qword [sym.imp.USER32.dll_GetParent]
mov r9d, dword [0x14013f8e4]
mov r8, qword [0x14013f8e8]
mov rdi, rax
mov rdx, rbx
mov eax, ebx
test r9d, r9d
jle 0x140002684
nop
mov rcx, qword [r8 + rdx*8]
cmp qword [rcx + 8], rdi
je 0x140002698
inc eax
inc rdx
cmp eax, r9d
jl 0x140002670
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
mov r15, rbx
jmp 0x14000270c
mov r15, rcx
test rcx, rcx
jne 0x140002630
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
jmp 0x14000270c
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
call qword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
mov r9d, dword [0x14013f8e4]
jmp 0x140002705
mov rdi, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x68]
mov r9d, dword [0x14013f8e4]
mov r10, qword [rsp + 0x60]
xor ebx, ebx
mov r8, qword [0x14013f8e8]
mov esi, ebx
test r9d, r9d
jle 0x14000278a
mov rdi, rbx
nop word [rax + rax]
mov rcx, qword [0x14013b0f8]
lea rdx, [rsp + 0x60]
mov byte [rcx + 0x128], 1
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0x124], eax
mov rcx, qword [rdi + r8]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
mov rax, qword [0x14013b0f8]
mov byte [rax + 0x128], 0
jne 0x1400024fb
mov r9d, dword [0x14013f8e4]
mov r8, qword [0x14013f8e8]
inc esi
add rdi, 8
cmp esi, r9d
jl 0x140002720
mov r11d, dword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
mov esi, dword [rsp + 0x40]
jmp 0x140002799
mov esi, dword [rsp + 0x40]
jmp 0x14000279e
mov r8, qword [0x14013f8e8]
xor ebx, ebx
mov rdi, qword [rsp + 0x70]
cmp r11d, 0x312
ja 0x1400028c8
je 0x14000290f
sub r11d, 0x12
je 0x1400028a9
sub r11d, 0x39
je 0x140002893
sub r11d, 0xb5
je 0x140002861
cmp r11d, 0x13
jne 0x140002acc
cmp qword [rsp + 0x78], 0
jne 0x140002acc
cmp r10, qword [0x14013f6f8]
jne 0x140002acc
cmp dword [0x140140538], 0
je 0x140002803
call fcn.140004330
cmp dword [0x140143cd4], 0
je 0x140002825
call fcn.140004060
movzx r14d, r14b
test al, al
mov eax, 1
cmovne r14d, eax
mov dword [rsp + 0x44], r14d
cmp qword [rbp - 8], 0
movzx edi, byte [rbp + 0x1428]
je 0x140001d36
cmp r13d, 1
jl 0x140001d36
movzx r8d, byte [rbp + 0x1430]
mov edx, dword [rbp - 0x68]
mov ecx, r13d
call fcn.140003fe0
test eax, eax
jne 0x140003f45
jmp 0x140001d36
cmp r10, qword [0x14013f700]
jne 0x140002acc
cmp rdi, 0x1b
jne 0x140002acc
mov rcx, qword [0x14013f6f8]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov dil, 1
mov qword [0x14013f858], rbx
mov byte [rbp + 0x1428], dil
jmp 0x140001d36
xor r8d, r8d
lea rcx, [0x140143150]
lea edx, [r8 + 6]
call fcn.140035b90
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
cmp r11d, 0x400
jb 0x140002acc
cmp r11d, 0x401
jbe 0x1400028fd
cmp r11d, 0x402
je 0x14000290f
cmp r11d, 0x414
je 0x14000290f
cmp r11d, 0x415
jne 0x140002acc
test r10, r10
je 0x14000290f
cmp r10, qword [0x14013f6f8]
jne 0x140002acc
mov eax, r11d
mov r14, rbx
sub eax, 0x401
je 0x140002e59
dec eax
je 0x140002d8d
sub eax, 0x12
je 0x140002aa7
dec eax
je 0x140002a78
mov eax, 0x7fff
movzx ecx, di
and cx, ax
mov rax, qword [0x14013ccd8]
cmp cx, word [rax]
jae 0x140001d2a
mov rax, qword [0x140140518]
movzx ecx, cx
shr rdi, 0x10
mov rax, qword [rax + rcx*8]
mov qword [rbp], rax
test di, di
je 0x140002993
mov rsi, qword [rax + 0x28]
mov ecx, 0xffff
add di, cx
mov qword [rbp - 0x30], rsi
je 0x14000298e
add di, cx
mov rsi, qword [rsi + 0x10]
jne 0x140002981
mov qword [rbp - 0x30], rsi
test rsi, rsi
jne 0x1400029c5
lea rdx, [rbp - 0x60]
mov rcx, rax
call fcn.140017b60
mov rsi, rax
mov qword [rbp - 0x30], rax
test rax, rax
jne 0x1400029c0
mov r14d, dword [rsp + 0x44]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
jmp 0x140001d36
mov r11d, dword [rsp + 0x68]
mov rdi, qword [rsi]
mov rcx, rdi
call fcn.1400d06a0
test eax, eax
je 0x1400029d8
dec eax
jne 0x1400029e6
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x1400029e6
movzx ecx, byte [rax]
jmp 0x1400029e8
xor cl, cl
movzx eax, byte [rsi + 0x23]
cmp byte [rsi + 0x22], al
jb 0x140002a31
cmp cl, 0xe0
je 0x140002a31
cmp cl, 0xcc
je 0x140002a31
cmp cl, 0xda
je 0x140002a31
cmp cl, 0xdb
je 0x140002a31
cmp cl, 0xd6
je 0x140002a31
cmp cl, 0xd7
je 0x140002a31
cmp cl, 0xd8
je 0x140002a31
cmp cl, 0xd9
je 0x140002a31
cmp byte [rsi + 0x26], 0
je 0x140002a23
mov byte [rsi + 0x27], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x18], eax
jmp 0x140001d26
mov rax, qword [rsi + 8]
test rax, rax
je 0x140002a64
movzx eax, byte [rax]
cmp al, 2
je 0x140002a64
cmp al, 4
je 0x140002a64
cmp al, 5
jb 0x140002a68
mov rax, qword [rbp - 0x30]
mov rcx, qword [0x14013f8b8]
mov r9, qword [rbp - 0x58]
mov ebx, dword [rax + 0x1c]
mov qword [rbp - 0x60], rcx
jmp 0x140002efc
mov qword [rbp - 0x60], rbx
mov rax, qword [rbp - 0x30]
mov r9, qword [rbp - 0x58]
mov ebx, dword [rax + 0x1c]
jmp 0x140002efc
cmp byte [0x140143cb8], 0
movzx edi, byte [rbp + 0x1428]
jne 0x140001d31
mov rsi, qword [0x140143ca0]
mov r9, qword [rbp - 0x58]
test rsi, rsi
cmove rsi, qword [0x140143820]
jmp 0x140002eff
mov edx, ebx
mov rcx, rbx
test r9d, r9d
jle 0x140002ac9
mov rax, qword [r8 + rcx*8]
cmp qword [rax + 8], r10
je 0x140002b7e
inc edx
inc rcx
cmp edx, r9d
jl 0x140002ab1
mov r15, rbx
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rbx, rax
test rax, rax
je 0x140003e2d
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x1401430c0]
jne 0x140003e2d
lea rdx, [rbp + 0x140]
mov r8d, SafeArrayAllocDescriptor
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rsi, [rbp + 0x140]
lea rdi, str.32770
mov ecx, 7
repe cmpsw word [rsi], word [rdi]
jne 0x140003e2d
mov rcx, qword [0x14013b0f8]
lea rdx, [rsp + 0x60]
mov byte [rcx + 0x128], 1
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0x124], eax
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
je 0x140003e1d
cmp dword [0x14013f8dc], 0
je 0x140002b6b
lea rcx, [0x140140270]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov rax, qword [0x14013b0f8]
mov byte [rax + 0x128], 0
jmp 0x140001d26
mov r15, rax
test rax, rax
je 0x140002acc
mov rcx, qword [rsp + 0x78]
movzx eax, di
shr rdi, 0x10
movzx edx, di
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x4c], ebx
mov dword [rbp - 0x48], edx
cmp eax, 8
jne 0x140002bbe
mov qword [rsp + 0x58], rdx
mov edx, 0x2af8
mov dword [rbp - 0x44], ecx
mov dword [rbp - 0x48], edx
cmp edx, dword [r15 + 0x20]
jae 0x140002bd1
mov r13d, edx
imul r13, r13, 0x58
add r13, qword [r15 + 0x28]
jmp 0x140002bd4
mov r13, rbx
sub eax, 5
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x38], rbx
mov byte [rbp + 0x1438], 0
je 0x140002d0a
dec eax
movzx edi, byte [rbp + 0x1428]
je 0x140002cc9
dec eax
je 0x140002caf
dec eax
je 0x140002c95
dec eax
je 0x140002c78
test r13, r13
je 0x140001d17
mov rsi, qword [r13 + 0x18]
test rsi, rsi
jne 0x140002c56
test byte [r13 + 9], 1
mov r14d, dword [rsp + 0x44]
mov esi, dword [rsp + 0x40]
mov r13d, dword [rbp + 0x1420]
je 0x140001d36
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140001d36
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
jmp 0x140001d2a
test byte [r13 + 9], 4
mov r13d, dword [rbp + 0x1420]
jne 0x140001d20
mov r9, qword [rbp - 0x58]
mov byte [rbp + 0x1438], 1
jmp 0x140002eff
mov rsi, qword [r15 + 0x58]
mov r13d, dword [rbp + 0x1420]
test rsi, rsi
je 0x140001d20
mov r9, qword [rbp - 0x58]
jmp 0x140002eff
mov rsi, qword [r15 + 0x48]
mov r13d, dword [rbp + 0x1420]
test rsi, rsi
je 0x140001d20
lea rcx, [r15 + 0x62]
jmp 0x140002ce1
mov rsi, qword [r15 + 0x40]
mov r13d, dword [rbp + 0x1420]
test rsi, rsi
je 0x140001d20
lea rcx, [r15 + 0x61]
jmp 0x140002ce1
mov rsi, qword [r15 + 0x38]
mov r13d, dword [rbp + 0x1420]
test rsi, rsi
je 0x140001d20
lea rcx, [r15 + 0x60]
mov qword [rbp - 0x38], rcx
test rcx, rcx
je 0x140002d54
cmp byte [rcx], 0
mov r13d, dword [rbp + 0x1420]
movzx edi, byte [rbp + 0x1428]
jne 0x140001d20
mov r9, qword [rbp - 0x58]
jmp 0x140002eff
mov rsi, qword [r15 + 0x50]
mov r14, qword [r15 + 0xa0]
test rsi, rsi
je 0x140002d5d
mov r13d, dword [rbp + 0x1420]
movzx edi, byte [rbp + 0x1428]
test r14, r14
je 0x140001d20
xor r9d, r9d
xor r8d, r8d
or edx, 0xffffffff
mov rcx, r14
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
mov eax, eax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140002d5d
mov r11d, dword [rsp + 0x68]
mov r9, qword [rbp - 0x58]
jmp 0x140002eff
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
test r14, r14
je 0x140001d31
mov rcx, r14
call qword [sym.imp.SHELL32.dll_DragFinish]
mov qword [r15 + 0xa0], rbx
jmp 0x140001d2a
test rdi, rdi
je 0x140002dd5
mov edx, ebx
mov rcx, rbx
test r9d, r9d
jle 0x140002db4
nop dword [rax]
mov rax, qword [r8 + rcx*8]
cmp qword [rax + 8], rdi
je 0x140002dcb
inc edx
inc rcx
cmp edx, r9d
jl 0x140002da0
mov r15, rbx
test r10, r10
je 0x140002dd8
cmp r10, qword [0x14013f6f8]
jne 0x140002acc
jmp 0x140002dd8
mov r15, rax
test rax, rax
jne 0x140002dd8
jmp 0x140002db7
mov r15, rbx
mov rcx, qword [0x140143cd8]
test rcx, rcx
je 0x140002e1e
mov rax, qword [rsp + 0x78]
nop dword [rax]
mov r12, qword [rcx + 8]
mov qword [rbp - 0x50], r12
test r12, r12
je 0x140002e15
nop dword [rax]
cmp dword [r12 + 0x28], eax
je 0x140002e36
mov r12, qword [r12 + 0x38]
mov qword [rbp - 0x50], r12
test r12, r12
jne 0x140002e00
mov rcx, qword [rcx + 0x30]
test rcx, rcx
jne 0x140002df0
mov r14d, dword [rsp + 0x44]
movzx edi, byte [rbp + 0x1428]
mov r12, rbx
mov qword [rbp - 0x50], rbx
jmp 0x140001d36
mov rsi, qword [r12 + 0x10]
movzx edi, byte [rbp + 0x1428]
test rsi, rsi
je 0x140001d20
mov ebx, dword [r12 + 0x2c]
mov r9, qword [rbp - 0x58]
jmp 0x140002eff
mov eax, dword [0x14014053c]
cmp rdi, rax
jae 0x140001d2a
mov rax, qword [0x140140540]
mov rsi, qword [rax + rdi*8]
mov qword [rbp - 0x58], rsi
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140002eb1
mov rdx, qword [rsi + 8]
call fcn.140016f80
mov rdi, rax
movzx edi, byte [rbp + 0x1428]
mov qword [rbp - 0x60], rax
test rax, rax
je 0x140001d20
mov rcx, qword [rsi + 0x20]
movzx edx, byte [rcx]
cmp dl, 1
je 0x140002eb5
cmp dl, 3
je 0x140002eb5
mov qword [rbp - 0x60], rbx
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
call fcn.14001c750
cmp qword [rsi + 0x18], 0
movzx edi, byte [rbp + 0x1428]
jne 0x140001d20
cmp byte [rsi + 0x3e], 0
je 0x140002ee8
movzx eax, word [rsp + 0x78]
mov word [0x140143cf4], ax
jmp 0x140002eef
mov word [0x140143cf4], bx
mov r9, qword [rbp - 0x58]
mov r11d, dword [rsp + 0x68]
mov ebx, dword [r9 + 0x28]
mov rsi, qword [rsi]
mov rcx, rsi
call fcn.1400d06a0
test eax, eax
je 0x140002f0f
dec eax
jne 0x140002f1d
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x140002f1d
movzx edi, byte [rax]
jmp 0x140002f20
xor dil, dil
mov ecx, dword [0x14013f898]
mov eax, dword [reloc.WSOCK32.dll_inet_addr]
cmp ecx, eax
jl 0x140002f99
add eax, 2
cmp ecx, eax
jge 0x140002f67
cmp dil, 0xe0
je 0x140002f99
cmp dil, 0xcc
je 0x140002f99
cmp dil, 0xda
je 0x140002f99
cmp dil, 0xdb
je 0x140002f99
cmp dil, 0xd6
je 0x140002f99
cmp dil, 0xd7
je 0x140002f99
cmp dil, 0xd8
je 0x140002f99
cmp dil, 0xd9
je 0x140002f99
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
test r14, r14
je 0x140001d31
mov rcx, r14
call qword [sym.imp.SHELL32.dll_DragFinish]
xor eax, eax
mov qword [r15 + 0xa0], rax
jmp 0x140001d2a
mov rax, qword [0x14013b0f8]
cmp ebx, dword [rax + 0x3c]
jge 0x140002fd7
mov r13d, dword [rbp + 0x1420]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
test r14, r14
je 0x140001d31
mov rcx, r14
call qword [sym.imp.SHELL32.dll_DragFinish]
xor eax, eax
mov qword [r15 + 0xa0], rax
jmp 0x140001d2a
mov byte [rsp + 0x44], 1
cmp r11d, 0x402
je 0x140003041
cmp r11d, 0x413
jbe 0x140002ffb
cmp r11d, 0x415
jbe 0x14000308d
mov rax, qword [0x140143c48]
mov qword [0x140143c50], rax
mov eax, dword [0x140143cec]
mov dword [0x140143cf0], eax
cmp r11d, 0x401
jne 0x140003024
mov rax, qword [r9 + 8]
jmp 0x14000302c
mov rax, qword [rbp]
mov rax, qword [rax + 0x20]
mov qword [0x140143c48], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x140143cec], eax
jmp 0x14000308d
mov rdx, qword [r12]
lea rcx, [0x140143830]
mov r8d, 0x104
call qword [sym.imp.MSVCR100.dll_wcsncpy]
xor r13d, r13d
lea rcx, [0x140143a3a]
mov word [0x140143a38], r13w
mov rdx, qword [r12 + 0x20]
mov r8d, 0x104
mov rdx, qword [rdx]
call qword [sym.imp.MSVCR100.dll_wcsncpy]
mov word [0x140143c42], r13w
mov qword [0x140143828], r12
mov rcx, qword [0x140140268]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001830
lea rcx, [rbp + 0x1e0]
mov r8d, 0x7f
mov rdx, rax
call qword [sym.imp.MSVCR100.dll_wcsncpy]
xor r12d, r12d
movzx r9d, dil
mov r8b, 1
xor edx, edx
mov ecx, ebx
mov word [rbp + 0x2de], r12w
call fcn.140004860
mov r13, qword [0x14013b0f8]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x140143d4c], eax
mov dword [0x140143d48], eax
mov eax, dword [rsp + 0x68]
sub eax, 0x401
je 0x140003d9b
dec eax
je 0x140003c9a
sub eax, 0x12
je 0x14000321f
dec eax
je 0x140003150
mov rdi, qword [rbp]
movzx eax, byte [rdi + 0x10]
cmp al, 0x9c
jb 0x140003126
cmp al, 0x9f
ja 0x140003126
mov eax, dword [rsp + 0x78]
mov qword [r13 + 0x48], rax
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x30]
mov qword [r13 + 0xf8], rax
movzx eax, byte [rcx + 0x24]
mov rdx, rcx
mov rcx, rdi
mov byte [r13 + 0x136], al
call fcn.140017f80
jmp 0x140003dba
call qword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x140003184
mov ecx, recv
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x14000317d
lea ecx, [rax + 0xf]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x14000317d
mov eax, 2
jmp 0x140003187
mov eax, 1
jmp 0x140003187
mov eax, r12d
mov rcx, qword [0x140140268]
movsxd rdx, eax
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov qword [r13 + 0x48], rdx
call fcn.140001090
mov eax, 1
mov dword [rbp + 0x120], eax
mov rax, qword [r13 + 0x48]
lea rcx, [0x140103618]
mov qword [rbp + 0x110], rax
mov byte [0x140143cb8], 1
call fcn.14000e130
mov rdx, qword [0x140143ca0]
test rdx, rdx
je 0x1400031e1
mov rcx, rdx
call fcn.140001940
mov rdx, qword [0x140143ca0]
cmp qword [rsp + 0x70], r12
jne 0x14000320b
test rdx, rdx
mov r9d, r12d
lea rcx, [0x140143c70]
lea rdx, [rbp + 0x110]
mov r8d, 1
sete r9b
call fcn.1400d0830
sub qword [0x140141fd8], 0x18
mov byte [0x140143cb8], r12b
jmp 0x140003dba
mov rbx, qword [rbp - 0x70]
mov word [rbp - 0x28], r12w
cmp byte [rbp + 0x1438], r12b
je 0x140003236
mov rcx, qword [rbx]
jmp 0x14000323a
mov rcx, qword [r15 + 8]
movsxd r12, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x54]
mov r9d, 1
mov rax, r12
inc r12d
shl rax, 5
mov dword [rsp + 0x4c], r12d
mov dword [rbp + rax + 0x30], r9d
mov qword [rbp + rax + 0x20], rcx
cmp edi, 5
je 0x1400035d2
jbe 0x1400034ab
cmp edi, 8
jbe 0x140003434
cmp edi, 9
jne 0x1400034ab
mov rdx, qword [rsp + 0x58]
mov ecx, 3
test rdx, rdx
cmovne ecx, r9d
xor eax, eax
mov qword [rsp + 0x58], rax
mov dword [r13 + 0x44], ecx
mov rax, qword [rbp - 0x7c]
mov qword [r13 + 0x50], rax
test rbx, rbx
je 0x140003352
cmp ecx, r9d
jne 0x1400032c5
lea rdx, [r13 + 0x50]
mov rcx, rbx
call fcn.1400c81b0
lea r9d, [rdi - 8]
movzx ecx, byte [rbx + 8]
sub ecx, 9
je 0x140003335
dec ecx
je 0x14000332a
dec ecx
jne 0x140003352
cmp dword [r13 + 0x44], 1
mov rcx, qword [rbx]
jne 0x1400032f6
xor r9d, r9d
mov edx, 0x110a
lea r8d, [r9 + 9]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, eax
jmp 0x14000334d
mov rax, qword [rbp - 0x7c]
lea rdx, [rbp + 0x110]
mov qword [rbp + 0x110], rax
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rcx, qword [rbx]
lea r9, [rbp + 0x110]
xor r8d, r8d
mov edx, 0x1111
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, eax
jmp 0x14000334d
or r8, 0xffffffffffffffff
mov edx, 0x100c
jmp 0x140003340
xor r9d, r9d
mov edx, OleCreatePictureIndirect
xor r8d, r8d
mov rcx, qword [rbx]
call qword [sym.imp.USER32.dll_SendMessageW]
inc eax
cdqe
mov qword [rsp + 0x58], rax
mov rcx, qword [r15 + 8]
lea rdx, [rbp + 0xf0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rbp + 0xf0]
mov eax, dword [rbp + 0xf4]
sub dword [r13 + 0x50], edx
sub dword [r13 + 0x54], eax
mov r9d, 1
test rbx, rbx
je 0x14000339e
mov rax, qword [rbx]
movsxd rcx, r12d
inc r12d
shl rcx, 5
xor r8d, r8d
mov dword [rbp + rcx + 0x30], r9d
mov qword [rbp + rcx + 0x20], rax
jmp 0x1400033bc
movsxd rax, r12d
lea rcx, [0x1401035ac]
inc r12d
shl rax, 5
xor r8d, r8d
mov dword [rbp + rax + 0x30], r8d
mov qword [rbp + rax + 0x20], rcx
mov rdx, qword [rsp + 0x58]
mov edi, dword [rsp + 0x54]
movsxd rax, r12d
shl rax, 5
inc r12d
mov dword [rbp + rax + 0x30], r9d
mov qword [rbp + rax + 0x20], rdx
movsxd rcx, r12d
shl rcx, 5
inc r12d
cmp dword [r13 + 0x44], 3
mov dword [rbp + rcx + 0x30], r9d
mov eax, r8d
sete al
cdqe
mov qword [rbp + rcx + 0x20], rax
movsxd rax, dword [r13 + 0x50]
movsxd rcx, r12d
shl rcx, 5
inc r12d
mov dword [rbp + rcx + 0x30], r9d
mov qword [rbp + rcx + 0x20], rax
movsxd rax, dword [r13 + 0x54]
movsxd rcx, r12d
shl rcx, 5
inc r12d
mov dword [rsp + 0x4c], r12d
mov dword [rbp + rcx + 0x30], r9d
mov qword [rbp + rcx + 0x20], rax
jmp 0x14000370f
mov dword [r13 + 0x44], r9d
cmp edi, 8
jne 0x14000370c
mov ecx, dword [rbp - 0x44]
mov rdx, qword [rsp + 0x58]
movsxd rax, r12d
shl rax, 5
inc r12d
mov dword [r13 + 0x50], ecx
movsxd rdi, r12d
mov dword [rbp + rax + 0x30], r9d
mov qword [rbp + rax + 0x20], rdx
inc r12d
shl rdi, 5
cmp byte [r15 + 0x110], 0
movzx eax, cx
je 0x140003495
mov r8d, dword [0x1401430c4]
mov edx, 0x60
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [rbp - 0x44]
mov r9d, 1
cdqe
mov dword [rbp + rdi + 0x30], r9d
mov qword [rbp + rdi + 0x20], rax
mov eax, ecx
shr eax, 0x10
jmp 0x1400036c9
movzx eax, byte [rbx + 8]
cmp al, 0xa
je 0x140003516
cmp al, 0x19
jne 0x1400034ea
mov rax, qword [rbp - 0x7c]
lea rdx, [rbp + 0x100]
mov qword [r13 + 0x50], rax
mov rcx, qword [r15 + 8]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rbp + 0x100]
mov eax, dword [rbp + 0x104]
sub dword [r13 + 0x50], edx
sub dword [r13 + 0x54], eax
mov r9d, 1
xor r8d, r8d
movsxd rcx, r12d
inc r12d
mov dword [r13 + 0x44], edi
shl rcx, 5
cmp edi, 5
jae 0x140003593
lea rdx, [0x14013d770]
mov eax, edi
mov rdx, qword [rdx + rax*8]
jmp 0x1400035a5
cmp dil, 0x49
jne 0x1400034ea
lea rax, [rbp - 0x28]
bt edi, 8
jae 0x14000352d
mov eax, 0x53
jmp 0x140003538
bt edi, 9
jae 0x140003540
mov eax, reloc.WSOCK32.dll_WSAStartup
mov word [rbp - 0x28], ax
lea rax, [rbp - 0x26]
bt edi, 0xa
jae 0x14000354d
mov ecx, 0x46
jmp 0x140003558
bt edi, 0xb
jae 0x14000355f
mov ecx, 0x66
mov word [rax], cx
add rax, 2
bt edi, 0xc
jae 0x14000356c
mov ecx, 0x43
jmp 0x140003577
bt edi, 0xd
jae 0x14000357e
mov ecx, WSAAsyncSelect
mov word [rax], cx
add rax, 2
xor r8d, r8d
mov edi, 0x49
mov word [rax], r8w
mov dword [rsp + 0x54], edi
jmp 0x1400034ed
movzx eax, dil
lea rdx, [0x1401440d4]
mov word [0x1401440d4], ax
mov dword [rbp + rcx + 0x30], r8d
mov qword [rbp + rcx + 0x20], rdx
mov rcx, qword [rsp + 0x58]
movsxd rax, r12d
shl rax, 5
inc r12d
mov dword [rsp + 0x4c], r12d
mov dword [rbp + rax + 0x30], r9d
mov qword [rbp + rax + 0x20], rcx
jmp 0x140003714
mov dword [r13 + 0x44], 5
mov rax, qword [rbp - 0x7c]
lea rdx, [rbp + 0xe0]
mov qword [r13 + 0x50], rax
mov rcx, qword [r15 + 8]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rbp + 0xe0]
mov eax, dword [rbp + 0xe4]
sub dword [r13 + 0x50], edx
sub dword [r13 + 0x54], eax
mov rcx, qword [r15 + 8]
mov edx, 0xffffffec
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, qword [r15 + 8]
mov edx, 0xffffffec
and eax, 0xffffffef
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongW]
movsxd rdi, r12d
mov rcx, r14
shl rdi, 5
inc r12d
call fcn.1400b4e70
mov dword [rbp + rdi + 0x30], 6
mov qword [rbp + rdi + 0x20], rax
test rbx, rbx
je 0x14000366b
mov rax, qword [rbx]
movsxd rcx, r12d
shl rcx, 5
inc r12d
mov dword [rbp + rcx + 0x30], 1
mov qword [rbp + rcx + 0x20], rax
jmp 0x140003687
movsxd rax, r12d
lea rcx, [0x1401035ac]
inc r12d
shl rax, 5
xor edx, edx
mov dword [rbp + rax + 0x30], edx
mov qword [rbp + rax + 0x20], rcx
mov eax, dword [r13 + 0x50]
movsxd rdi, r12d
inc r12d
shl rdi, 5
cmp byte [r15 + 0x110], 0
je 0x1400036b3
mov r8d, dword [0x1401430c4]
mov edx, 0x60
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_MulDiv]
cdqe
mov r9d, 1
mov dword [rbp + rdi + 0x30], r9d
mov qword [rbp + rdi + 0x20], rax
mov eax, dword [r13 + 0x54]
movsxd rdi, r12d
inc r12d
shl rdi, 5
cmp byte [r15 + 0x110], 0
mov dword [rsp + 0x4c], r12d
je 0x1400036fc
mov r8d, dword [0x1401430c4]
mov edx, 0x60
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov r9d, 1
mov dword [rbp + rdi + 0x30], r9d
cdqe
mov qword [rbp + rdi + 0x20], rax
mov edi, dword [rsp + 0x54]
xor r8d, r8d
mov rcx, qword [rsp + 0x58]
cmp byte [rbp + 0x1438], 0
je 0x1400037db
cmp byte [rbx + 8], 0x17
jne 0x1400037db
lea rcx, [rbp + 0x2e0]
xor edx, edx
mov r8d, 0x10b8
call sub.MSVCR100.dll_memset
mov rax, qword [rsp + 0x58]
mov rcx, qword [rbx]
dec eax
lea r9, [rbp + 0x2e0]
xor r8d, r8d
mov edx, 0x703
mov dword [rbp + 0x2e0], send
mov dword [rbp + 0x2e4], eax
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
je 0x1400038b9
cmp word [rbp + 0x350], 0
mov rcx, qword [0x140140268]
lea rax, [rbp + 0x2f0]
lea rdx, [rbp + 0x350]
mov byte [rsp + 0x20], 1
cmove rdx, rax
xor r9d, r9d
or r8, 0xffffffffffffffff
call fcn.1400e6e20
mov rcx, qword [0x140140268]
xor r8d, r8d
movsxd rdi, r12d
lea edx, [r8 + 1]
inc r12d
shl rdi, 5
mov dword [rsp + 0x4c], r12d
call fcn.140001830
xor edx, edx
mov qword [rbp + rdi + 0x20], rax
mov dword [rbp + rdi + 0x30], edx
jmp 0x1400038b9
cmp word [rbp - 0x28], 0
je 0x1400037ff
movsxd rax, r12d
lea rdx, [rbp - 0x28]
shl rax, 5
inc r12d
mov dword [rsp + 0x4c], r12d
mov dword [rbp + rax + 0x30], r8d
mov qword [rbp + rax + 0x20], rdx
cmp edi, 8
je 0x140003bfd
cmp edi, 5
je 0x140003bfd
mov rbx, qword [0x140140268]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x14000383b
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp - 0x28]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400038b9
lea rax, [rbp - 0x28]
cmp qword [rbx + 8], rax
jne 0x14000384e
mov r12, qword [rbx + 0x10]
shr r12, 1
jmp 0x140003864
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp - 0x28]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov r12, rcx
lea rax, [r12 + 1]
lea rdi, [rax + rax]
cmp dl, 2
jne 0x140003880
lea rcx, [rbp - 0x28]
mov rdx, r12
call fcn.140006bc0
jmp 0x1400038b4
mov r9, qword [0x14013b0d0]
cmp rdi, r9
jbe 0x1400039df
cmp rdi, qword [rbx + 0x18]
jbe 0x1400039df
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov r12d, dword [rsp + 0x4c]
mov rax, qword [r15 + 8]
mov rbx, qword [rbp - 0x38]
mov qword [r13 + 0xf8], rax
add dword [r15 + 0x34], 2
mov eax, dword [rbp - 0x48]
mov dword [r13 + 0x70], eax
mov rax, qword [rsp + 0x58]
mov qword [r13 + 0x60], r15
mov qword [r13 + 0x58], r15
mov qword [r13 + 0x48], rax
movzx r13d, byte [rbp + 0x1438]
test rbx, rbx
je 0x140003c14
mov byte [rbx], 1
mov rdi, qword [rbp - 0x70]
mov rcx, qword [0x140141fd8]
cmp rcx, qword [0x140141fe0]
jne 0x140003919
call fcn.140007370
mov rcx, qword [0x140141fd8]
cmp rcx, qword [0x140141fd0]
jb 0x140003933
mov rax, qword [0x140143818]
mov qword [rcx], rax
mov rcx, qword [0x140141fd8]
add rcx, 0x18
xor eax, eax
lea rdx, [0x1401035c0]
mov qword [0x140141fd8], rcx
mov dword [rsp + 0x30], eax
mov qword [rcx], rax
mov dword [rcx + 0x10], eax
mov qword [rcx + 8], rdx
lea rax, [rbp + 0x10]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x20]
lea r8, str.call
mov rdx, rsi
mov rcx, rsi
mov dword [rsp + 0x20], r12d
call fcn.1400cc0f0
sub qword [0x140141fd8], 0x18
cmp qword [r15 + 8], 0
je 0x140003c76
mov eax, dword [rsp + 0x54]
test rbx, rbx
je 0x140003c2a
mov byte [rbx], 0
cmp eax, 6
jne 0x140003c33
cmp qword [rbp + 0x10], 0
jne 0x140003c76
mov rcx, rsi
call fcn.1400d06a0
test eax, eax
jne 0x1400039c5
test rsi, rsi
jne 0x140003c76
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140003c76
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
jmp 0x140003c76
cmp rax, 2
jae 0x1400039f9
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400038b4
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x140003a16
mov rcx, qword [rbx]
and al, 0x3d
mov byte [rbx + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov r9, qword [0x14013b0d0]
mov r8, qword [rbx + 0x18]
and byte [rbx + 0x21], 0x82
cmp rdi, r8
jbe 0x140003b91
movzx ecx, byte [rbx + 0x20]
movzx eax, cl
cmp cl, 1
jbe 0x140003a40
cmp al, 2
je 0x140003a89
mov rax, qword [rbp + 8]
jmp 0x140003b81
cmp rdi, 0x80
ja 0x140003a89
cmp rdi, 8
ja 0x140003a56
mov eax, 8
jmp 0x140003a67
mov eax, 0x80
cmp rdi, 0x10
mov ecx, reloc.WSOCK32.dll_recv
cmovbe eax, ecx
mov rcx, rax
mov qword [rbp - 0x40], rax
call fcn.1400dd290
mov qword [rbp + 8], rax
test rax, rax
je 0x1400038b4
mov byte [rbx + 0x20], 1
jmp 0x140003b81
cmp rdi, 0x20
jae 0x140003a9a
mov r10d, SafeArrayAllocDescriptor
jmp 0x140003b3b
cmp rdi, 0x208
jae 0x140003aae
mov r10d, 0x208
jmp 0x140003b3b
cmp rdi, 0x50000
jae 0x140003af7
pxor xmm0, xmm0
cvtsi2sd xmm0, rdi
test rdi, rdi
jns 0x140003ac9
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140003aed
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140003aed
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r10, xmm0
add r10, rax
jmp 0x140003b3b
cmp rdi, 0x320000
jae 0x140003b09
lea r10, [rdi + 0x8000]
jmp 0x140003b3b
cmp rdi, 0xc80000
jae 0x140003b34
movabs rax, 0x47ae147ae147ae15
mov r10, rdi
mul rdi
sub r10, rdx
shr r10, 1
add r10, rdx
shr r10, 6
add r10, rdi
jmp 0x140003b3b
lea r10, [rdi + 0x20000]
cmp r10, r9
cmova r10, r9
mov qword [rbp - 0x40], r10
cmp cl, 2
jne 0x140003b63
test r8, r8
je 0x140003b63
mov rcx, qword [rbx + 8]
mov dil, 1
call qword [sym.imp.MSVCR100.dll_free]
mov r10, qword [rbp - 0x40]
jmp 0x140003b66
xor dil, dil
test r10, r10
js 0x140003bc3
mov rcx, r10
call qword [sym.imp.MSVCR100.dll_malloc]
mov qword [rbp + 8], rax
test rax, rax
je 0x140003bc3
mov byte [rbx + 0x20], 2
and byte [rbx + 0x21], 0x7f
mov qword [rbx + 8], rax
mov rax, qword [rbp - 0x40]
mov qword [rbx + 0x18], rax
mov rcx, qword [rbx + 8]
lea rax, [rbp - 0x28]
cmp rcx, rax
je 0x140003bac
lea r8, [r12 + r12]
lea rdx, [rbp - 0x28]
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rbx + 8]
lea rcx, [r12 + r12]
xor edx, edx
mov word [rcx + rax], dx
mov qword [rbx + 0x10], rcx
jmp 0x1400038b4
test dil, dil
je 0x140003bdb
lea rcx, [0x140141fa8]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x140003be6
mov rax, qword [rbx + 8]
xor edx, edx
mov word [rax], dx
xor eax, eax
mov qword [rbx + 0x10], rax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
jmp 0x1400038a8
mov rdx, rcx
mov rcx, qword [0x140140268]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.140001090
jmp 0x1400038b9
test r13b, r13b
je 0x1400038f9
mov rdi, qword [rbp - 0x70]
or byte [rdi + 9], 4
jmp 0x1400038fd
test r13b, r13b
je 0x140003c33
and byte [rdi + 9], 0xfb
cmp eax, 5
jne 0x140003c76
mov rcx, qword [rbp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, r14
call qword [sym.imp.SHELL32.dll_DragFinish]
mov rcx, qword [r15 + 8]
xor eax, eax
lea edx, [rax - 0x14]
mov qword [r15 + 0xa0], rax
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, qword [r15 + 8]
mov edx, 0xffffffec
or eax, 0x10
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongW]
or eax, 0xffffffff
add dword [r15 + 0x34], eax
jne 0x140003dba
mov rcx, qword [r15]
call qword [sym.imp.MSVCR100.dll_free]
mov rcx, r15
call qword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_]
jmp 0x140003dba
test r15, r15
je 0x140003cc0
mov rax, qword [r15 + 8]
mov qword [r13 + 0xf8], rax
mov eax, 1
mov dword [r13 + 0x44], eax
add dword [r15 + 0x34], 2
mov qword [r13 + 0x60], r15
mov qword [r13 + 0x58], r15
lea rax, [0x140143830]
lea rcx, [0x140143150]
mov dword [rbp + 0x190], r12d
mov qword [rbp + 0x180], rax
call fcn.140089890
mov dword [rbp + 0x1d0], r12d
lea ecx, [rax + 1]
mov eax, 1
mov qword [rbp + 0x1a0], rcx
mov rcx, qword [0x140141fd8]
mov dword [rbp + 0x1b0], eax
cmp rcx, qword [0x140141fe0]
lea rax, [0x140143a3a]
mov qword [rbp + 0x1c0], rax
jne 0x140003d27
call fcn.140007370
mov rcx, qword [0x140141fd8]
cmp rcx, qword [0x140141fd0]
jb 0x140003d41
mov rax, qword [0x140143818]
mov qword [rcx], rax
mov rcx, qword [0x140141fd8]
add rcx, 0x18
lea rax, str.Menu
mov dword [rsp + 0x30], r12d
mov qword [0x140141fd8], rcx
mov qword [rcx + 8], rax
mov qword [rcx], r12
mov dword [rcx + 0x10], r12d
lea r9, [rbp + 0x180]
lea r8, str.call
mov rcx, rsi
mov rdx, rsi
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], 3
call fcn.1400cc0f0
sub qword [0x140141fd8], 0x18
test r15, r15
je 0x140003dba
jmp 0x140003c76
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
mov qword [r13 + 0xf8], rax
movzx eax, byte [rcx + 0x35]
mov byte [r13 + 0x136], al
call fcn.14001c6a0
lea rcx, [rbp + 0x1e0]
call fcn.1400049a0
cmp qword [rbp - 8], 0
mov r12, qword [rbp - 0x50]
mov r13d, dword [rbp + 0x1420]
mov r14d, dword [rsp + 0x44]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
je 0x140001d36
movzx r8d, byte [rbp + 0x1430]
mov edx, dword [rbp - 0x68]
mov ecx, r13d
call fcn.140003fe0
test eax, eax
je 0x140001d36
mov dil, 1
mov byte [rbp + 0x1428], dil
mov byte [rbp + 0x1430], dil
jmp 0x140001d31
mov rcx, qword [0x14013b0f8]
mov byte [rcx + 0x128], 0
jmp 0x140003e34
mov rcx, qword [0x14013b0f8]
mov rdx, qword [0x14013f720]
test rdx, rdx
je 0x140003e71
mov rcx, qword [0x14013f6f8]
lea r8, [rsp + 0x60]
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov r14d, dword [rsp + 0x44]
mov esi, dword [rsp + 0x40]
movzx edi, byte [rbp + 0x1428]
test eax, eax
jne 0x140001d36
mov rcx, qword [0x14013b0f8]
mov byte [rcx + 0x128], 1
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0x124], eax
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_DispatchMessageW]
mov rdx, qword [0x14013b0f8]
mov byte [rdx + 0x128], 0
jmp 0x140001d26
cmp r13d, 0xffffffff
jle 0x140003ebe
mov qword [0x140143d38], rdi
mov dword [0x140143d48], eax
cmp byte [rsp + 0x48], 0
mov dword [0x140143d4c], eax
movzx eax, byte [0x14013f889]
cmovne eax, edi
cmp byte [rsp + 0x49], 0
mov byte [0x14013f889], al
je 0x140003fb2
mov eax, dword [0x14013f894]
dec eax
mov dword [0x14013f894], eax
test r13d, r13d
jle 0x140003fb2
test eax, eax
jne 0x140003fb2
cmp dword [0x140143cd4], eax
jne 0x140003fb2
cmp dword [0x140140538], eax
jne 0x140003fb2
cmp byte [0x14013f883], al
je 0x140003fb2
mov rcx, qword [0x14013f6f8]
lea edx, [rax + 9]
call qword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x14013f883]
test eax, eax
cmovne ecx, edi
jmp 0x140003fac
movzx eax, byte [0x14013f889]
cmp byte [rsp + 0x48], 0
cmovne eax, ebx
cmp byte [rsp + 0x49], 0
mov byte [0x14013f889], al
je 0x140003fb2
mov eax, dword [0x14013f894]
dec eax
mov dword [0x14013f894], eax
test r13d, r13d
jle 0x140003fb2
test eax, eax
jne 0x140003fb2
cmp dword [0x140143cd4], eax
jne 0x140003fb2
cmp dword [0x140140538], eax
jne 0x140003fb2
cmp byte [0x14013f883], al
je 0x140003fb2
mov rcx, qword [0x14013f6f8]
lea edx, [rax + 9]
call qword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x14013f883]
test eax, eax
cmovne ecx, ebx
mov byte [0x14013f883], cl
lea r11, [rsp + 0x14d8]
movzx eax, r14b
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret