Function at 0x140072930
Capabilities:
Capture screenshot

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 8], rcx
push rbp
push rbx
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
movzx ebx, byte [rbp + 0xc0]
mov rdi, qword [rbp + 0xb8]
mov r13d, r9d
mov r15d, edx
test bl, bl
jne 0x140072981
lea rdx, str.Fast
mov rcx, rdi
call fcn.1400e0a80
mov byte [rbp + 0x88], bl
test rax, rax
je 0x140072988
mov byte [rbp + 0x88], 1
lea rdx, [0x140122b40]
mov rcx, rdi
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x138], r14
call fcn.1400e0a80
test rax, rax
setne al
mov byte [rbp + 0x98], al
test al, al
je 0x1400729e3
mov esi, dword [rbp + 0xa8]
movzx eax, si
shr ax, 8
movzx r14d, al
mov eax, esi
shr eax, 0x10
shl r14d, 8
movzx ecx, al
movzx eax, sil
shl eax, 0x10
or r14d, ecx
or r14d, eax
jmp 0x140072a0c
mov r14d, dword [rbp + 0xa8]
movzx eax, r14w
shr ax, 8
movzx esi, al
mov eax, r14d
shr eax, 0x10
shl esi, 8
movzx ecx, al
movzx eax, r14b
shl eax, 0x10
or esi, ecx
or esi, eax
mov rcx, qword [0x14013f500]
xor r12d, r12d
mov qword [rbp - 0x50], rcx
mov edi, r12d
test bl, bl
jne 0x140072a34
mov rax, qword [rbp + 0x80]
cmp byte [rax + 1], 1
cmova rdi, qword [0x14013f508]
mov qword [rbp - 0x68], rdi
test rcx, rcx
je 0x140072a42
call fcn.14002f9e0
test rdi, rdi
je 0x140072a4f
mov rcx, rdi
call fcn.14002f9e0
xor eax, eax
mov dword [rsp + 0x54], r12d
mov qword [rbp - 0x78], rax
mov rax, qword [0x14013b0f8]
movzx edi, word [rax + 0x130]
and edi, 3
cmp edi, 2
je 0x140072aeb
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rbx, rax
test rax, rax
je 0x140072aeb
mov rcx, rax
call qword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x140072aeb
mov rcx, rbx
test edi, edi
jne 0x140072aba
lea rdx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
mov eax, r12d
je 0x140072aee
mov rdx, qword [rbp - 0x78]
add eax, dword [rsp + 0x78]
add edx, dword [rsp + 0x7c]
mov dword [rsp + 0x54], eax
mov qword [rbp - 0x78], rdx
jmp 0x140072aee
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], 0
call qword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
mov eax, r12d
je 0x140072aee
mov rdx, qword [rbp - 0x78]
add eax, dword [rsp + 0x60]
add edx, dword [rsp + 0x64]
mov dword [rsp + 0x54], eax
mov qword [rbp - 0x78], rdx
jmp 0x140072aee
mov eax, r12d
mov ebx, dword [rbp + 0x90]
mov edi, dword [rbp + 0xb0]
add r13d, eax
add r15d, eax
mov dword [rsp + 0x5c], r13d
mov r13d, dword [rbp + 0xa0]
mov dword [rsp + 0x58], r15d
mov r15, qword [rbp - 0x78]
mov eax, 0xff
add ebx, r15d
add r13d, r15d
mov dword [rbp + 0x90], ebx
test edi, edi
jns 0x140072c77
mov edi, r12d
movzx eax, byte [rbp + 0xc0]
movzx r15d, byte [rbp + 0xc0]
mov byte [rbp + 0xb0], al
movzx eax, byte [rbp + 0xc0]
mov dword [rsp + 0x68], eax
movaps xmmword [rsp + 0x120], xmm6
xor ecx, ecx
movaps xmmword [rsp + 0x110], xmm7
movaps xmmword [rsp + 0x100], xmm8
call qword [sym.imp.USER32.dll_GetDC]
mov r10, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140073e45
cmp byte [rbp + 0x88], 0
mov byte [rbp + 0xa0], 0
je 0x1400735d9
mov r14d, dword [rsp + 0x5c]
sub r13d, ebx
mov rcx, rax
sub r14d, dword [rsp + 0x58]
mov qword [rbp - 0x70], r12
mov qword [rsp + 0x78], r12
inc r14d
inc r13d
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
movsd xmm7, qword [0x1401279a8]
movsd xmm8, qword [0x1401279e0]
movsd xmm6, qword [0x1401279d8]
mov qword [rbp - 0x58], rax
mov ebx, 8
test rax, rax
je 0x140072c68
mov rcx, qword [rsp + 0x60]
mov r8d, r13d
mov edx, r14d
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rbp - 0x70], rax
test rax, rax
je 0x140072c68
mov rcx, qword [rbp - 0x58]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140072c68
mov eax, dword [rbp + 0x90]
mov dword [rsp + 0x40], 0xcc0020
mov r9d, r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x58]
xor r8d, r8d
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x60]
xor edx, edx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov r13, qword [rbp - 0x58]
mov rcx, r13
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x140072c68
mov rcx, r13
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
test rax, rax
jne 0x140072cac
mov r13, r12
mov r15d, dword [rbp + 0xc0]
jmp 0x140073209
cmp edi, eax
jle 0x140072c7f
mov edi, eax
jmp 0x140072c87
test edi, edi
jle 0x140072b31
movzx r15d, r14w
mov ebx, r14d
mov byte [rbp + 0xb0], r14b
shr r15w, 8
shr ebx, 0x10
mov dword [rsp + 0x68], ebx
mov ebx, dword [rbp + 0x90]
jmp 0x140072b51
mov rcx, qword [rbp - 0x70]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x88]
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x5c]
mov dword [rsp + 0x20], ebx
call fcn.1400726b0
mov r13, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140072c6b
mov ecx, dword [rsp + 0x5c]
movzx edx, byte [rbp + 0x88]
imul ecx, dword [rbp - 0x60]
movsxd r8, ecx
mov qword [rbp - 0x60], r8
test dl, dl
je 0x140072d21
mov dword [rbp + 0x88], r12d
mov rcx, r12
test r8, r8
jle 0x140072d2d
mov dword [rbp + 0x88], r8d
nop dword [rax + rax]
and dword [rax + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, r8
jl 0x140072d10
jmp 0x140072d2d
mov eax, dword [rbp + 0xc0]
mov dword [rbp + 0x88], eax
movzx r14d, byte [rbp + 0xc0]
test r14b, r14b
je 0x1400730c2
mov r8d, dword [r13]
and r8d, 0xffffff
cmp byte [rbp + 0x98], 0
jne 0x140072d76
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 qword [sym.imp.MSVCR100.dll__swprintf]
mov r15, qword [rbp - 0x50]
movzx r11d, byte [r15 + 0x23]
test r11b, r11b
jne 0x140072dc4
mov rcx, qword [r15 + 0x10]
lea rdx, [rbp - 0x40]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
lea rax, [rbp - 0x40]
cmp qword [r15 + 8], rax
jne 0x140072dd7
mov r13, qword [r15 + 0x10]
shr r13, 1
jmp 0x140072deb
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 0x140072e20
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.140006bc0
mov r13, qword [rsp + 0x70]
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
mov rcx, qword [0x14013b0d0]
cmp rsi, rcx
jbe 0x140072e67
cmp rsi, qword [r15 + 0x18]
jbe 0x140072e67
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov r13, qword [rsp + 0x70]
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
cmp rax, 2
jae 0x140072e97
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 3]
call fcn.1400e74d0
mov r13, qword [rsp + 0x70]
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x140072eb6
mov rcx, qword [r15]
and al, 0x3d
mov byte [r15 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [0x14013b0d0]
mov r9, qword [r15 + 0x18]
and byte [r15 + 0x21], 0x82
cmp rsi, r9
jbe 0x140073022
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140072eea
cmp al, 2
je 0x140072f29
mov rdi, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
jmp 0x140073015
cmp rsi, 0x80
ja 0x140072f29
cmp rsi, rbx
ja 0x140072efd
mov rdi, rbx
jmp 0x140072f0e
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x140073050
mov byte [r15 + 0x20], 1
jmp 0x140073015
cmp rsi, 0x20
jae 0x140072f39
mov edi, SafeArrayAllocDescriptor
jmp 0x140072fd9
cmp rsi, 0x208
jae 0x140072f4c
mov edi, 0x208
jmp 0x140072fd9
cmp rsi, 0x50000
jae 0x140072f95
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x140072f67
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140072f8b
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140072f8b
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x140072fd9
cmp rsi, 0x320000
jae 0x140072fa7
lea rdi, [rsi + 0x8000]
jmp 0x140072fd9
cmp rsi, 0xc80000
jae 0x140072fd2
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x140072fd9
lea rdi, [rsi + 0x20000]
cmp rdi, rcx
cmova rdi, rcx
cmp r8b, 2
jne 0x140072ffa
test r9, r9
je 0x140072ffa
mov rcx, qword [r15 + 8]
mov sil, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x140072ffd
xor sil, sil
test rdi, rdi
js 0x14007306b
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x14007306b
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 0x14007303e
lea r8, [r13 + r13]
lea rdx, [rbp - 0x40]
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [r15 + 8]
lea rcx, [r13 + r13]
mov word [rcx + rax], r12w
mov qword [r15 + 0x10], rcx
mov r13, qword [rsp + 0x70]
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
test sil, sil
je 0x140073081
lea rax, [0x140141fa8]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x140073089
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [r15 + 0x10], r12
call fcn.14005f7b0
mov r13, qword [rsp + 0x70]
mov r15d, dword [rbp + 0x88]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
cmp edi, 1
jge 0x14007310d
test dl, dl
je 0x1400730d1
and esi, 0xf8f8f8f8
mov r15d, r12d
mov rcx, r12
test r8, r8
jle 0x140073211
mov eax, dword [r13 + rcx*4]
and eax, 0xffffff
cmp eax, esi
je 0x1400730fe
inc rcx
inc r15d
cmp rcx, r8
jl 0x1400730e0
jmp 0x140073211
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
mov ecx, dword [rsp + 0x68]
test dl, dl
movzx edx, byte [rbp + 0xb0]
je 0x140073126
and dl, 0xf8
and r15b, 0xf8
and cl, 0xf8
movzx r9d, dl
cmp edi, r9d
jle 0x140073138
mov byte [rbp + 0xb0], 0
jmp 0x140073144
movzx eax, dl
sub al, dil
mov byte [rbp + 0xb0], al
movzx r10d, r15b
cmp edi, r10d
jle 0x140073152
xor r14b, r14b
jmp 0x140073159
movzx r14d, r15b
sub r14b, dil
movzx r11d, cl
cmp edi, r11d
jle 0x140073167
xor r13b, r13b
jmp 0x14007316e
movzx r13d, cl
sub r13b, dil
mov r8d, 0xff
mov eax, r8d
sub eax, r9d
cmp edi, eax
jle 0x140073184
movzx esi, r8b
jmp 0x140073187
lea esi, [rdx + rdi]
mov eax, r8d
sub eax, r10d
cmp edi, eax
jle 0x140073197
movzx r9d, r8b
jmp 0x14007319b
lea r9d, [r15 + rdi]
sub r8d, r11d
cmp edi, r8d
jle 0x1400731a8
mov dil, 0xff
jmp 0x1400731ab
add dil, cl
mov r10, qword [rbp - 0x60]
mov r15d, r12d
mov r8, r12
test r10, r10
jle 0x140073204
movzx r11d, byte [rbp + 0xb0]
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + r8*4]
mov eax, edx
movzx ecx, dx
shr eax, 0x10
shr cx, 8
cmp al, r11b
jb 0x1400731f9
cmp al, sil
ja 0x1400731f9
cmp cl, r14b
jb 0x1400731f9
cmp cl, r9b
ja 0x1400731f9
cmp dl, r13b
jb 0x1400731f9
cmp dl, dil
jbe 0x14007330c
inc r8
inc r15d
cmp r8, r10
jl 0x1400731c2
mov r13, qword [rsp + 0x70]
movzx r14d, byte [rbp + 0xc0]
xor sil, sil
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x140073249
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140073240
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 - 0x70]
test rax, rax
je 0x14007325b
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r13, r13
je 0x140073e45
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_free]
test r14b, r14b
jne 0x1400732c3
test sil, sil
je 0x1400732c3
mov rcx, qword [rbp - 0x50]
mov edi, dword [rsp + 0x5c]
test rcx, rcx
je 0x14007329d
mov eax, r15d
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
sub edx, dword [rsp + 0x54]
add edx, dword [rsp + 0x58]
movsxd rdx, edx
call fcn.140001090
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1400732c3
mov eax, r15d
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
mov rdx, qword [rbp - 0x78]
sub eax, edx
add eax, dword [rbp + 0x90]
movsxd rdx, eax
call fcn.140001090
cmp byte [rbp + 0xa0], 0
mov rsi, qword [0x140140268]
lea r15, [0x140103674]
movzx r9d, byte [rsi + 0x23]
lea r14, [0x14010771c]
cmovne r14, r15
test r9b, r9b
jne 0x140073328
mov rcx, qword [rsi + 0x10]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov rdx, r14
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
mov esi, eax
jmp 0x140073e6a
mov r13, qword [rsp + 0x70]
movzx r14d, byte [rbp + 0xc0]
mov sil, 1
mov byte [rbp + 0xa0], sil
jmp 0x140073214
mov dl, 1
test r14, r14
jne 0x14007333d
xor dl, dl
mov r13, r12
lea r14, [0x1401035ac]
jmp 0x14007335f
cmp qword [rsi + 8], r14
jne 0x14007334c
mov r13, qword [rsi + 0x10]
shr r13, 1
jmp 0x14007335f
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
lea rax, [r13 + 1]
lea rdi, [rax + rax]
cmp r9b, 2
jne 0x14007337f
mov rdx, r13
mov rcx, r14
call fcn.140006bc0
mov esi, eax
jmp 0x140073e6a
mov r9, qword [0x14013b0d0]
cmp rdi, r9
jbe 0x1400733b2
cmp rdi, qword [rsi + 0x18]
jbe 0x1400733b2
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
cmp rax, 2
jae 0x1400733da
test dl, dl
mov rcx, rsi
setne r12b
xor r8d, r8d
lea edx, [r12 + 2]
call fcn.1400e74d0
mov esi, 1
mov eax, esi
jmp 0x140073e6a
movzx eax, byte [rsi + 0x21]
test al, 2
je 0x1400733f7
mov rcx, qword [rsi]
and al, 0x3d
mov byte [rsi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov r9, qword [0x14013b0d0]
mov rcx, qword [rsi + 0x18]
and byte [rsi + 0x21], 0x82
cmp rdi, rcx
jbe 0x140073561
movzx r8d, byte [rsi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14007342a
cmp al, 2
je 0x14007346a
mov rbx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
jmp 0x140073555
cmp rdi, 0x80
ja 0x14007346a
cmp rdi, rbx
jbe 0x140073449
mov ebx, 0x80
cmp rdi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400dd290
test rax, rax
jne 0x140073461
mov esi, r12d
mov eax, r12d
jmp 0x140073e6a
mov byte [rsi + 0x20], 1
jmp 0x140073555
cmp rdi, 0x20
jae 0x14007347a
mov ebx, SafeArrayAllocDescriptor
jmp 0x14007351a
cmp rdi, 0x208
jae 0x14007348d
mov ebx, 0x208
jmp 0x14007351a
cmp rdi, 0x50000
jae 0x1400734d6
pxor xmm0, xmm0
cvtsi2sd xmm0, rdi
test rdi, rdi
jns 0x1400734a8
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400734cc
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400734cc
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x14007351a
cmp rdi, 0x320000
jae 0x1400734e8
lea rbx, [rdi + 0x8000]
jmp 0x14007351a
cmp rdi, 0xc80000
jae 0x140073513
movabs rax, 0x47ae147ae147ae15
mov rbx, rdi
mul rdi
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, rdi
jmp 0x14007351a
lea rbx, [rdi + 0x20000]
cmp rbx, r9
cmova rbx, r9
cmp r8b, 2
jne 0x14007353b
test rcx, rcx
je 0x14007353b
mov rcx, qword [rsi + 8]
mov dil, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x14007353e
xor dil, dil
test rbx, rbx
js 0x140073596
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x140073596
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, r14
je 0x140073578
lea r8, [r13 + r13]
mov rdx, r14
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rsi + 8]
lea rcx, [r13 + r13]
mov word [rcx + rax], r12w
mov qword [rsi + 0x10], rcx
mov esi, 1
mov eax, esi
jmp 0x140073e6a
test dil, dil
je 0x1400735ac
lea rax, [0x140141fa8]
mov qword [rsi + 0x18], r12
mov qword [rsi + 8], rax
jmp 0x1400735b4
mov rax, qword [rsi + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rsi + 0x10], r12
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
mov ecx, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x58]
mov r11d, dword [rbp + 0x90]
cmp edx, ecx
setg r8b
cmp r11d, r13d
setg bl
mov byte [rsp + 0x50], r8b
test edi, edi
jle 0x1400736d7
movzx r10d, byte [rbp + 0xb0]
mov ecx, r10d
cmp edi, r10d
jle 0x14007361a
mov byte [rbp + 0xc0], 0
jmp 0x140073627
movzx eax, r10b
sub al, dil
mov byte [rbp + 0xc0], al
movzx edx, r15b
cmp edi, edx
jle 0x140073638
mov byte [rbp + 0x88], 0
jmp 0x140073645
movzx eax, r15b
sub al, dil
mov byte [rbp + 0x88], al
mov r8d, dword [rsp + 0x68]
movzx r9d, r8b
cmp edi, r9d
jle 0x14007365a
mov byte [rsp + 0x51], 0
jmp 0x140073666
movzx esi, r8b
sub sil, dil
mov byte [rsp + 0x51], sil
mov r11d, 0xff
mov eax, r11d
sub eax, ecx
cmp edi, eax
jle 0x14007367e
mov byte [rbp + 0xb0], r11b
jmp 0x140073688
lea ecx, [r10 + rdi]
mov byte [rbp + 0xb0], cl
mov eax, r11d
sub eax, edx
cmp edi, eax
jle 0x14007369a
mov byte [rbp + 0x98], r11b
jmp 0x1400736a4
lea eax, [r15 + rdi]
mov byte [rbp + 0x98], al
mov ecx, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
sub r11d, r9d
cmp edi, r11d
mov r11d, dword [rbp + 0x90]
jle 0x1400736cb
movzx r8d, byte [rsp + 0x50]
mov r15b, 0xff
jmp 0x14007371e
lea r15d, [r8 + rdi]
movzx r8d, byte [rsp + 0x50]
jmp 0x14007371e
movzx eax, byte [rbp + 0xc0]
mov byte [rbp + 0xc0], al
movzx eax, byte [rbp + 0xc0]
movzx r15d, byte [rbp + 0xc0]
mov byte [rbp + 0x88], al
movzx eax, byte [rbp + 0xc0]
mov byte [rsp + 0x51], al
movzx eax, byte [rbp + 0xc0]
mov byte [rbp + 0xb0], al
movzx eax, byte [rbp + 0xc0]
mov byte [rbp + 0x98], al
movsxd rax, edi
mov edi, dword [rbp + 0xc0]
or r9, 0xffffffffffffffff
lea esi, [r9 + 2]
mov qword [rsp + 0x78], rax
mov eax, r12d
test r8b, r8b
je 0x140073743
cmp edx, ecx
setge al
jmp 0x140073748
cmp edx, ecx
setle al
test eax, eax
je 0x140073790
mov edi, r11d
nop
mov eax, r12d
test bl, bl
je 0x14007375f
cmp edi, r13d
setge al
jmp 0x140073765
cmp edi, r13d
setle al
test eax, eax
je 0x14007383a
mov r8d, edi
mov rcx, r10
call qword [sym.imp.GDI32.dll_GetPixel]
cmp qword [rsp + 0x78], rsi
jge 0x1400737e0
cmp eax, r14d
jne 0x14007381b
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 0x140073b4f
mov rdi, qword [0x140140268]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x14007385f
mov rcx, qword [rdi + 0x10]
lea rdx, [0x14010771c]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], sil
call fcn.1400e6e20
mov esi, eax
jmp 0x140073e6a
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rbp + 0xc0]
jb 0x14007381b
cmp al, byte [rbp + 0xb0]
ja 0x14007381b
cmp cl, byte [rbp + 0x88]
jb 0x14007381b
cmp cl, byte [rbp + 0x98]
ja 0x14007381b
cmp dl, byte [rsp + 0x51]
jb 0x14007381b
cmp dl, r15b
jbe 0x140073789
mov edx, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
test bl, bl
mov eax, esi
mov r9, 0xffffffffffffffff
cmovne eax, r9d
add edi, eax
jmp 0x140073750
movzx r8d, byte [rsp + 0x50]
mov ecx, dword [rsp + 0x5c]
mov r11d, dword [rbp + 0x90]
test r8b, r8b
mov eax, esi
cmovne eax, r9d
add edx, eax
mov dword [rsp + 0x58], edx
jmp 0x140073734
lea r14, [0x14010771c]
cmp qword [rdi + 8], r14
jne 0x140073875
mov r15, qword [rdi + 0x10]
shr r15, 1
jmp 0x140073878
mov r15, rsi
lea rdx, [r15 + 1]
lea r13, [rdx + rdx]
cmp al, 2
jne 0x140073896
mov rdx, r15
mov rcx, r14
call fcn.140006bc0
mov esi, eax
jmp 0x140073e6a
mov rcx, qword [0x14013b0d0]
cmp r13, rcx
jbe 0x1400738c9
cmp r13, qword [rdi + 0x18]
jbe 0x1400738c9
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
movzx eax, byte [rdi + 0x21]
cmp rdx, 2
jae 0x140073945
test al, 2
je 0x1400738e5
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
movzx ecx, byte [rdi + 0x20]
and byte [rdi + 0x21], 0x82
mov qword [rdi + 0x10], r12
dec ecx
je 0x140073936
dec ecx
jne 0x140073b05
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x140073b05
cmp rax, 0x1000
jbe 0x140073936
mov rcx, qword [rdi + 8]
call qword [sym.imp.MSVCR100.dll_free]
and byte [rdi + 0x21], 0x7f
lea rax, [0x140141fa8]
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], r12
mov eax, esi
jmp 0x140073e6a
mov rax, qword [rdi + 8]
mov word [rax], r12w
mov eax, esi
jmp 0x140073e6a
test al, 2
je 0x14007395e
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [0x14013b0d0]
mov r8, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp r13, r8
jbe 0x140073ade
movzx r9d, byte [rdi + 0x20]
movzx eax, r9b
cmp r9b, sil
jbe 0x140073990
cmp al, 2
je 0x1400739d7
mov rbx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
jmp 0x140073ad2
cmp r13, 0x80
ja 0x1400739d7
cmp r13, 8
ja 0x1400739a6
mov ebx, 8
jmp 0x1400739b6
mov eax, reloc.WSOCK32.dll_recv
mov ebx, 0x80
cmp r13, rax
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400dd290
test rax, rax
jne 0x1400739ce
mov esi, r12d
mov eax, r12d
jmp 0x140073e6a
mov byte [rdi + 0x20], sil
jmp 0x140073ad2
cmp r13, 0x20
jae 0x1400739e7
mov ebx, SafeArrayAllocDescriptor
jmp 0x140073a96
cmp r13, 0x208
jae 0x1400739fa
mov ebx, 0x208
jmp 0x140073a96
cmp r13, 0x50000
jae 0x140073a52
pxor xmm0, xmm0
cvtsi2sd xmm0, r13
test r13, r13
jns 0x140073a19
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x140073a48
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x140073a48
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140073a96
cmp r13, 0x320000
jae 0x140073a64
lea rbx, [r13 + 0x8000]
jmp 0x140073a96
cmp r13, 0xc80000
jae 0x140073a8f
movabs rax, 0x47ae147ae147ae15
mov rbx, r13
mul r13
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, r13
jmp 0x140073a96
lea rbx, [r13 + 0x20000]
cmp rbx, rcx
cmova rbx, rcx
cmp r9b, 2
jne 0x140073ab8
test r8, r8
je 0x140073ab8
mov rcx, qword [rdi + 8]
movzx r13d, sil
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x140073abb
xor r13b, r13b
test rbx, rbx
js 0x140073b0c
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x140073b0c
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, r14
je 0x140073af4
lea r8, [r15 + r15]
mov rdx, r14
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rdi + 8]
lea rcx, [r15 + r15]
mov word [rcx + rax], r12w
mov qword [rdi + 0x10], rcx
mov eax, esi
jmp 0x140073e6a
test r13b, r13b
je 0x140073b22
lea rax, [0x140141fa8]
mov qword [rdi + 0x18], r12
mov qword [rdi + 8], rax
jmp 0x140073b2a
mov rax, qword [rdi + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rdi + 0x10], r12
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x140073b6b
mov eax, dword [rsp + 0x58]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
sub eax, dword [rsp + 0x54]
movsxd rdx, eax
call fcn.140001090
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x140073b85
mov rdx, qword [rbp - 0x78]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
sub edi, edx
movsxd rdx, edi
call fcn.140001090
mov rdi, qword [0x140140268]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x140073bb7
mov rcx, qword [rdi + 0x10]
lea rdx, [0x140103674]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], sil
call fcn.1400e6e20
mov esi, eax
jmp 0x140073e6a
lea r15, [0x140103674]
cmp qword [rdi + 8], r15
jne 0x140073bcd
mov r14, qword [rdi + 0x10]
shr r14, 1
jmp 0x140073bd0
mov r14, rsi
lea rdx, [r14 + 1]
lea r13, [rdx + rdx]
cmp al, 2
jne 0x140073bee
mov rdx, r14
mov rcx, r15
call fcn.140006bc0
mov esi, eax
jmp 0x140073e6a
mov rcx, qword [0x14013b0d0]
cmp r13, rcx
jbe 0x140073c21
cmp r13, qword [rdi + 0x18]
jbe 0x140073c21
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
cmp rdx, 2
jae 0x140073c3d
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.1400e74d0
mov eax, esi
jmp 0x140073e6a
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x140073c5a
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [0x14013b0d0]
mov r8, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp r13, r8
jbe 0x140073dda
movzx r9d, byte [rdi + 0x20]
movzx eax, r9b
cmp r9b, sil
jbe 0x140073c8c
cmp al, 2
je 0x140073cd3
mov rbx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
jmp 0x140073dce
cmp r13, 0x80
ja 0x140073cd3
cmp r13, 8
ja 0x140073ca2
mov ebx, 8
jmp 0x140073cb2
mov eax, reloc.WSOCK32.dll_recv
mov ebx, 0x80
cmp r13, rax
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400dd290
test rax, rax
jne 0x140073cca
mov esi, r12d
mov eax, r12d
jmp 0x140073e6a
mov byte [rdi + 0x20], sil
jmp 0x140073dce
cmp r13, 0x20
jae 0x140073ce3
mov ebx, SafeArrayAllocDescriptor
jmp 0x140073d92
cmp r13, 0x208
jae 0x140073cf6
mov ebx, 0x208
jmp 0x140073d92
cmp r13, 0x50000
jae 0x140073d4e
pxor xmm0, xmm0
cvtsi2sd xmm0, r13
test r13, r13
jns 0x140073d15
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x140073d44
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x140073d44
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140073d92
cmp r13, 0x320000
jae 0x140073d60
lea rbx, [r13 + 0x8000]
jmp 0x140073d92
cmp r13, 0xc80000
jae 0x140073d8b
movabs rax, 0x47ae147ae147ae15
mov rbx, r13
mul r13
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, r13
jmp 0x140073d92
lea rbx, [r13 + 0x20000]
cmp rbx, rcx
cmova rbx, rcx
cmp r9b, 2
jne 0x140073db4
test r8, r8
je 0x140073db4
mov rcx, qword [rdi + 8]
movzx r13d, sil
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x140073db7
xor r13b, r13b
test rbx, rbx
js 0x140073e05
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x140073e05
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 0x140073df0
lea r8, [r14 + r14]
mov rdx, r15
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rdi + 8]
lea rcx, [r14 + r14]
mov word [rcx + rax], r12w
mov qword [rdi + 0x10], rcx
mov eax, esi
jmp 0x140073e6a
test r13b, r13b
je 0x140073e1b
lea rax, [0x140141fa8]
mov qword [rdi + 0x18], r12
mov qword [rdi + 8], rax
jmp 0x140073e23
mov rax, qword [rdi + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rdi + 0x10], r12
call fcn.14005f7b0
mov esi, eax
jmp 0x140073e6a
cmp byte [rbp + 0xc0], 0
mov rcx, qword [rbp + 0x80]
lea r14, [0x14010771c]
lea rdx, [0x140107c84]
cmovne rdx, r14
call fcn.14005e960
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
mov r14, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x140]
add rsp, 0x148
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret