Function at 0x44b490
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov al, byte [0x46b614]
sub esp, 0x88
test al, 1
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
jne 0x44b4ca
or al, 1
push str.AlphaBlend
push str.msimg32.dll
mov byte [0x46b614], al
call edi
push eax
call esi
mov dword [0x46b620], eax
mov eax, dword [0x46b620]
test eax, eax
jne 0x44b4dd
mov dword [0x46b620], 0x44a650
mov al, byte [0x46b614]
test al, 2
jne 0x44b501
or al, 2
push str.GradientFill
push str.msimg32.dll
mov byte [0x46b614], al
call edi
push eax
call esi
mov dword [0x46b618], eax
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov eax, edx
mov ecx, ebx
shr eax, 0x18
shr ecx, 0x18
add eax, ecx
shr eax, 1
test al, al
mov byte [esp + 0x17], al
je 0x44b976
mov esi, dword [esp + 0xa0]
mov ebp, dword [esi + 0xc]
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
mov ecx, dword [esi]
sub ebp, eax
mov eax, esi
sub edi, ecx
mov dword [esp + 0x74], ebp
mov ecx, dword [eax]
mov dword [esp + 0x80], edi
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov eax, dword [eax + 0xc]
cmp byte [esp + 0x17], 0xff
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
jae 0x44b5cb
push eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esp + 0x9c]
push ebp
push edi
push ecx
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edx, dword [esp + 0x18]
push eax
push edx
mov dword [esp + 0x54], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x48], eax
xor ecx, ecx
cmp dword [0x46b618], ecx
je 0x44b68e
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x54], eax
mov eax, edx
mov dword [esp + 0x58], ecx
xor ecx, ecx
shr eax, 0x10
mov ch, al
xor eax, eax
mov word [esp + 0x5c], cx
mov al, dh
xor ecx, ecx
mov dword [esp + 0x74], 0
mov ch, al
xor eax, eax
mov word [esp + 0x5e], cx
mov ecx, dword [esp + 0x3c]
mov ah, dl
mov edx, dword [esp + 0x40]
mov dword [esp + 0x64], ecx
mov ecx, ebx
mov dword [esp + 0x68], edx
xor edx, edx
shr ecx, 0x10
mov dh, cl
xor ecx, ecx
mov word [esp + 0x6c], dx
mov word [esp + 0x60], ax
mov cl, bh
xor edx, edx
mov eax, 0xff00
mov dh, cl
mov word [esp + 0x62], ax
mov word [esp + 0x72], ax
mov al, byte [esp + 0xac]
mov word [esp + 0x6e], dx
xor ecx, ecx
xor edx, edx
test al, al
setne dl
mov ch, bl
mov ebx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x78]
mov word [esp + 0x74], cx
push 1
push eax
lea ecx, [esp + 0x60]
push 2
push ecx
push ebx
mov dword [esp + 0x90], 1
call dword [0x46b618]
jmp 0x44b91a
mov eax, dword [esp + 0xb0]
mov esi, 1
cmp eax, 0x40
jl 0x44b6a6
mov esi, 6
jmp 0x44b6d4
cmp eax, 0x20
jl 0x44b6b2
mov esi, 5
jmp 0x44b6d4
cmp eax, 0x10
jl 0x44b6be
mov esi, 4
jmp 0x44b6d4
cmp eax, 8
jl 0x44b6ca
mov esi, 3
jmp 0x44b6d4
cmp eax, 4
jl 0x44b6d4
mov esi, 2
mov eax, 1
mov ecx, esi
shl eax, cl
mov dword [esp + 0x10], 0
test eax, eax
mov dword [esp + 0x50], eax
jle 0x44b90f
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
mov ecx, edx
and ecx, 0xff
mov al, bh
mov dword [esp + 0x8c], ecx
mov edi, ebx
xor ecx, ecx
and edi, 0xff
shr ebx, 0x10
mov cl, dh
mov ebp, ebx
and ecx, 0xff
and ebp, 0xff
mov dword [esp + 0x84], ecx
mov ecx, ebp
neg ecx
mov dword [esp + 0x88], ecx
mov ecx, edi
neg ecx
and eax, 0xff
mov dword [esp + 0x7c], ecx
mov ecx, eax
mov ebx, edx
neg ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x50]
shr ebx, 0x10
imul ebp, ecx
and ebx, 0xff
imul edi, ecx
imul eax, ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add eax, edx
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, esi
sar eax, cl
mov ecx, dword [esp + 0x28]
mov dl, al
mov eax, dword [esp + 0x30]
add eax, ecx
mov ecx, esi
sar eax, cl
shl edx, 8
and eax, 0xff
or edx, eax
push edx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0xac]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xa0]
test al, al
mov dword [esp + 0x58], edx
je 0x44b840
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov edi, dword [esp + 0x10]
mov ebp, eax
sub ebp, edx
mov ecx, esi
mov edx, ebp
imul edx, edi
sar edx, cl
mov ecx, edx
mov edx, eax
sub edx, ecx
inc edi
mov ecx, edi
mov dword [esp + 0x60], edx
imul ecx, ebp
mov ebp, ecx
mov ecx, esi
sar ebp, cl
sub eax, ebp
sub edx, eax
mov dword [esp + 0x58], eax
test edx, edx
jle 0x44b88d
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x54]
push edx
push eax
jmp 0x44b886
mov edx, dword [ecx + 8]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov eax, edx
sub eax, edi
lea edi, [ecx + 1]
mov ecx, esi
mov ebp, edi
imul ebp, eax
imul eax, dword [esp + 0x10]
sar ebp, cl
mov ecx, ebp
mov ebp, edx
sub ebp, ecx
mov ecx, esi
sar eax, cl
mov dword [esp + 0x54], ebp
sub edx, eax
mov dword [esp + 0x5c], edx
sub edx, ebp
test edx, edx
jle 0x44b88d
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x44]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
add edx, ecx
mov ecx, dword [esp + 0x88]
add ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x94]
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
add edx, ecx
mov ecx, dword [esp + 0x30]
add ebp, eax
mov eax, dword [esp + 0x50]
add ecx, ebx
cmp edi, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], ecx
jl 0x44b77d
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x18]
mov al, byte [esp + 0x17]
cmp al, 0xff
jae 0x44b976
mov byte [esp + 0x10], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x12], al
mov byte [esp + 0x13], 1
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
mov edx, dword [esp + 0xa0]
push ebp
push edi
push 0
push 0
push ebx
push ebp
push edi
push eax
push ecx
push edx
call dword [0x46b620]
mov eax, dword [esp + 0x48]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x4c]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret