Function at 0x140122e40
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 [0x14020cc58]
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 0x140124ff3
lea rcx, [rsp + 0x270]
call fcn.140177280
lea rcx, [rsp + 0x390]
call fcn.140177280
mov rcx, qword [r14 + 0x228]
call fcn.1400e8410
mov rcx, r14
call fcn.140100d60
mov rcx, qword [r14 + 0x3d8]
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 + 0x230], 0
je 0x140122f07
mov edx, 0x100
mov rcx, r12
call qword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [rsp + 0xa0], eax
jmp 0x140122f15
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0xa0], eax
cmp dword [r14 + 0x454], r13d
jne 0x140123b4f
mov eax, dword [r14 + 0x468]
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 + 0x3d8]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [r14 + 0x45c]
mov eax, esi
cdq
idiv dword [r14 + 0x464]
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 + 0x3d8]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, r14
call fcn.1401319c0
mov esi, eax
mov dword [rsp + 0x7c], eax
mov edx, eax
mov rcx, r14
call fcn.140131380
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.14015f300
cmp ebx, eax
jle 0x140122fe2
mov rcx, r14
call fcn.14015f300
mov dword [rsp + 0x78], eax
mov rcx, r14
call fcn.1401320f0
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.14015f5f0
xor edx, edx
mov rcx, qword [0x14020e068]
call fcn.14000aeb0
mov ebx, r13d
cmp esi, dword [rsp + 0x78]
jge 0x1401230eb
mov edx, esi
mov rcx, r14
call fcn.14015f3e0
test eax, eax
je 0x1401230c9
mov edi, dword [r14 + 0x460]
imul edi, ebx
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a50]
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 0x14012308e
cmp edi, dword [rsp + 0x60]
jge 0x14012309d
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x88], 1
cmp dword [rsp + 0x80], r13d
je 0x1401230ac
cmp ecx, r15d
jle 0x1401230ba
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 + 0x45c]
cmove ebx, r13d
add esi, 1
cmp esi, dword [rsp + 0x78]
jl 0x140123033
mov edi, dword [rsp + 0x8c]
mov r8d, dword [rsp + 0x60]
sub r15d, r8d
cmp r12d, 0xffffffff
jne 0x14012310b
mov r9d, dword [rsp + 0x7c]
mov r12d, r9d
lea esi, [r9 + 1]
mov dword [rsp + 0x68], esi
jmp 0x140123114
mov esi, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x7c]
mov eax, esi
sub eax, r12d
cmp eax, edi
jle 0x1401231b4
cmp r12d, r9d
jl 0x140123133
lea esi, [r12 + rdi]
mov dword [rsp + 0x68], esi
jmp 0x1401231b4
mov eax, dword [rsp + 0xb8]
cmp esi, eax
jg 0x140123156
mov ecx, dword [r14 + 0x45c]
mov eax, esi
cdq
idiv ecx
mov r12d, eax
imul r12d, ecx
sub r12d, edi
jmp 0x1401231b4
mov r8d, dword [r14 + 0x45c]
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.14015f300
cmp esi, eax
jle 0x1401231af
mov rcx, r14
call fcn.14015f300
mov esi, eax
mov dword [rsp + 0x68], eax
mov r8d, dword [rsp + 0x60]
jmp 0x1401231b4
mov r8d, dword [rsp + 0x60]
cmp byte [r14 + 0x230], r13b
je 0x1401231ef
mov ecx, dword [0x140203a50]
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 0x14012321c
mov ecx, dword [0x140203a50]
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.140130df0
mov r8d, eax
mov eax, r12d
cdq
idiv dword [r14 + 0x45c]
sub r8d, eax
imul r8d, dword [r14 + 0x464]
mov ecx, dword [0x140203a54]
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 + 0x45c]
mov rcx, r14
call fcn.1401320f0
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 + 0x464]
add r11d, ecx
mov ecx, dword [0x140203a54]
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 + 0x468]
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.1400b3fb0
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 0x140124be5
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xc8], rax
mov edx, 4
mov rcx, qword [0x14020e068]
call fcn.14000aeb0
mov edx, eax
mov rcx, rbx
call fcn.1400da450
mov qword [rsp + 0xd0], rax
mov rdx, qword [rsp + 0x98]
add rdx, 3
mov ecx, r15d
imul ecx, esi
test ecx, ecx
je 0x1401233ec
nop
mov byte [rdx], r13b
add rdx, 4
sub ecx, 1
jne 0x1401233e0
mov ecx, dword [r14 + 0x45c]
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 0x140123b34
nop
mov edx, edi
mov rcx, r14
call fcn.14015f3e0
test eax, eax
je 0x140123ae6
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x1f0]
xor r8d, r8d
mov edx, edi
mov rcx, r14
call fcn.140133950
mov edx, dword [rsp + 0x1fc]
mov rcx, qword [rsp + 0x70]
call fcn.1400da450
mov qword [rsp + 0xb0], rax
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, edi
mov rcx, r14
call fcn.14015f520
lea r9, [rsp + 0xe0]
mov r8d, 0xa0
mov edx, edi
mov rcx, r14
call fcn.14015f760
cmp dword [0x14020e204], 6
jb 0x1401234c3
mov edx, edi
mov rcx, r14
call fcn.14015f880
mov dword [rsp + 0x78], eax
jmp 0x1401234c8
mov dword [rsp + 0x78], r13d
mov rcx, r14
call fcn.1401320f0
mov r13d, eax
add r13d, dword [r14 + 0x468]
mov rcx, r14
call fcn.1401320d0
mov r12d, eax
mov ecx, dword [0x140203a54]
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 [0x140203a50]
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.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 + 0x468]
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a50]
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.1400d69c0
mov edx, 2
mov rcx, r14
call fcn.14015f5f0
cmp eax, dword [rsp + 0x80]
jne 0x140123672
call qword [sym.imp.USER32.dll_GetFocus]
cmp rax, qword [r14 + 0x3d8]
jne 0x14012366d
mov rcx, r14
call fcn.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 + 0x468]
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a50]
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.1400d3bb0
jmp 0x140123675
xor r13d, r13d
jmp 0x140123675
xor r13d, r13d
cmp qword [rsp + 0x110], 0
je 0x14012372c
mov edi, 0xff
cmp dword [rsp + 0x78], 0
mov eax, 0x80
cmovne edi, eax
mov rcx, r14
call fcn.1401320f0
mov ebx, eax
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 [0x140203a50]
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 + 0x4d8]
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.1400f1120
jmp 0x1401237cd
mov edi, 0xff
cmp dword [rsp + 0x78], 0
mov eax, 0x80
cmovne edi, eax
mov rcx, r14
call fcn.1401320f0
mov ebx, eax
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 [0x140203a50]
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 + 0x4d8]
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.1400f2ea0
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.1400d9ba0
mov edi, eax
mov rcx, r14
call fcn.1401320d0
mov r8d, eax
mov dword [rsp + 0xb8], eax
cmp edi, eax
jle 0x140123837
mov ecx, dword [0x140203a50]
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 0x140123873
mov eax, dword [0x140203a50]
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.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0xb8]
mov edx, r12d
mov rcx, qword [rsp + 0x70]
call fcn.1400e0f70
mov esi, eax
sub esi, r12d
mov rcx, r14
call fcn.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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.1401320d0
mov ebx, eax
mov rcx, r14
call fcn.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 [0x140203a50]
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 + 0x468]
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.1400d69c0
movsx ebx, byte [r14 + 0x230]
mov rcx, r14
call fcn.1401320f0
mov r11d, eax
mov ecx, dword [0x140203a54]
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 + 0x468]
mov rcx, r14
call fcn.1401320d0
mov r11d, eax
mov ecx, dword [0x140203a50]
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 0x140123a4c
mov ecx, r15d
sub ecx, r8d
mov ebx, dword [rsp + 0x64]
sub ecx, ebx
jmp 0x140123a4e
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 0x140123a72
mov r8d, r15d
sub r8d, ecx
lea eax, [rdx + rdi]
mov esi, dword [rsp + 0x84]
cmp eax, esi
jle 0x140123a84
mov edi, esi
sub edi, edx
test r8d, r8d
jle 0x140123ad1
test edi, edi
jle 0x140123ad1
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 0x140123ac0
sub edi, 1
jne 0x140123ab0
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 + 0x45c]
jne 0x140123b15
add r12d, dword [r14 + 0x464]
mov dword [rsp + 0x6c], r12d
mov dword [rsp + 0x7c], r13d
mov ebx, dword [rsp + 0x60]
mov dword [rsp + 0x64], ebx
jmp 0x140123b20
add ebx, dword [r14 + 0x460]
mov dword [rsp + 0x64], ebx
add edi, 1
mov dword [rsp + 0x80], edi
cmp edi, dword [rsp + 0x68]
jl 0x140123430
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r12, qword [rsp + 0xc8]
jmp 0x140124bed
mov ecx, dword [r14 + 0x468]
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 + 0x3d8]
call qword [sym.imp.USER32.dll_ScreenToClient]
lea r8, [rsp + 0x1e0]
xor edx, edx
mov rcx, r14
call fcn.14012f0d0
mov eax, esi
cdq
idiv dword [r14 + 0x468]
mov edi, eax
cmp eax, r13d
cmovl edi, r13d
lea rdx, [rsp + 0x1d0]
mov rcx, qword [r14 + 0x3d8]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, r14
call fcn.140130df0
mov esi, eax
mov r8d, dword [r14 + 0x468]
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.14015f300
cmp r12d, eax
jle 0x140123c4d
mov rcx, r14
call fcn.14015f300
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.14015f5f0
mov dword [rsp + 0x7c], eax
mov rcx, r14
call fcn.14012f4f0
mov dword [rsp + 0x78], eax
cmp byte [0x14020de11], r13b
je 0x140123c90
mov rcx, r14
call fcn.14012f1c0
lea r15d, [rax + 4]
nop
nop
cmp ebx, dword [rsp + 0x88]
jl 0x140124eeb
cmp r12d, 0xffffffff
jne 0x140123caf
mov r12d, esi
lea ebx, [rsi + 1]
mov dword [rsp + 0x60], ebx
jmp 0x140123cb3
mov ebx, dword [rsp + 0x60]
mov eax, ebx
sub eax, r12d
cmp eax, edi
jle 0x140123d20
cmp r12d, esi
jl 0x140123cca
add edi, r12d
mov dword [rsp + 0x60], edi
jmp 0x140123d28
mov eax, dword [rsp + 0x8c]
cmp ebx, eax
jg 0x140123ce1
mov r12d, ebx
sub r12d, edi
mov edi, dword [rsp + 0x60]
jmp 0x140123d28
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.14015f300
cmp ebx, eax
jle 0x140123d26
mov rcx, r14
call fcn.14015f300
mov edi, eax
mov dword [rsp + 0x60], eax
jmp 0x140123d28
mov edi, dword [rsp + 0x60]
jmp 0x140123d28
mov edi, ebx
cmp byte [0x14020de11], r13b
je 0x140123d75
cmp byte [r14 + 0x230], r13b
je 0x140123d59
mov rcx, r14
call fcn.140130e60
mov ecx, r15d
sub ecx, dword [rsp + 0xb0]
lea eax, [rax + rcx - 4]
mov dword [rsp + 0x90], eax
jmp 0x140123dc3
mov rcx, r14
call fcn.140130e60
mov ecx, dword [rsp + 0xb0]
lea eax, [rax + rcx + 4]
mov dword [rsp + 0x90], eax
jmp 0x140123dc3
cmp byte [r14 + 0x230], r13b
je 0x140123da2
mov rcx, r14
call fcn.140130e60
mov ecx, dword [rsp + 0x1e0]
sub ecx, dword [rsp + 0xb0]
add eax, r15d
add ecx, eax
mov dword [rsp + 0x90], ecx
jmp 0x140123dc3
mov rcx, r14
call fcn.140130e60
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 + 0x468]
mov rcx, r14
call fcn.140130df0
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 0x140124be5
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 0x140123eec
nop
mov byte [rcx], r13b
add rcx, 4
sub eax, 1
jne 0x140123ee0
mov edi, r13d
mov dword [rsp + 0x64], r13d
mov edx, 4
mov rcx, qword [0x14020e068]
call fcn.14000aeb0
mov dword [rsp + 0x88], eax
mov edx, eax
mov rcx, rbx
call fcn.1400da450
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0x7c], 0xffffffff
je 0x140123fed
cmp byte [0x14020de11], dil
je 0x140123fed
lea r8, [rsp + 0x128]
xor edx, edx
mov rcx, r14
call fcn.14012f0d0
mov rcx, r14
call fcn.14012f1c0
mov r8d, eax
mov dword [rsp + 0x68], eax
mov ecx, dword [0x140203a50]
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 0x140123fde
mov edi, eax
mov esi, dword [rsp + 0x78]
mov edx, ebx
mov rcx, r14
call fcn.14012fca0
test eax, eax
je 0x140123fc0
lea r8, [rsp + 0x128]
mov edx, eax
mov rcx, r14
call fcn.14012f0d0
mov eax, dword [rsp + 0x128]
cmp eax, edi
cmovl edi, eax
add ebx, 1
cmp ebx, esi
jl 0x140123f94
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 0x140124003
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 0x140124bcd
jmp 0x140124015
mov rbx, qword [rsp + 0x70]
mov edx, r12d
mov rcx, r14
call fcn.14015f3e0
test eax, eax
je 0x140124bb3
cmp byte [0x14020de11], r13b
je 0x140124771
mov eax, r13d
mov dword [rsp + 0xd0], eax
cmp dword [rsp + 0x78], eax
jle 0x140124bb3
nop
nop
mov edx, eax
mov rcx, r14
call fcn.14012fca0
mov ebx, eax
lea r8, [rsp + 0xe0]
mov edx, eax
mov rcx, r14
call fcn.14012f0d0
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x198]
mov r8d, ebx
mov edx, r12d
mov rcx, r14
call fcn.140133950
movsx r11d, byte [r14 + 0x230]
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.140131710
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.1400d9ba0
mov esi, eax
test ebx, ebx
jne 0x140124366
lea r9, [rsp + 0x230]
lea r8d, [rbx + 0x20]
mov edx, r12d
mov rcx, r14
call fcn.14015f760
cmp dword [0x14020e204], 6
jb 0x140124123
mov edx, r12d
mov rcx, r14
call fcn.14015f880
jmp 0x140124126
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 [0x140203a50]
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 [0x14020e228]
call fcn.1400e1aa0
mov r11d, dword [r14 + 0x194]
mov r9d, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, rbx
call fcn.1400d6970
mov ebx, dword [r14 + 0x194]
mov r9d, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400e0f70
mov r11d, dword [0x140203a50]
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 0x1401244c7
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400d6970
mov edx, ebx
mov rcx, r14
call fcn.14012f570
test eax, eax
je 0x140124405
mov r9d, dword [0x140203a50]
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 0x140124439
mov r8d, ecx
jmp 0x140124439
mov r9d, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r9d, r10d
mov r8d, edi
mov rcx, qword [rsp + 0x70]
call fcn.1400e0f70
mov edi, dword [rsp + 0xe0]
mov dword [rsp + 0xc0], edi
mov edx, dword [rsp + 0x7c]
cmp r12d, edx
jne 0x140124694
cmp byte [0x14020de11], r13b
je 0x1401246a1
mov esi, dword [r14 + 0x468]
mov ebx, dword [rsp + 0xe8]
sub ebx, edi
add edi, 4
mov rcx, r14
call fcn.140130e60
mov r9d, dword [rsp + 0x6c]
sub r9d, eax
add r9d, 4
mov r8d, dword [r14 + 0x468]
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.1400d38b0
movsx r11d, byte [r14 + 0x230]
mov r8d, 1
mov r10d, ebx
mov r9d, dword [rsp + 0x6c]
add r9d, 4
mov ecx, r9d
test r11d, r11d
je 0x14012457b
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 0x140124597
mov r10d, r15d
sub r10d, ecx
lea eax, [rdx + 1]
mov esi, dword [rsp + 0x84]
cmp eax, esi
jle 0x1401245ab
mov r8d, esi
sub r8d, edx
test r10d, r10d
jle 0x1401245f2
test r8d, r8d
jle 0x1401245f2
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 0x1401245e0
sub r8d, 1
jne 0x1401245d1
movsx ecx, byte [r14 + 0x230]
mov r8d, 1
mov r10d, ebx
mov eax, dword [r14 + 0x468]
lea edx, [rax + rdi - 1]
test ecx, ecx
je 0x14012461e
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 0x14012463a
mov r10d, r15d
sub r10d, r9d
lea eax, [rdx + 1]
cmp eax, esi
jle 0x140124647
mov r8d, esi
sub r8d, edx
test r10d, r10d
jle 0x1401246ac
test r8d, r8d
jle 0x1401246ac
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 0x140124680
sub r8d, 1
jne 0x140124670
jmp 0x1401246ac
mov edi, dword [rsp + 0x64]
mov esi, dword [rsp + 0x84]
jmp 0x1401246ac
mov edi, dword [rsp + 0x64]
mov esi, dword [rsp + 0x84]
movsx eax, byte [r14 + 0x230]
mov edx, dword [r14 + 0x468]
mov r9d, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0xc0]
sub r9d, ecx
add ecx, 4
test eax, eax
je 0x1401246de
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 0x1401246fc
mov r9d, r15d
sub r9d, ecx
lea eax, [r8 + rdx]
cmp eax, esi
jle 0x140124709
mov edx, esi
sub edx, r8d
test r9d, r9d
jle 0x140124751
test edx, edx
jle 0x140124751
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 0x140124740
sub edx, 1
jne 0x140124730
mov eax, dword [rsp + 0xd0]
add eax, 1
mov dword [rsp + 0xd0], eax
cmp eax, dword [rsp + 0x78]
jl 0x140124050
jmp 0x140124bb3
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, r12d
mov rcx, r14
call fcn.14015f520
lea r9, [rsp + 0x230]
mov r8d, 0x20
mov edx, r12d
mov rcx, r14
call fcn.14015f760
cmp dword [0x14020e204], 6
jb 0x1401247bb
mov edx, r12d
mov rcx, r14
call fcn.14015f880
jmp 0x1401247be
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 [0x140203a50]
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 [0x14020e228]
call fcn.1400e1aa0
mov r11d, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r8d, edi
mov rcx, rbx
call fcn.1400d6970
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.1400d9ba0
mov ebx, eax
mov r10d, dword [r14 + 0x194]
mov r9d, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], eax
mov r9d, r11d
mov r8d, edi
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.1400e0f70
mov esi, eax
mov ecx, dword [0x140203a50]
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 + 0x468]
mov dword [rsp + 0x20], ecx
mov r8d, edi
mov edx, esi
mov rcx, rbx
call fcn.1400d6970
mov r11d, dword [0x140203a50]
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 0x140124abe
mov rcx, r14
call fcn.140130e60
mov ebx, eax
mov edi, dword [r14 + 0x468]
mov rcx, r14
call fcn.140130df0
mov r11d, eax
imul r11d, edi
add r11d, dword [r14 + 0x19c]
mov r10d, dword [r14 + 0x194]
mov r8d, dword [0x140203a50]
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.1400d3bb0
mov r11d, dword [0x140203a50]
movsx r9d, byte [r14 + 0x230]
mov r10d, dword [r14 + 0x468]
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 0x140124b1c
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 0x140124b37
mov esi, r15d
sub esi, edx
lea eax, [rcx + r10]
mov r8d, dword [rsp + 0x84]
cmp eax, r8d
jle 0x140124b4e
mov r10d, r8d
sub r10d, ecx
test esi, esi
jle 0x140124bb0
test r10d, r10d
jle 0x140124bab
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 0x140124b90
sub r10d, 1
jne 0x140124b80
mov esi, dword [rsp + 0x84]
jmp 0x140124bb3
mov esi, r8d
jmp 0x140124bb3
mov esi, r8d
add edi, dword [r14 + 0x468]
mov dword [rsp + 0x64], edi
add r12d, 1
cmp r12d, dword [rsp + 0x60]
jl 0x140124010
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r12, qword [rsp + 0xc8]
jmp 0x140124bed
mov r12, qword [rsp + 0x120]
mov rdi, qword [rsp + 0xd8]
test rdi, rdi
je 0x140124cc6
cmp dword [0x14020e204], 6
jb 0x140124c65
mov edx, r15d
imul edx, esi
test edx, edx
je 0x140124cc6
mov rcx, qword [rsp + 0x98]
add rcx, 1
sub edx, 1
cmp byte [rcx + 2], 0x10
jae 0x140124c30
mov dword [rcx - 1], r13d
jmp 0x140124c5b
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 0x140124c21
jmp 0x140124cc6
mov edx, r15d
imul edx, esi
test edx, edx
je 0x140124cc6
mov rcx, qword [rsp + 0x98]
add rcx, 2
nop
nop
sub edx, 1
cmp byte [rcx + 1], 0x80
jae 0x140124c8f
mov dword [rcx - 2], r13d
jmp 0x140124cbe
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 0x140124c80
cmp byte [r14 + 0x230], 0
je 0x140124ce7
mov edx, dword [rsp + 0xa0]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SetTextAlign]
jmp 0x140124cec
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 + 0x3d8]
call qword [sym.imp.USER32.dll_ReleaseDC]
lea rcx, str.create_shell_object._n
call fcn.1400b3fb0
test rdi, rdi
je 0x140124ecc
lea rdx, [rsp + 0xb8]
mov rcx, r14
call fcn.14016b040
test eax, eax
js 0x140124ec3
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, [0x1401e8e60]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + 0x50]
test eax, eax
js 0x140124e9f
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rbx, rax
test rax, rax
je 0x140124e94
lea rax, [0x1401d31a0]
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 + 0x1d8], eax
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0x20], rcx
lea r9, [0x1401e8d70]
mov r8d, eax
xor edx, edx
lea rcx, [0x1401e8d90]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140124e3a
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 0x140124e42
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.1400b3fb0
mov dword [r14 + 0x1d8], r13d
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x140124e8b
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 0x140124eb5
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.14017d580
lea rcx, [rsp + 0x270]
call fcn.14017d580
jmp 0x140124ff3
mov edx, ebx
mov rcx, r14
call fcn.14015f3e0
test eax, eax
je 0x140124feb
cmp byte [0x14020de11], r13b
jne 0x140124fdc
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x198]
xor r8d, r8d
mov edx, ebx
mov rcx, r14
call fcn.140133950
lea r9, [rsp + 0x390]
lea r8, [rsp + 0x270]
mov edx, ebx
mov rcx, r14
call fcn.14015f520
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.1400d9ba0
mov r11d, eax
mov r10d, dword [0x140203a50]
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 0x140123c90
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.1401a8fb0
add rsp, 0x4c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret