Function at 0x40e090
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x432528
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x74]
push edi
call fcn.0040e030
push edi
mov ebx, eax
call fcn.0040e070
mov ebp, dword [edi]
mov si, ax
and esi, 0xffff
xor eax, eax
add esi, ebp
add esp, 8
add esi, edi
cmp bx, ax
mov dword [esp + 0x28], esi
jbe 0x40e0e9
cmp bx, 0x100
ja 0x40e0e9
mov ebp, 1
jmp 0x40e0eb
xor ebp, ebp
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
call fcn.0042c5be
test ebp, ebp
mov dword [esp + 0x6c], 0
je 0x40e38c
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x40e134
push 8
call fcn.00425c9f
add esp, 4
test eax, eax
je 0x40e132
mov dword [eax + 4], 0
mov dword [eax], 0x4352e8
jmp 0x40e134
xor eax, eax
test eax, eax
mov dword [esp + 0x10], eax
je 0x40e5ae
cmp bx, 0x100
ja 0x40e5ae
mov esi, ebx
and esi, 0xffff
mov dword [esp + 0x40], esi
lea eax, [esi*4 + 8]
push eax
call fcn.00425c9f
mov ebp, eax
add esp, 4
mov dword [esp + 0x20], ebp
mov word [ebp], 0x300
mov word [ebp + 2], bx
mov eax, dword [0x443eb8]
test eax, eax
je 0x40e328
mov eax, dword [0x43ffc0]
xor ecx, ecx
mov ebp, eax
mov cl, ah
shr eax, 0x10
and eax, 0xff
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [0x43ffbc]
mov ebx, eax
mov dl, ah
shr eax, 0x10
and eax, 0xff
and ecx, 0xff
and edx, 0xff
mov dword [esp + 0x14], ecx
shr eax, 2
shr edx, 2
mov dword [esp + 0x3c], eax
mov eax, dword [0x43ffc4]
xor ecx, ecx
mov dword [esp + 0x38], edx
mov edx, eax
mov cl, ah
shr eax, 0x10
and edx, 0xff
and ecx, 0xff
and eax, 0xff
and ebx, 0xff
shr edx, 1
shr ecx, 1
shr eax, 1
and ebp, 0xff
add edx, 0x80
shr ebx, 2
add ecx, 0x80
add eax, 0x80
test esi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
jle 0x40e324
add edi, 0x29
mov dword [esp + 0x1c], esi
jmp 0x40e23a
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
xor ecx, ecx
xor eax, eax
mov cl, byte [edi - 1]
mov al, byte [edi]
add ecx, eax
mov eax, 0xff
shr ecx, 1
sub eax, ecx
shr eax, 2
add ecx, eax
cmp ecx, 0xcc
jb 0x40e2b5
sub ecx, 0xcc
mov esi, 0x33
sub esi, ecx
mov eax, ecx
mov ebx, esi
imul eax, edx
imul ebx, ebp
add ebx, eax
mov eax, 0xa0a0a0a1
mul ebx
shr edx, 5
mov byte [edi + 1], dl
mov edx, esi
imul edx, dword [esp + 0x14]
imul esi, dword [esp + 0x18]
mov eax, ecx
imul ecx, dword [esp + 0x34]
imul eax, dword [esp + 0x30]
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
add esi, ecx
mov eax, 0xa0a0a0a1
mov byte [edi], dl
mul esi
shr edx, 5
jmp 0x40e307
mov esi, 0xcc
mov eax, ecx
sub esi, ecx
imul eax, ebp
mov edx, esi
imul edx, ebx
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
shr edx, 7
mov byte [edi + 1], dl
mov edx, esi
imul edx, dword [esp + 0x38]
imul esi, dword [esp + 0x3c]
mov eax, ecx
imul ecx, dword [esp + 0x18]
imul eax, dword [esp + 0x14]
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
shr edx, 7
add esi, ecx
mov eax, 0xa0a0a0a1
mov byte [edi], dl
mul esi
shr edx, 7
mov eax, dword [esp + 0x1c]
mov byte [edi - 1], dl
add edi, 4
dec eax
mov dword [esp + 0x1c], eax
jne 0x40e232
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
test esi, esi
jle 0x40e350
lea eax, [ebp + 5]
lea ecx, [edi + 0x29]
mov dl, byte [ecx + 1]
add ecx, 4
mov byte [eax - 1], dl
mov dl, byte [ecx - 4]
mov byte [eax], dl
mov dl, byte [ecx - 5]
mov byte [eax + 1], dl
mov byte [eax + 2], 0
add eax, 4
dec esi
jne 0x40e332
push ebp
call dword [sym.imp.GDI32.dll_CreatePalette]
mov esi, dword [esp + 0x10]
push eax
mov ecx, esi
call fcn.0042c7b2
push ebp
call fcn.00425cc8
add esp, 4
lea ecx, [esp + 0x50]
push 0
push esi
call fcn.0042c232
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x54]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
jmp 0x40e5aa
mov eax, dword [0x443eb8]
test eax, eax
je 0x40e5ae
mov eax, dword [0x43ffc0]
xor ecx, ecx
mov ebp, eax
mov cl, ah
shr eax, 0x10
and eax, 0xff
and ecx, 0xff
mov ebx, eax
mov eax, dword [0x43ffbc]
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, eax
mov dl, ah
shr eax, 0x10
and eax, 0xff
and ecx, 0xff
shr eax, 2
shr ecx, 2
mov dword [esp + 0x34], eax
mov eax, dword [0x43ffc4]
mov dword [esp + 0x44], ecx
mov ecx, eax
and ecx, 0xff
and edx, 0xff
shr ecx, 1
add ecx, 0x80
and ebp, 0xff
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, ah
mov dword [esp + 0x18], ebx
shr eax, 0x10
and eax, 0xff
and ecx, 0xff
shr eax, 1
add eax, 0x80
mov dword [esp + 0x14], 0
mov dword [esp + 0x40], eax
mov eax, dword [edi + 4]
shr edx, 2
mov dword [esp + 0x30], edx
lea edx, [eax + eax*2 + 3]
shr ecx, 1
add ecx, 0x80
and edx, 0xfffffffc
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x48], edx
mov edx, dword [edi + 8]
add ecx, edi
test edx, edx
jle 0x40e5ae
mov dword [esp + 0x24], ecx
test eax, eax
mov esi, ecx
mov dword [esp + 0x1c], 0
jle 0x40e588
xor ecx, ecx
xor edx, edx
mov cl, byte [esi]
mov dl, byte [esi + 2]
xor eax, eax
add edx, ecx
mov al, byte [esi + 1]
add edx, eax
test edx, edx
je 0x40e56d
cmp edx, 0x2fd
je 0x40e56d
add ecx, eax
mov eax, 0xff
sub eax, ecx
shr eax, 2
add ecx, eax
cmp ecx, 0xcc
jb 0x40e511
sub ecx, 0xcc
mov edi, 0x33
sub edi, ecx
mov edx, ecx
imul edx, dword [esp + 0x40]
mov eax, edi
imul eax, ebx
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
mov byte [esi], dl
mov edx, ecx
imul edx, dword [esp + 0x3c]
imul ecx, dword [esp + 0x38]
mov eax, edi
imul edi, ebp
imul eax, dword [esp + 0x20]
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
inc esi
add edi, ecx
shr edx, 5
mov eax, 0xa0a0a0a1
mov byte [esi], dl
mul edi
mov edi, dword [esp + 0x74]
inc esi
shr edx, 5
mov byte [esi], dl
inc esi
jmp 0x40e570
mov edi, 0xcc
mov edx, ecx
sub edi, ecx
imul edx, ebx
mov eax, edi
imul eax, dword [esp + 0x34]
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
shr edx, 7
mov byte [esi], dl
mov edx, ecx
imul edx, dword [esp + 0x20]
imul ecx, ebp
mov eax, edi
imul edi, dword [esp + 0x44]
imul eax, dword [esp + 0x30]
add edx, eax
mov eax, 0xa0a0a0a1
mul edx
inc esi
add ecx, edi
shr edx, 7
mov eax, 0xa0a0a0a1
mov byte [esi], dl
mul ecx
mov edi, dword [esp + 0x74]
inc esi
shr edx, 7
mov byte [esi], dl
inc esi
jmp 0x40e570
add esi, 3
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x18]
inc ecx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x40e473
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
add ecx, esi
mov esi, dword [edi + 8]
inc edx
cmp edx, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], ecx
jl 0x40e461
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
push 0
push edi
push esi
push 4
push edi
push ecx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov esi, eax
test esi, esi
je 0x40e5eb
mov ebx, dword [esp + 0x78]
push esi
mov ecx, ebx
call fcn.0042c7b2
mov eax, dword [edi + 8]
mov edi, dword [edi + 4]
lea edx, [esp + 0x48]
push edx
push eax
mov eax, dword [ebx + 4]
push edi
push eax
call dword [sym.imp.GDI32.dll_SetBitmapDimensionEx]
jmp 0x40e5f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40e605
push 0
push eax
lea ecx, [esp + 0x58]
call fcn.0042c232
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x40e61c
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x40e61c
mov edx, dword [ecx]
push 1
call dword [edx + 4]
xor eax, eax
lea ecx, [esp + 0x50]
test esi, esi
setne al
mov esi, eax
mov dword [esp + 0x6c], 0xffffffff
call fcn.0042c630
mov ecx, dword [esp + 0x64]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x60
ret