Function at 0x100bb220
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc], 0
push esi
push edi
test ebx, ebx
je 0x100bb93f
lea eax, [ebp - 0x4c]
push eax
push 0x18
push ebx
call dword [sym.imp.GDI32.dll_GetObjectW]
movzx esi, word [ebp - 0x3a]
mov edi, dword [sym.imp.GDI32.dll_GetBitmapBits]
push 0
push 0
shr esi, 3
push ebx
mov dword [ebp - 0x14], esi
call edi
push eax
mov dword [ebp - 8], eax
call fcn.10085e51
add esp, 4
mov ebx, eax
mov dword [ebp - 0x10], ebx
push ebx
push dword [ebp - 8]
push dword [ebp + 8]
call edi
mov eax, dword [ebp - 0x3a]
cmp ax, 0x20
jne 0x100bb38c
mov eax, dword [ebp - 8]
xor edx, edx
div esi
mov dword [ebp - 0x18], eax
test eax, eax
je 0x100bb8e7
lea ecx, [ebx + 2]
mov dword [ebp + 0xc], ecx
nop
mov al, byte [ecx + 1]
movzx edi, byte [ecx - 2]
movzx esi, byte [ecx - 1]
movzx ecx, byte [ecx]
movzx ebx, al
test al, al
je 0x100bb2e8
imul eax, edi, 0xff
xor edx, edx
div ebx
xor edx, edx
movzx edi, al
imul eax, esi, 0xff
shl edi, 8
div ebx
xor edx, edx
movzx eax, al
or edi, eax
imul eax, ecx, 0xff
shl edi, 8
div ebx
movzx eax, al
or edi, eax
jmp 0x100bb2f2
shl edi, 8
or edi, esi
shl edi, 8
or edi, ecx
push edi
call dword [sym.imp.HncBaseDraw.dll_unsigned_int___stdcall_HncColorGetHValueFromRGB_unsigned_long_int_]
push edi
mov esi, eax
call dword [sym.imp.HncBaseDraw.dll_unsigned_int___stdcall_HncColorGetLValueFromRGB_unsigned_long_int_]
push 0
push eax
push esi
call dword [sym.imp.HncBaseDraw.dll_unsigned_long_int___stdcall_HncColorHLS2RGB_int__int__int_]
mov dword [ebp + 0x10], eax
lea ecx, [ebx + ebx*4]
mov edi, dword [ebp + 0x10]
mov eax, 0x66666667
imul ecx
mov eax, edi
sar edx, 2
mov ebx, edx
shr eax, 0x10
movzx ecx, al
mov eax, 0x80808081
shr ebx, 0x1f
add ebx, edx
movzx esi, bl
imul ecx, esi
mul ecx
mov eax, dword [ebp + 0xc]
shr edx, 7
movzx ecx, di
shr ecx, 8
imul ecx, esi
mov byte [eax - 2], dl
mov eax, 0x80808081
mul ecx
mov eax, dword [ebp + 0xc]
shr edx, 7
mov byte [eax - 1], dl
mov eax, edi
movzx ecx, al
mov eax, 0x80808081
imul ecx, esi
mul ecx
mov ecx, dword [ebp + 0xc]
shr edx, 7
mov byte [ecx], dl
mov byte [ecx + 1], bl
add ecx, dword [ebp - 0x14]
sub dword [ebp - 0x18], 1
mov dword [ebp + 0xc], ecx
jne 0x100bb2a0
jmp 0x100bb8e7
cmp ax, 0x18
jne 0x100bb4b6
mov ecx, dword [ebp - 0x48]
mov eax, ecx
imul eax, esi
mov esi, dword [ebp - 0x44]
inc eax
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], edx
test esi, esi
jle 0x100bb8e7
nop word [eax + eax]
xor edi, edi
test ecx, ecx
jle 0x100bb4a5
mov eax, dword [ebp - 0x2c]
imul eax, edx
lea ecx, [eax*2 + 1]
add ecx, ebx
nop dword [eax]
movzx edx, byte [ecx - 1]
movzx esi, byte [ecx]
mov eax, edx
movzx ebx, byte [ecx + 1]
shl eax, 8
or eax, esi
shl eax, 8
or eax, ebx
cmp eax, dword [ebp + 0x10]
je 0x100bb48c
add edx, ebx
mov dword [ebp - 0x28], 0
add edx, esi
mov eax, 0xaaaaaaab
mul edx
mov eax, 0x40
mov ebx, 0xff
mov esi, edx
shr esi, 3
cmp esi, 0x40
cmovg esi, eax
mov eax, dword [ebp + 0xc]
movzx edx, al
add edx, 0xffffffe0
add edx, esi
cmp edx, 0xff
cmovg edx, ebx
test edx, edx
movzx eax, dl
cmovle eax, dword [ebp - 0x28]
mov byte [ecx + 1], al
mov eax, dword [ebp + 0xc]
movzx edx, ax
shr edx, 8
add edx, 0xffffffe0
mov dword [ebp - 0x28], 0
add edx, esi
cmp edx, ebx
cmovg edx, ebx
test edx, edx
movzx eax, dl
cmovle eax, dword [ebp - 0x28]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
shr eax, 0x10
movzx edx, al
add edx, 0xffffffe0
add edx, esi
cmp edx, ebx
cmovg edx, ebx
xor esi, esi
test edx, edx
movzx eax, dl
cmovle eax, esi
mov byte [ecx - 1], al
add ecx, dword [ebp - 0x14]
inc edi
cmp edi, dword [ebp - 0x48]
jl 0x100bb3e0
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 0x18], edx
cmp edx, esi
jl 0x100bb3c0
jmp 0x100bb8e7
cmp ax, 0x10
ja 0x100bb8e7
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x28], eax
mov edx, 1
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x3a]
mov dword [ebp - 0x74], 0x28
mov word [ebp - 0x68], dx
mov word [ebp - 0x66], ax
cmp ax, 8
jbe 0x100bb501
mov eax, 0x18
mov word [ebp - 0x66], ax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
cmp ax, 0x18
jne 0x100bb535
xor edx, edx
jmp 0x100bb53a
mov cl, byte [ebp - 0x66]
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 - 0x74]
add esp, 4
mov dword [ebp - 0x2c], eax
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x64]
push 0
push eax
movups xmmword [eax + 0x10], xmm0
push 0
movq xmm0, qword [ebp - 0x54]
movq qword [eax + 0x20], xmm0
push dword [ebp - 0x44]
push 0
push dword [ebp + 8]
push dword [ebp - 0x28]
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [ebp - 0x3a]
cmp ax, 0x10
jne 0x100bb69f
mov eax, dword [ebp - 8]
xor edx, edx
div esi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100bb8d4
mov edi, ebx
nop
movzx edx, word [edi]
mov eax, edx
mov ebx, edx
shr eax, 2
and eax, 0xfffffff8
shr ebx, 7
mov dword [ebp - 0x14], eax
and bl, 0xf8
movzx eax, al
mov dword [ebp - 0x28], eax
shl dl, 3
movzx ecx, dl
movzx eax, bl
mov dword [ebp - 0x18], eax
mov eax, ecx
shl eax, 8
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x28]
or eax, ecx
shl eax, 8
or eax, dword [ebp - 0x18]
cmp eax, dword [ebp + 0x10]
je 0x100bb663
add ecx, dword [ebp - 0x18]
mov eax, 0xaaaaaaab
add ecx, dword [ebp - 0x24]
mul ecx
mov eax, 0x40
mov dword [ebp - 0x28], 0
shr edx, 3
cmp edx, 0x40
cmovg edx, eax
mov eax, dword [ebp + 0xc]
movzx eax, al
add eax, 0xffffffe0
add edx, eax
mov eax, 0xff
cmp edx, 0xff
mov ecx, edx
cmovg ecx, eax
xor ebx, ebx
test ecx, ecx
movzx eax, cl
mov ecx, edx
cmovle eax, ebx
cmp edx, 0xff
mov bl, al
mov eax, 0xff
cmovg ecx, eax
test ecx, ecx
movzx eax, cl
cmovle eax, dword [ebp - 0x28]
cmp edx, 0xff
mov byte [ebp - 0x14], al
mov eax, 0xff
cmovg edx, eax
xor ecx, ecx
test edx, edx
movzx eax, dl
cmovle eax, ecx
mov dl, al
mov eax, dword [ebp - 0x14]
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, esi
sub dword [ebp - 0x1c], 1
jne 0x100bb5a0
jmp 0x100bb8d4
cmp ax, 8
ja 0x100bb8d4
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov esi, eax
lea eax, [ebp - 0x64]
push eax
push 0x18
push esi
mov dword [ebp - 0xc], esi
call dword [sym.imp.GDI32.dll_GetObjectW]
movzx eax, word [ebp - 0x52]
push 0
push 0
shr eax, 3
push esi
mov dword [ebp - 0x30], eax
call edi
mov esi, eax
push esi
mov dword [ebp - 0x24], esi
call fcn.10085e51
add esp, 4
mov dword [ebp - 0x28], eax
push eax
push esi
push dword [ebp - 0xc]
call edi
mov edx, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
test edx, edx
jle 0x100bb8c2
mov eax, dword [ebp - 0x48]
nop dword [eax]
xor ebx, ebx
test eax, eax
jle 0x100bb8b0
mov esi, ecx
imul esi, dword [ebp - 8]
shl esi, 3
mov dword [ebp - 0x34], esi
movzx edi, word [ebp - 0x3a]
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 0x100bb74b
dec ecx
or ecx, 0xfffffff8
inc ecx
mov edx, 8
sub edx, ecx
and edx, 0x80000007
jns 0x100bb75f
dec edx
or edx, 0xfffffff8
inc edx
mov eax, edi
imul eax, esi
mov eax, eax
test eax, eax
jns 0x100bb76d
add eax, 7
sar eax, 3
mov ecx, dword [ebp - 0x10]
movzx esi, byte [eax + ecx]
mov ecx, edx
shr esi, cl
mov al, 1
mov ecx, edi
shl al, cl
dec al
movzx eax, al
and esi, eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax + esi*4 + 0x28]
mov eax, edx
shr eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, edx
shr eax, 8
mov dword [ebp - 0x20], eax
movzx ecx, dl
shl ecx, 8
movzx eax, al
or ecx, eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x1c]
shl ecx, 8
movzx eax, al
or ecx, eax
cmp ecx, dword [ebp + 0x10]
je 0x100bb84e
mov eax, dword [ebp - 0x1c]
mov edi, 0xff
movzx ecx, al
mov eax, dword [ebp - 0x20]
movzx eax, al
add ecx, eax
movzx eax, dl
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, 0x40
shr edx, 3
cmp edx, 0x40
cmovg edx, eax
mov eax, dword [ebp + 0xc]
movzx eax, al
add eax, 0xffffffe0
add eax, edx
cmp eax, 0xff
cmovg eax, edi
xor esi, esi
test eax, eax
movzx ecx, al
mov eax, dword [ebp + 0xc]
cmovle ecx, esi
movzx eax, ax
shr eax, 8
add eax, 0xffffffe0
mov dword [ebp - 0x1c], ecx
add eax, edx
cmp eax, edi
cmovg eax, edi
test eax, eax
movzx ecx, al
mov eax, dword [ebp + 0xc]
cmovle ecx, esi
shr eax, 0x10
movzx eax, al
add eax, 0xffffffe0
mov dword [ebp - 0x20], ecx
add eax, edx
cmp eax, edi
cmovg eax, edi
xor edx, edx
test eax, eax
movzx ecx, al
cmovle ecx, edx
mov dword [ebp - 0x14], ecx
jmp 0x100bb860
mov al, byte [ebp - 0x12]
mov dword [ebp - 0x1c], eax
mov al, byte [ebp - 0x13]
mov dword [ebp - 0x20], eax
mov al, byte [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x58]
imul eax, dword [ebp - 0x18]
movzx ecx, word [ebp - 0x52]
shl eax, 3
cdq
idiv ecx
mov ecx, dword [ebp - 0x28]
add eax, ebx
imul eax, dword [ebp - 0x30]
add ecx, eax
je 0x100bb89b
add eax, 3
cmp eax, dword [ebp - 0x24]
jae 0x100bb89b
mov eax, dword [ebp - 0x1c]
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x20]
mov byte [ecx + 1], al
mov eax, dword [ebp - 0x14]
mov byte [ecx + 3], 0xff
mov byte [ecx], al
mov eax, dword [ebp - 0x48]
inc ebx
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x34]
cmp ebx, eax
jl 0x100bb726
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, edx
jl 0x100bb710
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x10]
push ebx
call fcn.100854ab
mov eax, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], esi
push dword [ebp - 0x2c]
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 0x100bb91d
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [ebp + 8]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, eax
push ebx
call edi
push dword [ebp - 0x44]
mov esi, eax
push dword [ebp - 0x48]
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 - 0x10]
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 esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc