Function at 0x140060a80
Capabilities:
Capture screenshot

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x48]
sub rsp, 0x148
movzx esi, byte [rbp + 0xc0]
mov rdi, qword [rbp + 0xb8]
mov ebx, edx
mov r12, rcx
test sil, sil
jne 0x140060ad4
lea rdx, str.Fast
mov rcx, rdi
call fcn.1400b9760
mov byte [rsp + 0x50], sil
test rax, rax
je 0x140060ad9
mov byte [rsp + 0x50], 1
lea rdx, [0x1400fe3b8]
mov rcx, rdi
mov qword [rsp + 0x140], r13
mov qword [rsp + 0x138], r15
call fcn.1400b9760
test rax, rax
setne al
mov byte [rsp + 0x51], al
test al, al
je 0x140060b35
mov r15d, dword [rbp + 0xa8]
movzx eax, r15w
shr ax, 8
movzx r13d, al
mov eax, r15d
shr eax, 0x10
shl r13d, 8
movzx ecx, al
movzx eax, r15b
shl eax, 0x10
or r13d, ecx
or r13d, eax
jmp 0x140060b62
mov r13d, dword [rbp + 0xa8]
movzx eax, r13w
shr ax, 8
movzx r15d, al
mov eax, r13d
shr eax, 0x10
shl r15d, 8
movzx ecx, al
movzx eax, r13b
shl eax, 0x10
or r15d, ecx
or r15d, eax
mov rax, qword [0x14012a950]
xor r14d, r14d
mov qword [rsp + 0x70], rax
mov edi, r14d
test sil, sil
jne 0x140060b87
cmp byte [r12 + 1], 1
cmova rdi, qword [0x14012a958]
mov qword [rbp - 0x60], rdi
test rax, rax
je 0x140060b98
mov rcx, rax
call fcn.140024380
test rdi, rdi
je 0x140060ba5
mov rcx, rdi
call fcn.140024380
xor eax, eax
mov r12d, r14d
mov dword [rsp + 0x7c], r14d
mov qword [rbp - 0x78], rax
mov rax, qword [0x1401255c8]
movzx edi, word [rax + 0x130]
and edi, 3
cmp edi, 2
je 0x140060c36
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rsi, rax
test rax, rax
je 0x140060c36
mov rcx, rax
call qword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x140060c36
mov rcx, rsi
test edi, edi
jne 0x140060c07
lea rdx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x140060c36
mov r8, qword [rbp - 0x78]
add r12d, dword [rbp - 0x70]
add r8d, dword [rbp - 0x6c]
jmp 0x140060c2d
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], 0
call qword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x140060c36
mov r8, qword [rbp - 0x78]
add r12d, dword [rsp + 0x60]
add r8d, dword [rsp + 0x64]
mov qword [rbp - 0x78], r8
mov dword [rsp + 0x7c], r12d
mov edi, dword [rbp + 0x98]
mov r8d, dword [rbp + 0x90]
mov rax, qword [rbp - 0x78]
add edi, r12d
add ebx, r12d
mov r12d, dword [rbp + 0xa0]
add r8d, eax
add r12d, eax
cmp ebx, edi
setg r9b
cmp r8d, r12d
mov dword [rbp + 0x98], edi
setg dl
mov dword [rbp + 0x90], r8d
mov dword [rsp + 0x78], ebx
mov byte [rsp + 0x52], r9b
mov dword [rbp - 0x80], r8d
mov dword [rsp + 0x58], edi
mov byte [rbp + 0x88], dl
mov dword [rsp + 0x54], r12d
test r9b, r9b
je 0x140060c9c
mov dword [rsp + 0x78], edi
mov dword [rsp + 0x58], ebx
test dl, dl
je 0x140060ca9
mov dword [rbp - 0x80], r12d
mov dword [rsp + 0x54], r8d
mov edi, dword [rbp + 0xb0]
mov eax, 0xff
test edi, edi
jns 0x140060e04
mov edi, r14d
movzx eax, byte [rbp + 0xc0]
movzx esi, byte [rbp + 0xc0]
mov byte [rbp + 0xb0], al
movzx eax, byte [rbp + 0xc0]
movaps xmmword [rsp + 0x120], xmm6
xor ecx, ecx
movaps xmmword [rsp + 0x110], xmm7
mov dword [rsp + 0x68], eax
movaps xmmword [rsp + 0x100], xmm8
call qword [sym.imp.USER32.dll_GetDC]
mov r9, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140061f93
cmp byte [rsp + 0x50], 0
mov byte [rbp + 0xa0], 0
je 0x1400617e0
mov r13d, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x58]
mov rcx, rax
sub r13d, dword [rbp - 0x80]
sub r12d, dword [rsp + 0x78]
mov qword [rbp - 0x58], r14
inc r13d
mov qword [rbp - 0x70], r14
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
movsd xmm7, qword [0x140112038]
movsd xmm8, qword [0x140112070]
movsd xmm6, qword [0x140112068]
mov qword [rbp - 0x50], rax
mov ebx, 8
test rax, rax
je 0x140060df5
mov rcx, qword [rsp + 0x60]
lea edx, [r12 + 1]
mov r8d, r13d
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rbp - 0x58], rax
test rax, rax
je 0x140060df5
mov rcx, qword [rbp - 0x50]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rbp - 0x70], rax
test rax, rax
je 0x140060df5
mov eax, dword [rbp - 0x80]
mov dword [rsp + 0x40], 0xcc0020
lea r9d, [r12 + 1]
mov r12, qword [rbp - 0x50]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x28], rax
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x20], r13d
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x140060df5
mov rcx, r12
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
test rax, rax
jne 0x140060e2e
mov r13, r14
mov r12d, dword [rbp + 0xc0]
jmp 0x140061425
cmp edi, eax
jle 0x140060e0c
mov edi, eax
jmp 0x140060e14
test edi, edi
jle 0x140060cbf
movzx esi, r13w
mov eax, r13d
mov byte [rbp + 0xb0], r13b
shr si, 8
shr eax, 0x10
jmp 0x140060cda
mov rcx, qword [rbp - 0x58]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x98]
lea r8, [rsp + 0x54]
lea rdx, [rbp + 0x90]
mov dword [rsp + 0x20], ebx
call fcn.140060800
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140060df8
mov ecx, dword [rbp + 0x90]
movzx edx, byte [rbp + 0x98]
mov r9d, ecx
imul r9d, dword [rsp + 0x54]
mov dword [rsp + 0x54], r9d
test dl, dl
je 0x140060f41
mov r12d, r14d
mov rcx, r14
movsxd rax, r9d
test r9d, r9d
jle 0x140060eb1
mov r12d, eax
nop word [rax + rax]
and dword [r13 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, rax
jl 0x140060ea0
mov ecx, dword [rbp + 0x90]
cmp byte [rbp + 0xc0], 0
je 0x140061223
mov r8d, dword [r13]
and r8d, 0xffffff
cmp byte [rsp + 0x51], 0
jne 0x140060efa
movzx eax, r8w
shr ax, 8
movzx edx, al
mov eax, r8d
movzx r8d, r8b
shr eax, 0x10
shl edx, 8
shl r8d, 0x10
movzx ecx, al
or edx, ecx
or r8d, edx
lea rdx, str.0x_06X
lea rcx, [rbp - 0x40]
call fcn.1400d77f8
mov r15, qword [rsp + 0x70]
movzx r11d, byte [r15 + 0x23]
test r11b, r11b
jne 0x140060f4d
mov rcx, qword [r15 + 0x10]
lea rdx, [rbp - 0x40]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
mov r12d, dword [rbp + 0xc0]
jmp 0x140060eb7
lea rax, [rbp - 0x40]
cmp qword [r15 + 8], rax
jne 0x140060f60
mov r13, qword [r15 + 0x10]
shr r13, 1
jmp 0x140060f74
or rcx, 0xffffffffffffffff
lea rdi, [rbp - 0x40]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
lea rax, [r13 + 1]
lea rsi, [rax + rax]
cmp r11b, 2
jne 0x140060fa2
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.140006d20
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
mov rcx, qword [0x1401255a0]
cmp rsi, rcx
jbe 0x140060fe2
cmp rsi, qword [r15 + 0x18]
jbe 0x140060fe2
lea r8, [0x1400f1514]
lea rdx, str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
cmp rax, 2
jae 0x14006100b
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400bdd00
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14006102a
mov rcx, qword [r15]
and al, 0x3d
mov byte [r15 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [0x1401255a0]
mov r9, qword [r15 + 0x18]
and byte [r15 + 0x21], 0x82
cmp rsi, r9
jbe 0x140061192
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14006105c
cmp al, 2
je 0x14006109b
mov rdi, qword [rbp - 0x70]
mov rax, qword [rbp - 0x70]
jmp 0x140061185
cmp rsi, 0x80
ja 0x14006109b
cmp rsi, rbx
ja 0x14006106f
mov rdi, rbx
jmp 0x140061080
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x1400611bf
mov byte [r15 + 0x20], 1
jmp 0x140061185
cmp rsi, 0x20
jae 0x1400610ab
mov edi, SafeArrayAllocDescriptor
jmp 0x14006114b
cmp rsi, 0x208
jae 0x1400610be
mov edi, 0x208
jmp 0x14006114b
cmp rsi, 0x50000
jae 0x140061107
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x1400610d9
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400610fd
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400610fd
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14006114b
cmp rsi, 0x320000
jae 0x140061119
lea rdi, [rsi + 0x8000]
jmp 0x14006114b
cmp rsi, 0xc80000
jae 0x140061144
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14006114b
lea rdi, [rsi + 0x20000]
cmp rdi, rcx
cmova rdi, rcx
cmp r8b, 2
jne 0x14006116b
test r9, r9
je 0x14006116b
mov rcx, qword [r15 + 8]
mov sil, 1
call fcn.1400d6fd8
jmp 0x14006116e
xor sil, sil
test rdi, rdi
js 0x1400611d3
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x1400611d3
mov byte [r15 + 0x20], 2
and byte [r15 + 0x21], 0x7f
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rdi
mov rcx, qword [r15 + 8]
lea rax, [rbp - 0x40]
cmp rcx, rax
je 0x1400611ad
lea r8, [r13 + r13]
lea rdx, [rbp - 0x40]
call fcn.1400d7a40
mov rax, qword [r15 + 8]
lea rcx, [r13 + r13]
mov word [rcx + rax], r14w
mov qword [r15 + 0x10], rcx
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
test sil, sil
je 0x1400611e9
lea rax, [0x14012c4b8]
mov qword [r15 + 0x18], r14
mov qword [r15 + 8], rax
jmp 0x1400611f1
mov rax, qword [r15 + 8]
mov word [rax], r14w
lea r8, [0x1400f1514]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c5c0]
mov qword [r15 + 0x10], r14
call fcn.14004e5e0
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x14006142d
cmp edi, 1
jge 0x1400612cf
test dl, dl
je 0x140061237
and r15d, 0xf8f8f8f8
mov edi, r14d
test r9d, r9d
jle 0x140061425
movzx r10d, byte [rbp + 0x88]
movzx r11d, byte [rsp + 0x52]
lea r8d, [r9 - 1]
test r11b, r11b
je 0x140061279
test r10b, r10b
je 0x140061264
mov r12d, r8d
jmp 0x140061298
mov eax, edi
cdq
idiv ecx
lea r12d, [rax + 1]
imul r12d, ecx
sub r12d, edx
dec r12d
jmp 0x140061298
test r10b, r10b
je 0x140061295
mov eax, r8d
cdq
idiv ecx
mov r12d, eax
mov eax, edi
cdq
imul r12d, ecx
idiv ecx
add r12d, edx
jmp 0x140061298
mov r12d, edi
movsxd rax, r12d
mov ecx, dword [r13 + rax*4]
and ecx, 0xffffff
cmp ecx, r15d
je 0x1400612c0
mov ecx, dword [rbp + 0x90]
inc edi
dec r8d
cmp edi, r9d
jl 0x140061255
jmp 0x140061425
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140061428
mov eax, dword [rsp + 0x68]
test dl, dl
je 0x1400612e4
and byte [rbp + 0xb0], 0xf8
and sil, 0xf8
and al, 0xf8
movzx edx, byte [rbp + 0xb0]
cmp edi, edx
jle 0x1400612f8
mov byte [rbp + 0x98], 0
jmp 0x140061304
movzx ecx, dl
sub cl, dil
mov byte [rbp + 0x98], cl
movzx r8d, sil
cmp edi, r8d
jle 0x140061312
xor r15b, r15b
jmp 0x140061319
movzx r15d, r8b
sub r15b, dil
movzx r9d, al
cmp edi, r9d
jle 0x140061327
xor r13b, r13b
jmp 0x14006132e
movzx r13d, r9b
sub r13b, dil
mov ecx, 0xff
mov eax, ecx
sub eax, edx
cmp edi, eax
jle 0x140061340
movzx esi, cl
jmp 0x140061343
lea esi, [rdx + rdi]
mov eax, ecx
sub eax, r8d
cmp edi, eax
jle 0x140061352
movzx r11d, cl
jmp 0x140061356
lea r11d, [r8 + rdi]
sub ecx, r9d
cmp edi, ecx
jle 0x140061362
mov dil, 0xff
jmp 0x140061365
add dil, r9b
mov eax, dword [rsp + 0x54]
mov r8d, r14d
test eax, eax
jle 0x140061420
movzx r10d, byte [rbp + 0x88]
lea r9d, [rax - 1]
cmp byte [rsp + 0x52], 0
je 0x1400613ad
test r10b, r10b
je 0x140061391
mov r12d, r9d
jmp 0x1400613d3
mov ecx, dword [rbp + 0x90]
mov eax, r8d
cdq
idiv ecx
lea r12d, [rax + 1]
imul r12d, ecx
sub r12d, edx
dec r12d
jmp 0x1400613d3
test r10b, r10b
je 0x1400613d0
mov ecx, dword [rbp + 0x90]
mov eax, r9d
cdq
idiv ecx
mov r12d, eax
mov eax, r8d
cdq
imul r12d, ecx
idiv ecx
add r12d, edx
jmp 0x1400613d3
mov r12d, r8d
mov rcx, qword [rsp + 0x58]
movsxd rax, r12d
mov edx, dword [rcx + rax*4]
mov eax, edx
movzx ecx, dx
shr eax, 0x10
shr cx, 8
cmp al, byte [rbp + 0x98]
jb 0x14006140f
cmp al, sil
ja 0x14006140f
cmp cl, r15b
jb 0x14006140f
cmp cl, r11b
ja 0x14006140f
cmp dl, r13b
jb 0x14006140f
cmp dl, dil
jbe 0x140061522
inc r8d
dec r9d
cmp r8d, dword [rsp + 0x54]
jl 0x140061380
mov r13, qword [rsp + 0x58]
xor sil, sil
mov r15, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdi, qword [rbp - 0x50]
test rdi, rdi
je 0x140061461
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140061458
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140061473
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r13, r13
je 0x140061f93
mov rcx, r13
call fcn.1400d6fd8
cmp byte [rbp + 0xc0], 0
jne 0x1400614d9
test sil, sil
je 0x1400614d9
mov edi, dword [rbp + 0x90]
test r15, r15
je 0x1400614b9
mov eax, r12d
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, r15
cdq
idiv edi
sub edx, dword [rsp + 0x7c]
add edx, dword [rsp + 0x78]
movsxd rdx, edx
call fcn.140001090
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400614d9
mov eax, r12d
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
sub eax, dword [rbp - 0x78]
add eax, dword [rbp - 0x80]
movsxd rdx, eax
call fcn.140001090
cmp byte [rbp + 0xa0], 0
mov rsi, qword [0x14012b628]
lea r15, [0x1400f1604]
movzx r9d, byte [rsi + 0x23]
lea r13, [0x1400f565c]
cmovne r13, r15
test r9b, r9b
jne 0x140061536
mov rcx, qword [rsi + 0x10]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov rdx, r13
mov byte [rsp + 0x20], 1
call fcn.1400bd650
mov esi, eax
jmp 0x140061fb8
mov r13, qword [rsp + 0x58]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140061428
mov dl, 1
test r13, r13
jne 0x14006154b
xor dl, dl
mov r12, r14
lea r13, [0x1400f1514]
jmp 0x14006156d
cmp qword [rsi + 8], r13
jne 0x14006155a
mov r12, qword [rsi + 0x10]
shr r12, 1
jmp 0x14006156d
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r12, [rcx - 1]
lea rax, [r12 + 1]
lea rdi, [rax + rax]
cmp r9b, 2
jne 0x14006158e
mov rdx, r12
mov rcx, r13
call fcn.140006d20
mov esi, eax
jmp 0x140061fb8
mov r9, qword [0x1401255a0]
cmp rdi, r9
jbe 0x1400615c1
cmp rdi, qword [rsi + 0x18]
jbe 0x1400615c1
lea r8, [0x1400f1514]
lea rdx, str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
cmp rax, 2
jae 0x1400615e8
test dl, dl
mov rcx, rsi
setne r14b
xor r8d, r8d
lea edx, [r14 + 3]
call fcn.1400bdd00
mov esi, 1
mov eax, esi
jmp 0x140061fb8
movzx eax, byte [rsi + 0x21]
test al, 2
je 0x140061605
mov rcx, qword [rsi]
and al, 0x3d
mov byte [rsi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9, qword [0x1401255a0]
mov rcx, qword [rsi + 0x18]
and byte [rsi + 0x21], 0x82
cmp rdi, rcx
jbe 0x14006176b
movzx r8d, byte [rsi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140061636
cmp al, 2
je 0x140061676
mov rbx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x70]
jmp 0x14006175f
cmp rdi, 0x80
ja 0x140061676
cmp rdi, rbx
jbe 0x140061655
mov ebx, 0x80
cmp rdi, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400b60b0
test rax, rax
jne 0x14006166d
mov esi, r14d
mov eax, r14d
jmp 0x140061fb8
mov byte [rsi + 0x20], 1
jmp 0x14006175f
cmp rdi, 0x20
jae 0x140061686
mov ebx, SafeArrayAllocDescriptor
jmp 0x140061726
cmp rdi, 0x208
jae 0x140061699
mov ebx, 0x208
jmp 0x140061726
cmp rdi, 0x50000
jae 0x1400616e2
pxor xmm0, xmm0
cvtsi2sd xmm0, rdi
test rdi, rdi
jns 0x1400616b4
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400616d8
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400616d8
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140061726
cmp rdi, 0x320000
jae 0x1400616f4
lea rbx, [rdi + 0x8000]
jmp 0x140061726
cmp rdi, 0xc80000
jae 0x14006171f
movabs rax, 0x47ae147ae147ae15
mov rbx, rdi
mul rdi
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, rdi
jmp 0x140061726
lea rbx, [rdi + 0x20000]
cmp rbx, r9
cmova rbx, r9
cmp r8b, 2
jne 0x140061746
test rcx, rcx
je 0x140061746
mov rcx, qword [rsi + 8]
mov dil, 1
call fcn.1400d6fd8
jmp 0x140061749
xor dil, dil
test rbx, rbx
js 0x14006179d
mov rcx, rbx
call fcn.1400d6f18
test rax, rax
je 0x14006179d
mov byte [rsi + 0x20], 2
and byte [rsi + 0x21], 0x7f
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], rbx
mov rcx, qword [rsi + 8]
cmp rcx, r13
je 0x140061780
lea r8, [r12 + r12]
mov rdx, r13
call fcn.1400d7a40
mov rax, qword [rsi + 8]
lea rcx, [r12 + r12]
mov word [rcx + rax], r14w
mov qword [rsi + 0x10], rcx
mov esi, 1
mov eax, esi
jmp 0x140061fb8
test dil, dil
je 0x1400617b3
lea rax, [0x14012c4b8]
mov qword [rsi + 0x18], r14
mov qword [rsi + 8], rax
jmp 0x1400617bb
mov rax, qword [rsi + 8]
mov word [rax], r14w
lea r8, [0x1400f1514]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c5c0]
mov qword [rsi + 0x10], r14
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
test edi, edi
jle 0x140061883
movzx ecx, byte [rbp + 0xb0]
cmp edi, ecx
jle 0x1400617f7
xor al, al
jmp 0x1400617fd
movzx eax, cl
sub al, dil
movzx edx, sil
mov byte [rbp + 0xc0], al
cmp edi, edx
jle 0x14006180f
xor al, al
jmp 0x140061815
movzx eax, dl
sub al, dil
movzx r8d, byte [rsp + 0x68]
mov byte [rsp + 0x53], al
cmp edi, r8d
jle 0x140061828
xor al, al
jmp 0x14006182f
movzx eax, r8b
sub al, dil
mov byte [rsp + 0x50], al
mov r9d, 0xff
mov eax, r9d
sub eax, ecx
cmp edi, eax
jle 0x14006184b
mov byte [rbp + 0xb0], r9b
jmp 0x140061854
lea eax, [rcx + rdi]
mov byte [rbp + 0xb0], al
mov eax, r9d
sub eax, edx
cmp edi, eax
jle 0x140061864
mov byte [rsp + 0x51], r9b
jmp 0x14006186b
lea eax, [rdx + rdi]
mov byte [rsp + 0x51], al
sub r9d, r8d
cmp edi, r9d
mov r9, qword [rsp + 0x60]
jle 0x14006187d
mov r15b, 0xff
jmp 0x1400618c6
lea r15d, [r8 + rdi]
jmp 0x1400618c6
movzx eax, byte [rbp + 0xc0]
mov byte [rbp + 0xc0], al
movzx eax, byte [rbp + 0xc0]
movzx r15d, byte [rbp + 0xc0]
mov byte [rsp + 0x53], al
movzx eax, byte [rbp + 0xc0]
mov byte [rsp + 0x50], al
movzx eax, byte [rbp + 0xc0]
mov byte [rbp + 0xb0], al
movzx eax, byte [rbp + 0xc0]
mov byte [rsp + 0x51], al
movzx edx, byte [rsp + 0x52]
movsxd rax, edi
mov edi, dword [rbp + 0xc0]
or rcx, 0xffffffffffffffff
mov qword [rbp - 0x70], rax
lea esi, [rcx + 2]
nop
mov eax, r14d
test dl, dl
je 0x1400618f2
cmp ebx, dword [rbp + 0x98]
setge al
jmp 0x1400618fb
cmp ebx, dword [rbp + 0x98]
setle al
test eax, eax
je 0x140061956
mov edi, dword [rbp + 0x90]
nop word [rax + rax]
cmp byte [rbp + 0x88], 0
mov eax, r14d
je 0x140061924
cmp edi, r12d
setge al
jmp 0x14006192a
cmp edi, r12d
setle al
test eax, eax
je 0x140061a00
mov r8d, edi
mov edx, ebx
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp qword [rbp - 0x70], rsi
jge 0x1400619a6
cmp eax, r13d
jne 0x1400619dd
mov byte [rbp + 0xa0], sil
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [rbp + 0xa0], 0
jne 0x140061ca4
mov rdi, qword [0x14012b628]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x140061a13
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f565c]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], sil
call fcn.1400bd650
mov esi, eax
jmp 0x140061fb8
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rbp + 0xc0]
jb 0x1400619dd
cmp al, byte [rbp + 0xb0]
ja 0x1400619dd
cmp cl, byte [rsp + 0x53]
jb 0x1400619dd
cmp cl, byte [rsp + 0x51]
ja 0x1400619dd
cmp dl, byte [rsp + 0x50]
jb 0x1400619dd
cmp dl, r15b
jbe 0x14006194f
movzx r10d, byte [rbp + 0x88]
mov r9, qword [rsp + 0x60]
mov eax, esi
test r10b, r10b
mov rcx, 0xffffffffffffffff
cmovne eax, ecx
add edi, eax
jmp 0x140061910
movzx edx, byte [rsp + 0x52]
mov eax, esi
test dl, dl
cmovne eax, ecx
add ebx, eax
jmp 0x1400618e0
lea r13, [0x1400f565c]
cmp qword [rdi + 8], r13
jne 0x140061a29
mov r15, qword [rdi + 0x10]
shr r15, 1
jmp 0x140061a2c
mov r15, rsi
lea rdx, [r15 + 1]
lea r12, [rdx + rdx]
cmp al, 2
jne 0x140061a4a
mov rdx, r15
mov rcx, r13
call fcn.140006d20
mov esi, eax
jmp 0x140061fb8
mov rcx, qword [0x1401255a0]
cmp r12, rcx
jbe 0x140061a7d
cmp r12, qword [rdi + 0x18]
jbe 0x140061a7d
lea r8, [0x1400f1514]
lea rdx, str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
cmp rdx, 2
jae 0x140061a99
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bdd00
mov eax, esi
jmp 0x140061fb8
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x140061ab6
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [0x1401255a0]
mov r8, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp r12, r8
jbe 0x140061c34
movzx r9d, byte [rdi + 0x20]
movzx eax, r9b
cmp r9b, sil
jbe 0x140061ae6
cmp al, 2
je 0x140061b2d
mov rbx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x70]
jmp 0x140061c28
cmp r12, 0x80
ja 0x140061b2d
cmp r12, 8
ja 0x140061afc
mov ebx, 8
jmp 0x140061b0c
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
mov ebx, 0x80
cmp r12, rax
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400b60b0
test rax, rax
jne 0x140061b24
mov esi, r14d
mov eax, r14d
jmp 0x140061fb8
mov byte [rdi + 0x20], sil
jmp 0x140061c28
cmp r12, 0x20
jae 0x140061b3d
mov ebx, SafeArrayAllocDescriptor
jmp 0x140061bee
cmp r12, 0x208
jae 0x140061b50
mov ebx, 0x208
jmp 0x140061bee
cmp r12, 0x50000
jae 0x140061ba8
pxor xmm0, xmm0
cvtsi2sd xmm0, r12
test r12, r12
jns 0x140061b6f
addsd xmm0, qword [0x140112038]
mulsd xmm0, qword [0x140112070]
movsd xmm1, qword [0x140112068]
xor eax, eax
comisd xmm0, xmm1
jbe 0x140061b9e
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x140061b9e
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140061bee
cmp r12, 0x320000
jae 0x140061bbb
lea rbx, [r12 + 0x8000]
jmp 0x140061bee
cmp r12, 0xc80000
jae 0x140061be6
movabs rax, 0x47ae147ae147ae15
mov rbx, r12
mul r12
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, r12
jmp 0x140061bee
lea rbx, [r12 + 0x20000]
cmp rbx, rcx
cmova rbx, rcx
cmp r9b, 2
jne 0x140061c0f
test r8, r8
je 0x140061c0f
mov rcx, qword [rdi + 8]
movzx r12d, sil
call fcn.1400d6fd8
jmp 0x140061c12
xor r12b, r12b
test rbx, rbx
js 0x140061c61
mov rcx, rbx
call fcn.1400d6f18
test rax, rax
je 0x140061c61
mov byte [rdi + 0x20], 2
and byte [rdi + 0x21], 0x7f
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], rbx
mov rcx, qword [rdi + 8]
cmp rcx, r13
je 0x140061c49
lea r8, [r15 + r15]
mov rdx, r13
call fcn.1400d7a40
mov rax, qword [rdi + 8]
lea rcx, [r15 + r15]
mov word [rcx + rax], r14w
mov qword [rdi + 0x10], rcx
mov eax, esi
jmp 0x140061fb8
test r12b, r12b
je 0x140061c77
lea rax, [0x14012c4b8]
mov qword [rdi + 0x18], r14
mov qword [rdi + 8], rax
jmp 0x140061c7f
mov rax, qword [rdi + 8]
mov word [rax], r14w
lea r8, [0x1400f1514]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c5c0]
mov qword [rdi + 0x10], r14
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140061cbd
sub ebx, dword [rsp + 0x7c]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, ebx
call fcn.140001090
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x140061cd4
sub edi, dword [rbp - 0x78]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, edi
call fcn.140001090
mov rdi, qword [0x14012b628]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x140061d06
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f1604]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], sil
call fcn.1400bd650
mov esi, eax
jmp 0x140061fb8
lea r15, [0x1400f1604]
cmp qword [rdi + 8], r15
jne 0x140061d1c
mov r13, qword [rdi + 0x10]
shr r13, 1
jmp 0x140061d1f
mov r13, rsi
lea rdx, [r13 + 1]
lea r12, [rdx + rdx]
cmp al, 2
jne 0x140061d3d
mov rdx, r13
mov rcx, r15
call fcn.140006d20
mov esi, eax
jmp 0x140061fb8
mov rcx, qword [0x1401255a0]
cmp r12, rcx
jbe 0x140061d70
cmp r12, qword [rdi + 0x18]
jbe 0x140061d70
lea r8, [0x1400f1514]
lea rdx, str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
cmp rdx, 2
jae 0x140061d8c
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bdd00
mov eax, esi
jmp 0x140061fb8
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x140061da9
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [0x1401255a0]
mov r8, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp r12, r8
jbe 0x140061f27
movzx r9d, byte [rdi + 0x20]
movzx eax, r9b
cmp r9b, sil
jbe 0x140061dd9
cmp al, 2
je 0x140061e20
mov rbx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x70]
jmp 0x140061f1b
cmp r12, 0x80
ja 0x140061e20
cmp r12, 8
ja 0x140061def
mov ebx, 8
jmp 0x140061dff
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
mov ebx, 0x80
cmp r12, rax
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400b60b0
test rax, rax
jne 0x140061e17
mov esi, r14d
mov eax, r14d
jmp 0x140061fb8
mov byte [rdi + 0x20], sil
jmp 0x140061f1b
cmp r12, 0x20
jae 0x140061e30
mov ebx, SafeArrayAllocDescriptor
jmp 0x140061ee1
cmp r12, 0x208
jae 0x140061e43
mov ebx, 0x208
jmp 0x140061ee1
cmp r12, 0x50000
jae 0x140061e9b
pxor xmm0, xmm0
cvtsi2sd xmm0, r12
test r12, r12
jns 0x140061e62
addsd xmm0, qword [0x140112038]
mulsd xmm0, qword [0x140112070]
movsd xmm1, qword [0x140112068]
xor eax, eax
comisd xmm0, xmm1
jbe 0x140061e91
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x140061e91
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140061ee1
cmp r12, 0x320000
jae 0x140061eae
lea rbx, [r12 + 0x8000]
jmp 0x140061ee1
cmp r12, 0xc80000
jae 0x140061ed9
movabs rax, 0x47ae147ae147ae15
mov rbx, r12
mul r12
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, r12
jmp 0x140061ee1
lea rbx, [r12 + 0x20000]
cmp rbx, rcx
cmova rbx, rcx
cmp r9b, 2
jne 0x140061f02
test r8, r8
je 0x140061f02
mov rcx, qword [rdi + 8]
movzx r12d, sil
call fcn.1400d6fd8
jmp 0x140061f05
xor r12b, r12b
test rbx, rbx
js 0x140061f53
mov rcx, rbx
call fcn.1400d6f18
test rax, rax
je 0x140061f53
mov byte [rdi + 0x20], 2
and byte [rdi + 0x21], 0x7f
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], rbx
mov rcx, qword [rdi + 8]
cmp rcx, r15
je 0x140061f3d
lea r8, [r13 + r13]
mov rdx, r15
call fcn.1400d7a40
mov rax, qword [rdi + 8]
lea rcx, [r13 + r13]
mov word [rcx + rax], r14w
mov qword [rdi + 0x10], rcx
mov eax, esi
jmp 0x140061fb8
test r12b, r12b
je 0x140061f69
lea rax, [0x14012c4b8]
mov qword [rdi + 0x18], r14
mov qword [rdi + 8], rax
jmp 0x140061f71
mov rax, qword [rdi + 8]
mov word [rax], r14w
lea r8, [0x1400f1514]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c5c0]
mov qword [rdi + 0x10], r14
call fcn.14004e5e0
mov esi, eax
jmp 0x140061fb8
cmp byte [rbp + 0xc0], 0
mov rcx, qword [rbp + 0x80]
lea r13, [0x1400f565c]
lea rdx, [0x1400f5be4]
cmovne rdx, r13
call fcn.14004d490
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
mov r15, qword [rsp + 0x138]
mov r13, qword [rsp + 0x140]
add rsp, 0x148
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret