Function at 0x101380b0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push esi
push 0x2000
push 0
push 0
push 0
push dword [ebp + 0xc]
mov dword [ebp - 0xc], 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadImageW]
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x10138535
push ebx
push edi
mov edi, dword [sym.imp.GDI32.dll_GetObjectW]
lea eax, [ebp - 0x44]
push eax
push 0x18
push esi
call edi
movzx ebx, word [ebp - 0x32]
push 0
push 0
shr ebx, 3
push esi
mov esi, dword [sym.imp.GDI32.dll_GetBitmapBits]
mov dword [ebp - 0x20], ebx
call esi
push eax
mov dword [ebp - 8], eax
call fcn.10085e51
add esp, 4
mov dword [ebp - 4], eax
push eax
push dword [ebp - 8]
push dword [ebp - 0x14]
call esi
mov eax, dword [ebp - 0x32]
cmp ax, 0x20
je 0x1013847f
cmp ax, 0x18
je 0x1013847f
cmp ax, 0x10
ja 0x101384df
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1c], eax
mov edx, 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x32]
mov dword [ebp - 0x6c], 0x28
mov word [ebp - 0x60], dx
mov word [ebp - 0x5e], ax
cmp ax, 8
jbe 0x10138184
mov eax, 0x18
mov word [ebp - 0x5e], ax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp ax, 0x18
jne 0x101381b8
xor edx, edx
jmp 0x101381bd
mov cl, byte [ebp - 0x5e]
shl edx, cl
lea eax, [edx*4 + 0x28]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movups xmm0, xmmword [ebp - 0x6c]
add esp, 4
mov dword [ebp - 0x24], eax
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x5c]
push 0
push eax
movups xmmword [eax + 0x10], xmm0
push 0
movq xmm0, qword [ebp - 0x4c]
movq qword [eax + 0x20], xmm0
push dword [ebp - 0x3c]
push 0
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [ebp - 0x32]
cmp ax, 0x10
jne 0x101382ba
mov eax, dword [ebp - 8]
xor edx, edx
div ebx
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x10138466
mov edi, dword [ebp - 4]
movzx edx, word [edi]
mov eax, edx
mov ebx, edx
shr eax, 2
and eax, 0xfffffff8
shl dl, 3
mov dword [ebp - 0x10], eax
movzx ecx, dl
shl ecx, 8
shr ebx, 7
movzx eax, al
and bl, 0xf8
or ecx, eax
movzx eax, bl
shl ecx, 8
or ecx, eax
cmp dword [ebp + 0x18], 0
jle 0x1013827b
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
add eax, 4
nop
cmp dword [eax - 4], ecx
jne 0x10138270
mov dl, byte [eax + 1]
mov bl, byte [eax]
mov dword [ebp - 0x10], edx
mov dl, byte [eax + 2]
add eax, 8
sub esi, 1
jne 0x10138260
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
movzx ecx, bl
mov ebx, 0xfff8
and cx, bx
movzx eax, al
shl cx, 5
or cx, ax
shr dl, 3
and cx, bx
movzx eax, dl
shl cx, 2
or cx, ax
mov word [edi], cx
add edi, dword [ebp - 0x20]
sub esi, 1
mov dword [ebp - 0x18], esi
jne 0x10138224
jmp 0x10138466
cmp ax, 8
ja 0x10138466
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebx, eax
lea eax, [ebp - 0x5c]
push eax
push 0x18
push ebx
mov dword [ebp - 0xc], ebx
call edi
movzx eax, word [ebp - 0x4a]
push 0
push 0
shr eax, 3
push ebx
mov dword [ebp - 0x28], eax
call esi
mov edi, eax
push edi
mov dword [ebp - 0x20], edi
call fcn.10085e51
add esp, 4
mov esi, eax
mov dword [ebp - 0x1c], esi
push esi
push edi
push ebx
call dword [sym.imp.GDI32.dll_GetBitmapBits]
mov edx, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edx, edx
jle 0x10138455
mov eax, dword [ebp - 0x40]
nop word [eax + eax]
xor ebx, ebx
test eax, eax
jle 0x10138443
mov esi, ecx
imul esi, dword [ebp - 8]
shl esi, 3
mov dword [ebp - 0x2c], esi
movzx edi, word [ebp - 0x32]
mov eax, esi
mov ecx, edi
imul ecx, edx
xor edx, edx
div ecx
lea esi, [ebx + eax]
lea ecx, [esi + 1]
imul ecx, edi
and ecx, 0x80000007
jns 0x1013836b
dec ecx
or ecx, 0xfffffff8
inc ecx
mov edx, 8
sub edx, ecx
and edx, 0x80000007
jns 0x1013837f
dec edx
or edx, 0xfffffff8
inc edx
mov eax, edi
imul eax, esi
mov eax, eax
test eax, eax
jns 0x1013838d
add eax, 7
sar eax, 3
mov ecx, dword [ebp - 4]
movzx esi, byte [eax + ecx]
mov ecx, edx
shr esi, cl
mov al, 1
mov ecx, edi
mov edi, dword [ebp + 0x18]
shl al, cl
dec al
movzx eax, al
and esi, eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + esi*4 + 0x28]
mov eax, ecx
shr eax, 8
movzx edx, al
movzx eax, cl
shl eax, 8
or edx, eax
shr ecx, 0x10
shl edx, 8
movzx eax, cl
or edx, eax
mov dword [ebp - 0x18], edx
test edi, edi
jle 0x1013842e
mov ecx, dword [ebp + 0x14]
add ecx, 4
nop word [eax + eax]
cmp dword [ecx - 4], edx
jne 0x10138426
mov eax, dword [ebp - 0x50]
imul eax, dword [ebp - 0x10]
movzx esi, word [ebp - 0x4a]
shl eax, 3
cdq
idiv esi
lea esi, [ebx + eax]
imul esi, dword [ebp - 0x28]
lea edx, [esi + 3]
cmp edx, dword [ebp - 0x20]
jae 0x10138423
mov edx, dword [ebp - 0x1c]
mov byte [esi + edx + 3], 0xff
movzx eax, byte [ecx]
mov byte [esi + edx + 2], al
movzx eax, byte [ecx + 1]
mov byte [esi + edx + 1], al
movzx eax, byte [ecx + 2]
mov byte [esi + edx], al
mov edx, dword [ebp - 0x18]
add ecx, 8
sub edi, 1
jne 0x101383e0
mov eax, dword [ebp - 0x40]
inc ebx
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x2c]
cmp ebx, eax
jl 0x10138346
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, edx
jl 0x10138330
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
push dword [ebp - 4]
call fcn.100854ab
add esp, 4
mov dword [ebp - 4], esi
mov dword [ebp - 8], edi
push dword [ebp - 0x24]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov esi, dword [ebp - 0xc]
add esp, 4
test esi, esi
jne 0x10138515
jmp 0x101384df
mov eax, dword [ebp - 8]
xor edx, edx
div ebx
mov ebx, eax
test ebx, ebx
je 0x101384df
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 0x18]
add edx, 2
movzx esi, byte [edx - 2]
movzx eax, byte [edx - 1]
shl esi, 8
or esi, eax
movzx eax, byte [edx]
shl esi, 8
or esi, eax
test edi, edi
jle 0x101384d7
mov ecx, dword [ebp + 0x14]
add ecx, 4
cmp dword [ecx - 4], esi
jne 0x101384cc
movzx eax, byte [ecx + 2]
mov byte [edx - 2], al
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx]
mov byte [edx], al
add ecx, 8
sub edi, 1
jne 0x101384b4
mov edi, dword [ebp + 0x18]
add edx, dword [ebp - 0x20]
sub ebx, 1
jne 0x10138495
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [ebp - 0x14]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, eax
push ebx
call edi
push dword [ebp - 0x3c]
mov esi, eax
push dword [ebp - 0x40]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push esi
push ebx
mov dword [ebp - 0xc], eax
call edi
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
push ebx
push dword [ebp - 8]
push esi
call dword [sym.imp.GDI32.dll_SetBitmapBits]
push ebx
call fcn.100854ab
add esp, 4
mov eax, esi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret