Function at 0x140031f80
Capabilities:
Capture screenshot

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0xb0
mov edi, r9d
lea rdx, [r11 - 0x5c]
mov r9d, dword [rsp + 0x128]
lea rcx, [r11 - 0x60]
mov eax, r9d
movzx r15d, r9w
shr eax, 0x10
and r15d, 0xffffff00
movzx r10d, al
xor esi, esi
movzx eax, r9b
or r15d, r10d
shl eax, 0x10
xor r8d, r8d
or r15d, eax
mov qword [r11 - 0x60], rsi
call fcn.1400a64f0
mov rbx, qword [rsp + 0x88]
mov r14d, esi
mov ecx, dword [rsp + 0x110]
add ecx, dword [rsp + 0x8c]
mov edx, dword [rsp + 0x118]
mov ebp, ecx
mov eax, dword [rsp + 0x120]
lea r8d, [rbx + rdi]
add eax, dword [rsp + 0x8c]
add edx, ebx
cmp r8d, edx
mov dword [rsp + 0x7c], edx
mov r9d, edx
mov dword [rsp + 0x70], eax
cmovle r9d, r8d
mov dword [rsp + 0x78], r8d
mov edi, r8d
mov dword [rsp + 0x74], ecx
cmovle edi, edx
mov dword [rsp + 0x50], r9d
cmp ecx, eax
mov edx, eax
cmovle ebp, eax
cmovle edx, ecx
mov eax, dword [rsp + 0x130]
test eax, eax
mov dword [rsp + 0x54], edx
cmovns r14d, eax
mov eax, 0xff
cmp r14d, eax
jle 0x14003207f
mov r14d, eax
mov dword [rsp + 0x108], eax
movzx r13d, r15w
mov eax, r15d
shr r13w, 8
shr eax, 0x10
jmp 0x1400320c1
mov dword [rsp + 0x130], r14d
mov eax, r14d
mov dword [rsp + 0x108], eax
test r14d, r14d
jle 0x1400320a7
movzx r13d, r15w
mov eax, r15d
shr r13w, 8
shr eax, 0x10
jmp 0x1400320c1
movzx r15d, byte [rsp + 0x128]
movzx r13d, byte [rsp + 0x128]
movzx eax, byte [rsp + 0x128]
xor ecx, ecx
mov dword [rsp + 0x118], eax
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x1400320e4
mov eax, 0xa0070000
jmp 0x140032687
sub ebp, dword [rsp + 0x54]
mov rcx, rax
sub edi, dword [rsp + 0x50]
inc ebp
mov qword [rsp + 0xa8], r12
mov r12, rsi
mov byte [rsp + 0x130], sil
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x58], rsi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x80], rax
test rax, rax
je 0x140032566
mov rcx, qword [rsp + 0x60]
lea edx, [rdi + 1]
mov r8d, ebp
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140032566
mov rcx, qword [rsp + 0x80]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140032566
mov eax, dword [rsp + 0x54]
lea r9d, [rdi + 1]
mov rdi, qword [rsp + 0x80]
xor r8d, r8d
mov dword [rsp + 0x40], 0xcc0020
xor edx, edx
mov dword [rsp + 0x38], eax
mov rcx, rdi
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebp
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x140032566
mov rcx, qword [rsp + 0x68]
lea rax, [rsp + 0x110]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x120]
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.140031d20
mov r12, rax
test rax, rax
je 0x140032566
mov ebp, dword [rsp + 0x120]
mov r9d, ebp
imul r9d, dword [rsp + 0x90]
movzx r8d, byte [rsp + 0x110]
test r8b, r8b
je 0x1400322d2
mov edi, esi
test r9d, r9d
jle 0x1400322a4
cmp r9d, 0x10
jb 0x1400322a4
mov ecx, r9d
and ecx, 0x8000000f
jge 0x140032235
dec ecx
or ecx, 0xfffffff0
inc ecx
movdqa xmm2, xmmword [0x140114550]
mov eax, r9d
sub eax, ecx
mov rcx, rsi
movsxd rdx, eax
lea rax, [r12 + 0x20]
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x20]
lea rax, [rax + 0x40]
add edi, 0x10
movdqa xmm1, xmm2
add rcx, 0x10
andps xmm1, xmm0
movdqu xmmword [rax - 0x60], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x50]
andps xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x40]
andps xmm1, xmm0
movdqu xmmword [rax - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x30]
andps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
cmp rcx, rdx
jl 0x140032250
movsxd rcx, edi
movsxd rdx, r9d
cmp rcx, rdx
jge 0x1400322d9
mov eax, edx
sub eax, ecx
add edi, eax
nop word [rax + rax]
and dword [r12 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, rdx
jl 0x1400322c0
jmp 0x1400322d9
mov edi, dword [rsp + 0x128]
mov rax, qword [rsp + 0x138]
test rax, rax
je 0x140032305
mov r8d, dword [r12]
lea rdx, str.0x_06X
and r8d, 0xffffff
mov rcx, rax
call fcn.140006e40
jmp 0x14003254a
cmp r14d, 1
jge 0x1400323a9
mov r14d, dword [rsp + 0x128]
test r8b, r8b
je 0x140032323
and r14d, 0xf8f8f8f8
test r9d, r9d
jle 0x14003254a
mov r10d, dword [rsp + 0x70]
lea r8d, [r9 - 1]
mov r11d, dword [rsp + 0x74]
mov r15d, dword [rsp + 0x7c]
mov r13d, dword [rsp + 0x78]
cmp r13d, r15d
jle 0x140032369
cmp r11d, r10d
jle 0x140032353
mov edi, r8d
jmp 0x140032384
mov eax, esi
cdq
idiv ebp
lea edi, [rax + 1]
mov eax, esi
cdq
imul edi, ebp
idiv ebp
sub edi, edx
dec edi
jmp 0x140032384
cmp r11d, r10d
jle 0x140032382
mov eax, r8d
cdq
idiv ebp
mov edi, eax
mov eax, esi
cdq
imul edi, ebp
idiv ebp
add edi, edx
jmp 0x140032384
mov edi, esi
movsxd rax, edi
mov ecx, dword [r12 + rax*4]
and ecx, 0xffffff
cmp ecx, r14d
je 0x140032542
inc esi
dec r8d
cmp esi, r9d
jl 0x140032344
jmp 0x14003254a
mov ecx, dword [rsp + 0x118]
test r8b, r8b
je 0x1400323c0
and r15b, 0xf8
and r13b, 0xf8
and cl, 0xf8
movzx edx, r15b
cmp r14d, edx
jle 0x1400323da
mov eax, dword [rsp + 0x108]
mov byte [rsp + 0x110], sil
jmp 0x1400323f4
movzx r10d, r15b
movzx eax, r14b
sub r10b, r14b
mov dword [rsp + 0x108], eax
mov byte [rsp + 0x110], r10b
movzx r8d, r13b
cmp r14d, r8d
jle 0x140032407
mov byte [rsp + 0x118], sil
jmp 0x140032416
movzx r11d, r13b
sub r11b, al
mov byte [rsp + 0x118], r11b
movzx r10d, cl
cmp r14d, r10d
jle 0x140032429
mov byte [rsp + 0x120], sil
jmp 0x140032438
movzx r11d, cl
sub r11b, al
mov byte [rsp + 0x120], r11b
mov r11d, 0xff
mov eax, r11d
sub eax, edx
cmp r14d, eax
jle 0x140032452
mov byte [rsp + 0x128], r11b
jmp 0x140032463
mov eax, dword [rsp + 0x108]
add al, r15b
mov byte [rsp + 0x128], al
mov r15d, dword [rsp + 0x108]
mov eax, r11d
sub eax, r8d
cmp r14d, eax
jle 0x14003247c
movzx r13d, r11b
jmp 0x14003247f
add r13d, r15d
sub r11d, r10d
cmp r14d, r11d
jle 0x14003248c
mov r15b, 0xff
jmp 0x14003248f
add r15b, cl
test r9d, r9d
jle 0x140032574
mov r10d, dword [rsp + 0x70]
lea r8d, [r9 - 1]
mov r11d, dword [rsp + 0x74]
movzx r14d, byte [rsp + 0x128]
nop
mov eax, dword [rsp + 0x78]
cmp eax, dword [rsp + 0x7c]
jle 0x1400324da
cmp r11d, r10d
jle 0x1400324c4
mov edi, r8d
jmp 0x1400324f5
mov eax, esi
cdq
idiv ebp
lea edi, [rax + 1]
mov eax, esi
cdq
imul edi, ebp
idiv ebp
sub edi, edx
dec edi
jmp 0x1400324f5
cmp r11d, r10d
jle 0x1400324f3
mov eax, r8d
cdq
idiv ebp
mov edi, eax
mov eax, esi
cdq
imul edi, ebp
idiv ebp
add edi, edx
jmp 0x1400324f5
mov edi, esi
movsxd rax, edi
mov edx, dword [r12 + rax*4]
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
shr ax, 8
cmp cl, byte [rsp + 0x110]
jb 0x140032532
cmp cl, r14b
ja 0x140032532
cmp al, byte [rsp + 0x118]
jb 0x140032532
cmp al, r13b
ja 0x140032532
cmp dl, byte [rsp + 0x120]
jb 0x140032532
cmp dl, r15b
jbe 0x140032542
inc esi
dec r8d
cmp esi, r9d
jl 0x1400324b0
jmp 0x140032574
mov byte [rsp + 0x130], 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
mov esi, eax
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x58]
jmp 0x1400325bd
mov ebp, dword [rsp + 0x120]
mov edi, dword [rsp + 0x128]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
mov esi, eax
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp qword [rsp + 0x80], 0
je 0x1400325d9
mov rdx, qword [rsp + 0x58]
xor r14b, r14b
mov rax, qword [rsp + 0x68]
mov byte [rsp + 0x130], r14b
mov qword [rsp + 0x68], rax
test rdx, rdx
je 0x1400325cb
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1400325ec
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r12, r12
je 0x140032677
mov rcx, r12
call fcn.1400c83c0
cmp qword [rsp + 0x138], 0
jne 0x140032670
movzx ecx, byte [rsp + 0x130]
test cl, cl
je 0x140032664
mov r8, qword [rsp + 0xf8]
test r8, r8
je 0x14003263a
mov eax, edi
mov dword [r8 + 0x10], 1
cdq
idiv ebp
sub edx, ebx
add edx, dword [rsp + 0x50]
movsxd rax, edx
mov qword [r8], rax
mov r8, qword [rsp + 0x100]
test r8, r8
je 0x140032664
mov eax, edi
mov dword [r8 + 0x10], 1
cdq
idiv ebp
sub eax, dword [rsp + 0x8c]
add eax, dword [rsp + 0x54]
cdqe
mov qword [r8], rax
mov eax, ecx
mov rcx, qword [rsp + 0xf0]
mov dword [rcx], eax
mov eax, 1
jmp 0x14003267f
or esi, 0xa0070000
mov eax, esi
mov r12, qword [rsp + 0xa8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret