Function at 0x140121240
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4c0
mov rax, qword [0x140209b48]
xor rax, rsp
mov qword [rsp + 0x4b0], rax
mov edi, r8d
mov ebx, edx
mov r14, rcx
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x1401233f3
lea rcx, [rsp + 0x270]
call fcn.1400012c0
lea rcx, [rsp + 0x390]
call fcn.1400012c0
mov rcx, qword [r14 + 0x220]
call fcn.1400e6c50
mov rcx, r14
call fcn.1400fed70
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x120], rax
mov rcx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r12, rax
mov qword [rsp + 0x70], rax
mov r13d, 1
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
mov dword [rsp + 0xd0], eax
cmp byte [r14 + 0x228], 0
je 0x140121307
mov edx, 0x100
mov rcx, r12
call qword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [rsp + 0xa0], eax
jmp 0x140121315
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0xa0], eax
cmp dword [r14 + 0x44c], r13d
jne 0x140121f4f
mov eax, dword [r14 + 0x460]
sub eax, dword [r14 + 0x190]
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xa8], ebx
mov dword [rsp + 0xac], edi
lea rdx, [rsp + 0xa8]
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [r14 + 0x454]
mov eax, esi
cdq
idiv dword [r14 + 0x45c]
mov edi, eax
imul edi, ecx
cmp edi, ecx
cmovl edi, ecx
mov dword [rsp + 0x8c], edi
lea rdx, [rsp + 0x128]
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, r14
call fcn.14012fdc0
mov esi, eax
mov dword [rsp + 0x7c], eax
mov edx, eax
mov rcx, r14
call fcn.14012f790
add eax, esi
mov dword [rsp + 0xb8], eax
sub esi, edi
lea ebx, [rax + rdi]
mov dword [rsp + 0x78], ebx
mov r13d, 0
cmovs esi, r13d
mov rcx, r14
call fcn.14015d170
cmp ebx, eax
jle 0x1401213e2
mov rcx, r14
call fcn.14015d170
mov dword [rsp + 0x78], eax
mov rcx, r14
call fcn.1401304f0
or r12d, 0xffffffff
mov dword [rsp + 0x68], r12d
mov dword [rsp + 0x88], r13d
mov dword [rsp + 0x80], r13d
mov dword [rsp + 0x60], r13d
mov r15d, r13d
lea edx, [r12 + 3]
mov rcx, r14
call fcn.14015d460
xor edx, edx
mov rcx, qword [0x14020af58]
call fcn.14000ae40
mov ebx, r13d
cmp esi, dword [rsp + 0x78]
jge 0x1401214eb
mov edx, esi
mov rcx, r14
call fcn.14015d250
test eax, eax
je 0x1401214c9
mov edi, dword [r14 + 0x458]
imul edi, ebx
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [rdi + r11]
lea ecx, [rax + rdx*2]
sub edi, 4
cmp dword [rsp + 0x88], r13d
je 0x14012148e
cmp edi, dword [rsp + 0x60]
jge 0x14012149d
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x88], 1
cmp dword [rsp + 0x80], r13d
je 0x1401214ac
cmp ecx, r15d
jle 0x1401214ba
mov r15d, ecx
mov dword [rsp + 0x80], 1
cmp r12d, 0xffffffff
cmove r12d, esi
lea eax, [rsi + 1]
mov dword [rsp + 0x68], eax
add ebx, 1
cmp ebx, dword [r14 + 0x454]
cmove ebx, r13d
add esi, 1
cmp esi, dword [rsp + 0x78]
jl 0x140121433
mov edi, dword [rsp + 0x8c]
mov r8d, dword [rsp + 0x60]
sub r15d, r8d
cmp r12d, 0xffffffff
jne 0x14012150b
mov r9d, dword [rsp + 0x7c]
mov r12d, r9d
lea esi, [r9 + 1]
mov dword [rsp + 0x68], esi
jmp 0x140121514
mov esi, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x7c]
mov eax, esi
sub eax, r12d
cmp eax, edi
jle 0x1401215b4
cmp r12d, r9d
jl 0x140121533
lea esi, [r12 + rdi]
mov dword [rsp + 0x68], esi
jmp 0x1401215b4
mov eax, dword [rsp + 0xb8]
cmp esi, eax
jg 0x140121556
mov ecx, dword [r14 + 0x454]
mov eax, esi
cdq
idiv ecx
mov r12d, eax
imul r12d, ecx
sub r12d, edi
jmp 0x1401215b4
mov r8d, dword [r14 + 0x454]
sub eax, r9d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
lea eax, [r9 + rcx]
cdq
idiv r8d
mov r12d, eax
imul r12d, r8d
test r12d, r12d
cmovs r12d, r13d
lea esi, [r12 + rdi]
mov dword [rsp + 0x68], esi
mov rcx, r14
call fcn.14015d170
cmp esi, eax
jle 0x1401215af
mov rcx, r14
call fcn.14015d170
mov esi, eax
mov dword [rsp + 0x68], eax
mov r8d, dword [rsp + 0x60]
jmp 0x1401215b4
mov r8d, dword [rsp + 0x60]
cmp byte [r14 + 0x228], r13b
je 0x1401215ef
mov ecx, dword [0x140200940]
shl ecx, 4
mov eax, 0x2aaaaaab
imul ecx
mov edi, edx
sar edi, 4
mov ecx, edi
shr ecx, 0x1f
add edi, ecx
sub edi, dword [rsp + 0xa8]
add edi, r15d
add edi, r8d
mov dword [rsp + 0x90], edi
jmp 0x14012161c
mov ecx, dword [0x140200940]
shl ecx, 4
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [rsp + 0xa8]
sub eax, edx
sub eax, r8d
mov dword [rsp + 0x90], eax
mov rcx, r14
call fcn.14012f200
mov r8d, eax
mov eax, r12d
cdq
idiv dword [r14 + 0x454]
sub r8d, eax
imul r8d, dword [r14 + 0x45c]
mov ecx, dword [0x140200944]
lea edx, [rcx + rcx*2]
shl edx, 2
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
sub r8d, edx
add r8d, dword [rsp + 0xac]
mov dword [rsp + 0x8c], r8d
mov ebx, dword [r14 + 0x454]
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
lea eax, [rsi - 1]
cdq
idiv ebx
mov ecx, eax
mov eax, r12d
cdq
idiv ebx
sub ecx, eax
imul ecx, dword [r14 + 0x45c]
add r11d, ecx
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
lea esi, [r11 + rdx*2]
add esi, dword [r14 + 0x460]
mov dword [rsp + 0x84], esi
mov r9d, dword [rsp + 0xd0]
mov r8d, esi
mov edx, r15d
lea rcx, str.dragdrop_bitmap__d_x__d_screen_high__d_n
call fcn.1400b35e0
xor r11d, r11d
mov qword [rsp + 0x168], r11
mov qword [rsp + 0x170], r11
mov qword [rsp + 0x178], r11
mov qword [rsp + 0x180], r11
mov qword [rsp + 0x188], r11
mov dword [rsp + 0x190], r11d
mov dword [rsp + 0x168], 0x28
mov dword [rsp + 0x16c], r15d
mov eax, esi
neg eax
mov dword [rsp + 0x170], eax
mov word [rsp + 0x174], 1
mov word [rsp + 0x176], 0x20
mov dword [rsp + 0x178], r13d
mov qword [rsp + 0x98], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x98]
xor r8d, r8d
lea rdx, [rsp + 0x168]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_CreateDIBSection]
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x140122fe5
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xc8], rax
mov edx, 4
mov rcx, qword [0x14020af58]
call fcn.14000ae40
mov edx, eax
mov rcx, rbx
call fcn.1400d9270
mov qword [rsp + 0xd0], rax
mov rdx, qword [rsp + 0x98]
add rdx, 3
mov ecx, r15d
imul ecx, esi
test ecx, ecx
je 0x1401217ec
nop
mov byte [rdx], r13b
add rdx, 4
sub ecx, 1
jne 0x1401217e0
mov ecx, dword [r14 + 0x454]
mov eax, r12d
cdq
idiv ecx
mov edi, eax
imul edi, ecx
mov dword [rsp + 0x80], edi
mov r12d, r13d
mov dword [rsp + 0x6c], r13d
mov dword [rsp + 0x7c], r13d
mov eax, dword [rsp + 0x60]
neg eax
mov dword [rsp + 0x60], eax
mov ebx, eax
mov dword [rsp + 0x64], eax
cmp edi, dword [rsp + 0x68]
jge 0x140121f34
nop
mov edx, edi
mov rcx, r14
call fcn.14015d250
test eax, eax
je 0x140121ee6
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x1f0]
xor r8d, r8d
mov edx, edi
mov rcx, r14
call fcn.140131d50
mov edx, dword [rsp + 0x1fc]
mov rcx, qword [rsp + 0x70]
call fcn.1400d9270
mov qword [rsp + 0xb0], rax
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, edi
mov rcx, r14
call fcn.14015d390
lea r9, [rsp + 0xe0]
mov r8d, 0xa0
mov edx, edi
mov rcx, r14
call fcn.14015d5d0
cmp dword [0x14020b0f4], 6
jb 0x1401218c3
mov edx, edi
mov rcx, r14
call fcn.14015d6f0
mov dword [rsp + 0x78], eax
jmp 0x1401218c8
mov dword [rsp + 0x78], r13d
mov rcx, r14
call fcn.1401304f0
mov r13d, eax
add r13d, dword [r14 + 0x460]
mov rcx, r14
call fcn.1401304d0
mov r12d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov esi, edx
sar esi, 4
mov ecx, esi
shr ecx, 0x1f
add esi, ecx
mov eax, dword [rsp + 0x6c]
add esi, eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov edi, edx
sar edi, 4
mov eax, edi
shr eax, 0x1f
add edi, eax
add edi, ebx
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ebx, [r11 + rdx*2]
add ebx, dword [r14 + 0x460]
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea r9d, [r11 + rdx*2]
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebx
mov r12d, dword [rsp + 0x6c]
mov r8d, r12d
mov esi, dword [rsp + 0x64]
mov edx, esi
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
call fcn.1400d5630
mov edx, 2
mov rcx, r14
call fcn.14015d460
cmp eax, dword [rsp + 0x80]
jne 0x140121a72
call qword [sym.imp.USER32.dll_GetFocus]
cmp rax, qword [r14 + 0x3d0]
jne 0x140121a6d
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ebx, [r11 + rdx*2]
add ebx, dword [r14 + 0x460]
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea r9d, [r11 + rdx*2]
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0x38], eax
xor r13d, r13d
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], ebx
mov r8d, r12d
mov edx, esi
mov rcx, rdi
call fcn.1400d2970
jmp 0x140121a75
xor r13d, r13d
jmp 0x140121a75
xor r13d, r13d
cmp qword [rsp + 0x110], 0
je 0x140121b2c
mov edi, 0xff
cmp dword [rsp + 0x78], 0
mov eax, 0x80
cmovne edi, eax
mov rcx, r14
call fcn.1401304f0
mov ebx, eax
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov r9d, edx
sar r9d, 4
mov ecx, r9d
shr ecx, 0x1f
add r9d, ecx
add r9d, r12d
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov r8d, edx
shr r8d, 0x1f
add r8d, edx
add r8d, esi
lea rcx, [r14 + 0x4d0]
mov dword [rsp + 0x40], edi
mov eax, dword [rsp + 0x1fc]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r11d
mov r12, qword [rsp + 0x70]
mov rdx, r12
call fcn.1400ef910
jmp 0x140121bcd
mov edi, 0xff
cmp dword [rsp + 0x78], 0
mov eax, 0x80
cmovne edi, eax
mov rcx, r14
call fcn.1401304f0
mov ebx, eax
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov r9d, edx
sar r9d, 4
mov ecx, r9d
shr ecx, 0x1f
add r9d, ecx
add r9d, r12d
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov r8d, edx
shr r8d, 0x1f
add r8d, edx
add r8d, esi
lea rcx, [r14 + 0x4d0]
mov dword [rsp + 0x40], edi
mov eax, dword [rsp + 0x1fc]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r11d
mov r12, qword [rsp + 0x70]
mov rdx, r12
call fcn.1400f1690
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x270]
mov r8, qword [rsp + 0x278]
lea rdx, [rsp + 0x1f0]
mov rcx, r12
call fcn.1400d8970
mov edi, eax
mov rcx, r14
call fcn.1401304d0
mov r8d, eax
mov dword [rsp + 0xb8], eax
cmp edi, eax
jle 0x140121c37
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov r12d, edx
sar r12d, 4
mov ecx, r12d
shr ecx, 0x1f
add r12d, ecx
add r12d, esi
jmp 0x140121c73
mov eax, dword [0x140200940]
lea ecx, [rax*4]
mov eax, 0x2aaaaaab
imul ecx
mov r12d, edx
sar r12d, 4
mov eax, r12d
shr eax, 0x1f
add r12d, eax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add r12d, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub r12d, eax
add r12d, esi
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov r8d, edx
shr r8d, 0x1f
add r8d, edx
mov ebx, dword [rsp + 0x6c]
lea eax, [rbx + r11]
add r8d, eax
mov dword [rsp + 0x58], r13d
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x270]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], edi
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0xb8]
mov edx, r12d
mov rcx, qword [rsp + 0x70]
call fcn.1400dfa60
mov esi, eax
sub esi, r12d
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov edi, edx
sar edi, 4
mov ecx, edi
shr ecx, 0x1f
add edi, ecx
lea eax, [rbx + r11]
add edi, eax
mov rcx, r14
call fcn.1401304d0
mov ebx, eax
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov r8d, edx
sar r8d, 4
mov ecx, r8d
shr ecx, 0x1f
add r8d, ecx
mov eax, dword [rsp + 0x6c]
add eax, r11d
add r8d, eax
mov eax, dword [0x140200940]
lea ecx, [rax*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, dword [rsp + 0x64]
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
mov r9d, ebx
mov rcx, qword [rsp + 0x70]
call fcn.1400d5630
movsx ebx, byte [r14 + 0x228]
mov rcx, r14
call fcn.1401304f0
mov r11d, eax
mov ecx, dword [0x140200944]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea edi, [r11 + rdx*2]
add edi, dword [r14 + 0x460]
mov rcx, r14
call fcn.1401304d0
mov r11d, eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea r8d, [r11 + rdx*2]
mov ecx, dword [rsp + 0x64]
test ebx, ebx
je 0x140121e4c
mov ecx, r15d
sub ecx, r8d
mov ebx, dword [rsp + 0x64]
sub ecx, ebx
jmp 0x140121e4e
mov ebx, ecx
test ecx, ecx
cmovs ecx, r13d
mov r12d, dword [rsp + 0x6c]
mov edx, r12d
test r12d, r12d
cmovs edx, r13d
lea eax, [rcx + r8]
cmp eax, r15d
jle 0x140121e72
mov r8d, r15d
sub r8d, ecx
lea eax, [rdx + rdi]
mov esi, dword [rsp + 0x84]
cmp eax, esi
jle 0x140121e84
mov edi, esi
sub edi, edx
test r8d, r8d
jle 0x140121ed1
test edi, edi
jle 0x140121ed1
imul edx, r15d
add edx, ecx
movsxd rcx, edx
mov rax, qword [rsp + 0x98]
lea rdx, [rax + rcx*4]
movsxd r9, r15d
shl r9, 2
nop
nop
mov eax, r8d
lea rcx, [rdx + 3]
add rdx, r9
nop
nop
mov byte [rcx], 0xff
add rcx, 4
sub eax, 1
jne 0x140121ec0
sub edi, 1
jne 0x140121eb0
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov edi, dword [rsp + 0x80]
mov eax, dword [rsp + 0x7c]
add eax, 1
mov dword [rsp + 0x7c], eax
cmp eax, dword [r14 + 0x454]
jne 0x140121f15
add r12d, dword [r14 + 0x45c]
mov dword [rsp + 0x6c], r12d
mov dword [rsp + 0x7c], r13d
mov ebx, dword [rsp + 0x60]
mov dword [rsp + 0x64], ebx
jmp 0x140121f20
add ebx, dword [r14 + 0x458]
mov dword [rsp + 0x64], ebx
add edi, 1
mov dword [rsp + 0x80], edi
cmp edi, dword [rsp + 0x68]
jl 0x140121830
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r12, qword [rsp + 0xc8]
jmp 0x140122fed
mov ecx, dword [r14 + 0x460]
mov eax, ecx
sub eax, dword [r14 + 0x190]
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x80], eax
sub ecx, dword [r14 + 0x198]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0xb0], ebx
mov dword [rsp + 0xb4], edi
lea rdx, [rsp + 0xb0]
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_ScreenToClient]
lea r8, [rsp + 0x1e0]
xor edx, edx
mov rcx, r14
call fcn.14012d4f0
mov eax, esi
cdq
idiv dword [r14 + 0x460]
mov edi, eax
cmp eax, r13d
cmovl edi, r13d
lea rdx, [rsp + 0x1d0]
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, r14
call fcn.14012f200
mov esi, eax
mov r8d, dword [r14 + 0x460]
mov edx, r8d
sub edx, dword [r14 + 0x19c]
sub edx, dword [rsp + 0x1d4]
mov ecx, dword [rsp + 0x1dc]
lea eax, [rdx + rcx - 1]
cdq
idiv r8d
add eax, esi
mov dword [rsp + 0x8c], eax
mov ebx, esi
sub ebx, edi
lea r12d, [rax + rdi]
mov dword [rsp + 0x88], r12d
mov r13d, 0
cmovs ebx, r13d
mov rcx, r14
call fcn.14015d170
cmp r12d, eax
jle 0x14012204d
mov rcx, r14
call fcn.14015d170
mov dword [rsp + 0x88], eax
mov r15d, r13d
or r12d, 0xffffffff
mov dword [rsp + 0x60], r12d
lea edx, [r12 + 3]
mov rcx, r14
call fcn.14015d460
mov dword [rsp + 0x7c], eax
mov rcx, r14
call fcn.14012d910
mov dword [rsp + 0x78], eax
cmp byte [0x14020ad11], r13b
je 0x140122090
mov rcx, r14
call fcn.14012d5e0
lea r15d, [rax + 4]
nop
nop
cmp ebx, dword [rsp + 0x88]
jl 0x1401232eb
cmp r12d, 0xffffffff
jne 0x1401220af
mov r12d, esi
lea ebx, [rsi + 1]
mov dword [rsp + 0x60], ebx
jmp 0x1401220b3
mov ebx, dword [rsp + 0x60]
mov eax, ebx
sub eax, r12d
cmp eax, edi
jle 0x140122120
cmp r12d, esi
jl 0x1401220ca
add edi, r12d
mov dword [rsp + 0x60], edi
jmp 0x140122128
mov eax, dword [rsp + 0x8c]
cmp ebx, eax
jg 0x1401220e1
mov r12d, ebx
sub r12d, edi
mov edi, dword [rsp + 0x60]
jmp 0x140122128
sub eax, esi
cdq
sub eax, edx
sar eax, 1
mov r12d, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub r12d, eax
add r12d, esi
cmovs r12d, r13d
lea ebx, [r12 + rdi]
mov dword [rsp + 0x60], ebx
mov rcx, r14
call fcn.14015d170
cmp ebx, eax
jle 0x140122126
mov rcx, r14
call fcn.14015d170
mov edi, eax
mov dword [rsp + 0x60], eax
jmp 0x140122128
mov edi, dword [rsp + 0x60]
jmp 0x140122128
mov edi, ebx
cmp byte [0x14020ad11], r13b
je 0x140122175
cmp byte [r14 + 0x228], r13b
je 0x140122159
mov rcx, r14
call fcn.14012f270
mov ecx, r15d
sub ecx, dword [rsp + 0xb0]
lea eax, [rax + rcx - 4]
mov dword [rsp + 0x90], eax
jmp 0x1401221c3
mov rcx, r14
call fcn.14012f270
mov ecx, dword [rsp + 0xb0]
lea eax, [rax + rcx + 4]
mov dword [rsp + 0x90], eax
jmp 0x1401221c3
cmp byte [r14 + 0x228], r13b
je 0x1401221a2
mov rcx, r14
call fcn.14012f270
mov ecx, dword [rsp + 0x1e0]
sub ecx, dword [rsp + 0xb0]
add eax, r15d
add ecx, eax
mov dword [rsp + 0x90], ecx
jmp 0x1401221c3
mov rcx, r14
call fcn.14012f270
mov ecx, eax
mov eax, dword [rsp + 0xb0]
sub eax, dword [rsp + 0x1e0]
add ecx, eax
mov dword [rsp + 0x90], ecx
mov ebx, dword [r14 + 0x460]
mov rcx, r14
call fcn.14012f200
mov ecx, eax
imul ecx, ebx
sub ecx, dword [r14 + 0x19c]
add ecx, dword [rsp + 0xb4]
mov eax, ebx
imul eax, r12d
sub ecx, eax
mov dword [rsp + 0x8c], ecx
mov esi, edi
sub esi, r12d
imul esi, ebx
mov dword [rsp + 0x84], esi
xor eax, eax
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rax
mov dword [rsp + 0x160], eax
mov dword [rsp + 0x138], 0x28
mov dword [rsp + 0x13c], r15d
mov eax, esi
neg eax
mov dword [rsp + 0x140], eax
mov word [rsp + 0x144], 1
mov word [rsp + 0x146], 0x20
mov dword [rsp + 0x148], r13d
mov qword [rsp + 0x98], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x98]
xor r8d, r8d
lea rdx, [rsp + 0x138]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_CreateDIBSection]
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x140122fe5
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0x98]
add rcx, 3
mov eax, r15d
imul eax, esi
test eax, eax
je 0x1401222ec
nop
mov byte [rcx], r13b
add rcx, 4
sub eax, 1
jne 0x1401222e0
mov edi, r13d
mov dword [rsp + 0x64], r13d
mov edx, 4
mov rcx, qword [0x14020af58]
call fcn.14000ae40
mov dword [rsp + 0x88], eax
mov edx, eax
mov rcx, rbx
call fcn.1400d9270
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0x7c], 0xffffffff
je 0x1401223ed
cmp byte [0x14020ad11], dil
je 0x1401223ed
lea r8, [rsp + 0x128]
xor edx, edx
mov rcx, r14
call fcn.14012d4f0
mov rcx, r14
call fcn.14012d5e0
mov r8d, eax
mov dword [rsp + 0x68], eax
mov ecx, dword [0x140200940]
shl ecx, 2
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
sar eax, 4
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
add eax, dword [r14 + 0x194]
add eax, dword [rsp + 0x128]
mov dword [rsp + 0x6c], eax
mov ebx, r13d
cmp dword [rsp + 0x78], ebx
jle 0x1401223de
mov edi, eax
mov esi, dword [rsp + 0x78]
mov edx, ebx
mov rcx, r14
call fcn.14012e0c0
test eax, eax
je 0x1401223c0
lea r8, [rsp + 0x128]
mov edx, eax
mov rcx, r14
call fcn.14012d4f0
mov eax, dword [rsp + 0x128]
cmp eax, edi
cmovl edi, eax
add ebx, 1
cmp ebx, esi
jl 0x140122394
mov dword [rsp + 0x6c], edi
mov edi, r13d
mov esi, dword [rsp + 0x84]
mov r8d, dword [rsp + 0x68]
mov eax, dword [rsp + 0x6c]
sub r8d, eax
mov dword [rsp + 0x68], r8d
mov rbx, qword [rsp + 0x70]
jmp 0x140122403
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x6c], eax
cmp r12d, dword [rsp + 0x60]
jge 0x140122fcd
jmp 0x140122415
mov rbx, qword [rsp + 0x70]
mov edx, r12d
mov rcx, r14
call fcn.14015d250
test eax, eax
je 0x140122fb3
cmp byte [0x14020ad11], r13b
je 0x140122b71
mov eax, r13d
mov dword [rsp + 0xd0], eax
cmp dword [rsp + 0x78], eax
jle 0x140122fb3
nop
nop
mov edx, eax
mov rcx, r14
call fcn.14012e0c0
mov ebx, eax
lea r8, [rsp + 0xe0]
mov edx, eax
mov rcx, r14
call fcn.14012d4f0
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x198]
mov r8d, ebx
mov edx, r12d
mov rcx, r14
call fcn.140131d50
movsx r11d, byte [r14 + 0x228]
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], ebx
mov r9d, r12d
lea r8, [rsp + 0x390]
lea rdx, [rsp + 0x270]
mov rcx, r14
call fcn.14012fb10
mov r11, qword [rsp + 0x398]
mov qword [rsp + 0x20], r11
mov r9d, dword [rsp + 0x270]
mov r8, qword [rsp + 0x278]
lea rdx, [rsp + 0x198]
mov rcx, qword [rsp + 0x70]
call fcn.1400d8970
mov esi, eax
test ebx, ebx
jne 0x140122766
lea r9, [rsp + 0x230]
lea r8d, [rbx + 0x20]
mov edx, r12d
mov rcx, r14
call fcn.14015d5d0
cmp dword [0x14020b0f4], 6
jb 0x140122523
mov edx, r12d
mov rcx, r14
call fcn.14015d6f0
jmp 0x140122526
mov eax, r13d
mov r10d, 0xff
test eax, eax
mov r11d, 0x80
cmovne r10d, r11d
mov eax, dword [rsp + 0xb8]
lea r9d, [rdi + rax]
mov eax, dword [0x140200940]
lea ecx, [rax*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [rsp + 0xe0]
lea r8d, [rdx + rax + 4]
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x48], r11d
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x1c8]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x258]
mov dword [rsp + 0x30], eax
mov eax, dword [r14 + 0x198]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x194]
mov dword [rsp + 0x20], eax
mov rbx, qword [rsp + 0x70]
mov rdx, rbx
mov rcx, qword [0x14020b118]
call fcn.1400e04d0
mov r11d, dword [r14 + 0x194]
mov r9d, dword [0x140200940]
lea ecx, [r9*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov r10d, dword [rsp + 0xe8]
sub r10d, edx
mov r8d, dword [rsp + 0xe0]
sub r10d, r8d
sub r10d, r11d
lea ecx, [r9*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, r8d
lea edx, [rdx + r11 + 4]
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, rbx
call fcn.1400d55e0
mov ebx, dword [r14 + 0x194]
mov r9d, dword [0x140200940]
lea ecx, [r9 + r9]
mov eax, 0x2aaaaaab
imul ecx
mov r11d, edx
sar r11d, 4
mov eax, r11d
shr eax, 0x1f
add r11d, eax
lea ecx, [r9*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov r10d, dword [rsp + 0xe8]
sub r10d, edx
mov r8d, dword [rsp + 0xe0]
sub r10d, r8d
sub r10d, r11d
sub r10d, ebx
lea ecx, [r9*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, r8d
add edx, r11d
lea edx, [rdx + rbx + 4]
mov dword [rsp + 0x58], r13d
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x270]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x198]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], esi
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400dfa60
mov r11d, dword [0x140200940]
shl r11d, 2
mov eax, 0x2aaaaaab
imul r11d
mov ecx, edx
sar ecx, 4
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov edi, dword [rsp + 0xe0]
add ecx, edi
add ecx, dword [r14 + 0x194]
mov dword [rsp + 0xc0], ecx
jmp 0x1401228c7
mov r9d, dword [rsp + 0xe8]
mov edx, dword [rsp + 0xe0]
sub r9d, edx
add edx, 4
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400d55e0
mov edx, ebx
mov rcx, r14
call fcn.14012d990
test eax, eax
je 0x140122805
mov r9d, dword [0x140200940]
lea ecx, [r9 + r9*2]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov r10d, dword [rsp + 0xe8]
mov r8d, r10d
sub r8d, edx
sub r8d, esi
lea ecx, [r9 + r9*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, dword [rsp + 0xe0]
add ecx, eax
cmp r8d, ecx
jge 0x140122839
mov r8d, ecx
jmp 0x140122839
mov r9d, dword [0x140200940]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
mov r8d, edx
sar r8d, 4
mov eax, r8d
shr eax, 0x1f
add r8d, eax
add r8d, dword [rsp + 0xe0]
mov r10d, dword [rsp + 0xe8]
lea ecx, [r9 + r9]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
sub r10d, edx
sub r10d, r8d
lea edx, [r8 + 4]
mov dword [rsp + 0x58], r13d
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x270]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x198]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], esi
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400dfa60
mov edi, dword [rsp + 0xe0]
mov dword [rsp + 0xc0], edi
mov edx, dword [rsp + 0x7c]
cmp r12d, edx
jne 0x140122a94
cmp byte [0x14020ad11], r13b
je 0x140122aa1
mov esi, dword [r14 + 0x460]
mov ebx, dword [rsp + 0xe8]
sub ebx, edi
add edi, 4
mov rcx, r14
call fcn.14012f270
mov r9d, dword [rsp + 0x6c]
sub r9d, eax
add r9d, 4
mov r8d, dword [r14 + 0x460]
imul r8d, r12d
mov eax, dword [rsp + 0x1a4]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x48], ebx
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], esi
mov ebx, dword [rsp + 0x68]
mov dword [rsp + 0x28], ebx
mov edi, eax
mov dword [rsp + 0x20], eax
xor edx, edx
mov rcx, qword [rsp + 0x70]
call fcn.1400d2670
movsx r11d, byte [r14 + 0x228]
mov r8d, 1
mov r10d, ebx
mov r9d, dword [rsp + 0x6c]
add r9d, 4
mov ecx, r9d
test r11d, r11d
je 0x14012297b
mov eax, r15d
sub eax, ecx
mov ecx, eax
sub ecx, ebx
test ecx, ecx
cmovs ecx, r13d
mov edx, edi
test edi, edi
cmovs edx, r13d
lea eax, [rcx + rbx]
cmp eax, r15d
jle 0x140122997
mov r10d, r15d
sub r10d, ecx
lea eax, [rdx + 1]
mov esi, dword [rsp + 0x84]
cmp eax, esi
jle 0x1401229ab
mov r8d, esi
sub r8d, edx
test r10d, r10d
jle 0x1401229f2
test r8d, r8d
jle 0x1401229f2
imul edx, r15d
add edx, ecx
movsxd rcx, edx
mov rax, qword [rsp + 0x98]
lea rdx, [rax + rcx*4]
movsxd r11, r15d
shl r11, 2
mov eax, r10d
lea rcx, [rdx + 3]
add rdx, r11
nop
nop
mov byte [rcx], 0xff
add rcx, 4
sub eax, 1
jne 0x1401229e0
sub r8d, 1
jne 0x1401229d1
movsx ecx, byte [r14 + 0x228]
mov r8d, 1
mov r10d, ebx
mov eax, dword [r14 + 0x460]
lea edx, [rax + rdi - 1]
test ecx, ecx
je 0x140122a1e
mov eax, r15d
sub eax, r9d
mov r9d, eax
sub r9d, ebx
test r9d, r9d
cmovs r9d, r13d
test edx, edx
cmovs edx, r13d
lea eax, [r9 + rbx]
cmp eax, r15d
jle 0x140122a3a
mov r10d, r15d
sub r10d, r9d
lea eax, [rdx + 1]
cmp eax, esi
jle 0x140122a47
mov r8d, esi
sub r8d, edx
test r10d, r10d
jle 0x140122aac
test r8d, r8d
jle 0x140122aac
imul edx, r15d
add edx, r9d
movsxd rcx, edx
mov rax, qword [rsp + 0x98]
lea rdx, [rax + rcx*4]
movsxd r9, r15d
shl r9, 2
nop
mov eax, r10d
lea rcx, [rdx + 3]
add rdx, r9
nop
nop
mov byte [rcx], 0xff
add rcx, 4
sub eax, 1
jne 0x140122a80
sub r8d, 1
jne 0x140122a70
jmp 0x140122aac
mov edi, dword [rsp + 0x64]
mov esi, dword [rsp + 0x84]
jmp 0x140122aac
mov edi, dword [rsp + 0x64]
mov esi, dword [rsp + 0x84]
movsx eax, byte [r14 + 0x228]
mov edx, dword [r14 + 0x460]
mov r9d, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0xc0]
sub r9d, ecx
add ecx, 4
test eax, eax
je 0x140122ade
mov eax, r15d
sub eax, ecx
mov ecx, eax
sub ecx, r9d
test ecx, ecx
cmovs ecx, r13d
mov r8d, edi
test edi, edi
cmovs r8d, r13d
lea eax, [rcx + r9]
cmp eax, r15d
jle 0x140122afc
mov r9d, r15d
sub r9d, ecx
lea eax, [r8 + rdx]
cmp eax, esi
jle 0x140122b09
mov edx, esi
sub edx, r8d
test r9d, r9d
jle 0x140122b51
test edx, edx
jle 0x140122b51
imul r8d, r15d
add r8d, ecx
movsxd rcx, r8d
mov rax, qword [rsp + 0x98]
lea r8, [rax + rcx*4]
movsxd r10, r15d
shl r10, 2
nop
mov eax, r9d
lea rcx, [r8 + 3]
add r8, r10
nop
nop
mov byte [rcx], 0xff
add rcx, 4
sub eax, 1
jne 0x140122b40
sub edx, 1
jne 0x140122b30
mov eax, dword [rsp + 0xd0]
add eax, 1
mov dword [rsp + 0xd0], eax
cmp eax, dword [rsp + 0x78]
jl 0x140122450
jmp 0x140122fb3
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, r12d
mov rcx, r14
call fcn.14015d390
lea r9, [rsp + 0x230]
mov r8d, 0x20
mov edx, r12d
mov rcx, r14
call fcn.14015d5d0
cmp dword [0x14020b0f4], 6
jb 0x140122bbb
mov edx, r12d
mov rcx, r14
call fcn.14015d6f0
jmp 0x140122bbe
mov eax, r13d
mov r10d, 0xff
test eax, eax
mov r8d, 0x80
cmovne r10d, r8d
mov eax, dword [rsp + 0xb8]
lea r9d, [rdi + rax]
mov eax, dword [0x140200940]
lea ecx, [rax*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x48], r8d
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x1c8]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x258]
mov dword [rsp + 0x30], eax
mov eax, dword [r14 + 0x198]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x194]
mov dword [rsp + 0x20], eax
mov r8d, edx
mov rdx, rbx
mov rcx, qword [0x14020b118]
call fcn.1400e04d0
mov r11d, dword [0x140200940]
lea ecx, [r11 + r11]
mov eax, 0x2aaaaaab
imul ecx
mov r9d, edx
sar r9d, 4
mov eax, r9d
shr eax, 0x1f
add r9d, eax
lea ecx, [r11*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, dword [r14 + 0x194]
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r8d, edi
mov rcx, rbx
call fcn.1400d55e0
mov r11, qword [rsp + 0x398]
mov qword [rsp + 0x20], r11
mov r9d, dword [rsp + 0x270]
mov r8, qword [rsp + 0x278]
lea rdx, [rsp + 0x198]
mov rcx, rbx
call fcn.1400d8970
mov ebx, eax
mov r10d, dword [r14 + 0x194]
mov r9d, dword [0x140200940]
lea ecx, [r9 + r9]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov r11d, r15d
sub r11d, edx
sub r11d, r10d
lea ecx, [r9*4]
mov eax, 0x2aaaaaab
imul ecx
mov r8d, edx
sar r8d, 4
mov eax, r8d
shr eax, 0x1f
add r8d, eax
lea ecx, [r9 + r9]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [r10 + r8]
add edx, eax
mov dword [rsp + 0x58], r13d
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x270]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x198]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], ebx
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x460]
mov dword [rsp + 0x20], eax
mov r9d, r11d
mov r8d, edi
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.1400dfa60
mov esi, eax
mov ecx, dword [0x140200940]
lea edx, [rcx + rcx*2]
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov r9d, edx
shr r9d, 0x1f
add r9d, edx
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rax
mov ecx, dword [r14 + 0x460]
mov dword [rsp + 0x20], ecx
mov r8d, edi
mov edx, esi
mov rcx, rbx
call fcn.1400d55e0
mov r11d, dword [0x140200940]
lea ecx, [r11 + r11*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
cmp r12d, dword [rsp + 0x7c]
jne 0x140122ebe
mov rcx, r14
call fcn.14012f270
mov ebx, eax
mov edi, dword [r14 + 0x460]
mov rcx, r14
call fcn.14012f200
mov r11d, eax
imul r11d, edi
add r11d, dword [r14 + 0x19c]
mov r10d, dword [r14 + 0x194]
mov r8d, dword [0x140200940]
lea ecx, [r8*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov r9d, esi
sub r9d, edx
sub r9d, r10d
lea ecx, [r8*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, r10d
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], edi
mov edi, dword [rsp + 0x64]
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400d2970
mov r11d, dword [0x140200940]
movsx r9d, byte [r14 + 0x228]
mov r10d, dword [r14 + 0x460]
mov r8d, dword [r14 + 0x194]
lea ecx, [r11*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
sub esi, edx
sub esi, r8d
lea ecx, [r11*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, r8d
test r9d, r9d
je 0x140122f1c
mov eax, r15d
sub eax, edx
mov edx, eax
sub edx, esi
test edx, edx
cmovs edx, r13d
mov ecx, edi
test edi, edi
cmovs ecx, r13d
lea eax, [rdx + rsi]
cmp eax, r15d
jle 0x140122f37
mov esi, r15d
sub esi, edx
lea eax, [rcx + r10]
mov r8d, dword [rsp + 0x84]
cmp eax, r8d
jle 0x140122f4e
mov r10d, r8d
sub r10d, ecx
test esi, esi
jle 0x140122fb0
test r10d, r10d
jle 0x140122fab
imul ecx, r15d
add ecx, edx
movsxd rcx, ecx
mov rax, qword [rsp + 0x98]
lea rdx, [rax + rcx*4]
movsxd r8, r15d
shl r8, 2
nop
nop
nop
nop
mov eax, esi
lea rcx, [rdx + 3]
add rdx, r8
nop
nop
mov byte [rcx], 0xff
add rcx, 4
sub eax, 1
jne 0x140122f90
sub r10d, 1
jne 0x140122f80
mov esi, dword [rsp + 0x84]
jmp 0x140122fb3
mov esi, r8d
jmp 0x140122fb3
mov esi, r8d
add edi, dword [r14 + 0x460]
mov dword [rsp + 0x64], edi
add r12d, 1
cmp r12d, dword [rsp + 0x60]
jl 0x140122410
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r12, qword [rsp + 0xc8]
jmp 0x140122fed
mov r12, qword [rsp + 0x120]
mov rdi, qword [rsp + 0xd8]
test rdi, rdi
je 0x1401230c6
cmp dword [0x14020b0f4], 6
jb 0x140123065
mov edx, r15d
imul edx, esi
test edx, edx
je 0x1401230c6
mov rcx, qword [rsp + 0x98]
add rcx, 1
sub edx, 1
cmp byte [rcx + 2], 0x10
jae 0x140123030
mov dword [rcx - 1], r13d
jmp 0x14012305b
movzx eax, byte [rcx - 1]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx - 1], al
movzx eax, byte [rcx]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx], al
movzx eax, byte [rcx + 1]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx + 1], al
add rcx, 4
test edx, edx
jne 0x140123021
jmp 0x1401230c6
mov edx, r15d
imul edx, esi
test edx, edx
je 0x1401230c6
mov rcx, qword [rsp + 0x98]
add rcx, 2
nop
nop
sub edx, 1
cmp byte [rcx + 1], 0x80
jae 0x14012308f
mov dword [rcx - 2], r13d
jmp 0x1401230be
movzx eax, byte [rcx - 2]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx - 2], al
movzx eax, byte [rcx - 1]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx - 1], al
movzx eax, byte [rcx]
imul eax, eax, 7
sar eax, 3
add al, 0x10
mov byte [rcx], al
mov byte [rcx + 1], 0
add rcx, 4
test edx, edx
jne 0x140123080
cmp byte [r14 + 0x228], 0
je 0x1401230e7
mov edx, dword [rsp + 0xa0]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SetTextAlign]
jmp 0x1401230ec
mov rbx, qword [rsp + 0x70]
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, qword [rsp + 0x120]
mov rcx, qword [r14 + 0x3d0]
call qword [sym.imp.USER32.dll_ReleaseDC]
lea rcx, str.create_shell_object._n
call fcn.1400b35e0
test rdi, rdi
je 0x1401232cc
lea rdx, [rsp + 0xb8]
mov rcx, r14
call fcn.140168e90
test eax, eax
js 0x1401232c3
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], r13
lea rdx, [0x1401e6290]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + 0x50]
test eax, eax
js 0x14012329f
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rbx, rax
test rax, rax
je 0x140123294
lea rax, [0x1401d0708]
mov qword [rbx], rax
mov dword [rbx + 0xc], r13d
mov eax, 1
mov dword [rbx + 8], eax
mov dword [rsp + 0xa0], r13d
mov dword [r14 + 0x1d4], eax
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0x20], rcx
lea r9, [0x1401e61a0]
mov r8d, eax
xor edx, edx
lea rcx, [0x1401e61c0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14012323a
mov dword [rsp + 0xf8], r13d
mov qword [rsp + 0xf0], rdi
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0xec], eax
mov dword [rsp + 0xe0], r15d
mov dword [rsp + 0xe4], esi
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x70]
lea rdx, [rsp + 0xe0]
call qword [rax + 0x18]
jmp 0x140123242
mov qword [rsp + 0xc8], r13
lea r9, [rsp + 0xa0]
mov r8d, 7
mov rdx, rbx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ole32.dll_DoDragDrop]
mov edx, dword [rsp + 0xa0]
lea rcx, str.drop_effect__d_n
call fcn.1400b35e0
mov dword [r14 + 0x1d4], r13d
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x14012328b
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x1401232b5
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
lea rcx, [rsp + 0x390]
call fcn.140175010
lea rcx, [rsp + 0x270]
call fcn.140175010
jmp 0x1401233f3
mov edx, ebx
mov rcx, r14
call fcn.14015d250
test eax, eax
je 0x1401233eb
cmp byte [0x14020ad11], r13b
jne 0x1401233dc
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x198]
xor r8d, r8d
mov edx, ebx
mov rcx, r14
call fcn.140131d50
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, ebx
mov rcx, r14
call fcn.14015d390
mov r11, qword [rsp + 0x398]
mov qword [rsp + 0x20], r11
mov r9d, dword [rsp + 0x270]
mov r8, qword [rsp + 0x278]
lea rdx, [rsp + 0x198]
mov rcx, qword [rsp + 0x70]
call fcn.1400d8970
mov r11d, eax
mov r10d, dword [0x140200940]
lea ecx, [r10 + r10*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov r8d, edx
shr r8d, 0x1f
add edx, r11d
add r8d, edx
lea ecx, [r10*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov r9d, edx
shr r9d, 0x1f
add edx, r8d
add r9d, edx
lea ecx, [r10 + r10]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, r9d
add eax, edx
add eax, dword [r14 + 0x194]
cmp eax, r15d
cmovg r15d, eax
cmp r12d, 0xffffffff
cmove r12d, ebx
lea eax, [rbx + 1]
mov dword [rsp + 0x60], eax
add ebx, 1
jmp 0x140122090
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.1401a6ae0
add rsp, 0x4c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret