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

Disassembly:
sub esp, 0x84
push ebx
push ebp
push esi
lea eax, [esp + 0x78]
push edi
lea ecx, [esp + 0x64]
xor esi, esi
push eax
push ecx
xor edi, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x58], esi
call fcn.100d3780
call fcn.100a0c60
mov ebx, dword [esp + 0x98]
mov ebp, eax
cmp ebx, esi
mov dword [esp + 0x5c], ebp
jne 0x10015d81
push esi
push esi
push 0xfffff40c
push 0xa1f
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov edi, eax
jmp 0x10015dda
cmp dword [esp + 0x9c], esi
je 0x10015dda
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
mov esi, eax
mov edx, dword [esp + 0x9c]
push edx
call sym.GEAR32PO.OCX_GPb_width_get
cmp esi, eax
jg 0x10015dbc
push ebx
call sym.GEAR32PO.OCX_GPb_height_get
mov esi, eax
mov eax, dword [esp + 0x9c]
push eax
call sym.GEAR32PO.OCX_GPb_height_get
cmp esi, eax
jle 0x10015dd8
xor esi, esi
push esi
push esi
push 0xfffff402
push 0xa27
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov edi, eax
jmp 0x10015dda
xor esi, esi
mov ecx, dword [esp + 0xa0]
cmp edi, esi
jne 0x10015e9e
mov eax, ecx
sub eax, esi
je 0x10015e59
dec eax
je 0x10015e0f
push esi
push ecx
push 0xfffffda8
push 0xa45
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov edi, eax
jmp 0x10015e9e
lea ecx, [esp + 0x10]
push ecx
push esi
push 8
push ebx
call sym.GEAR32PO.OCX_GPb_height_get
push eax
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
push eax
call fcn.100832b0
mov edi, eax
cmp edi, esi
jne 0x10015f3b
mov edx, dword [esp + 0x10]
push edx
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
xor ecx, ecx
add eax, 2
mov byte [eax - 2], cl
mov byte [eax - 1], cl
mov byte [eax], cl
inc ecx
add eax, 4
cmp ecx, 0x100
jl 0x10015e43
jmp 0x10015e9e
lea eax, [esp + 0x10]
push eax
push esi
push 1
push ebx
call sym.GEAR32PO.OCX_GPb_height_get
push eax
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
push eax
call fcn.100832b0
mov edi, eax
cmp edi, esi
jne 0x10015f3b
mov ecx, dword [esp + 0x10]
push ecx
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov cl, 0xff
mov byte [eax], 0
mov byte [eax + 1], 0
mov byte [eax + 2], 0
mov byte [eax + 4], cl
mov byte [eax + 5], cl
mov byte [eax + 6], cl
cmp edi, esi
jne 0x10015f3b
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
mov esi, eax
push ebx
mov dword [esp + 0x58], esi
call sym.GEAR32PO.OCX_GPb_height_get
lea esi, [esi + esi*2]
push esi
push ebp
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x10015ee2
push esi
push ebp
push 0xfffffc18
push 0xa51
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov edi, eax
push esi
push ebp
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x20], eax
jne 0x10015f09
push esi
push ebp
push 0xfffffc18
push 0xa57
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add edi, eax
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x10015f3b
push esi
push ebp
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x18], eax
jne 0x10015f3b
push esi
push ebp
push 0xfffffc18
push 0xa5f
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add edi, eax
test edi, edi
jne 0x100163f6
test ebx, ebx
je 0x10015f6b
push ebx
call sym.GEAR32PO.OCX_GPb_DIB_pointer_get
push eax
call fcn.10032b90
cmp eax, 0x1f4
jne 0x10015f6b
push ebx
call fcn.100d05a0
mov ebp, 1
mov dword [esp + 0x68], ebp
jmp 0x10015f70
mov ebp, 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10015f99
push eax
call sym.GEAR32PO.OCX_GPb_DIB_pointer_get
push eax
call fcn.10032b90
cmp eax, 0x1f4
jne 0x10015f99
mov edx, dword [esp + 0x10]
push edx
call fcn.100d05a0
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x10015fc1
push esi
call sym.GEAR32PO.OCX_GPb_DIB_pointer_get
push eax
call fcn.10032b90
cmp eax, 0x1f4
jne 0x10015fc1
push esi
call fcn.100d05a0
mov dword [esp + 0x50], ebp
push ebx
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
test esi, esi
mov dword [esp + 0x58], eax
je 0x10015fd9
push esi
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov dword [esp + 0x38], eax
push ebx
mov dword [esp + 0x40], 0
call sym.GEAR32PO.OCX_GPb_height_get
test eax, eax
jle 0x1001639d
mov eax, dword [esp + 0x20]
push 2
push eax
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
push eax
mov esi, dword [esp + 0x48]
push esi
push 0
push ebx
call fcn.10005b20
add edi, eax
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x14], edi
test ebp, ebp
je 0x10016038
mov ecx, dword [esp + 0x18]
push 2
push ecx
push ebx
call sym.GEAR32PO.OCX_GPb_width_get
push eax
push esi
push 0
push ebp
call fcn.10005b20
add edi, eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1001607a
push ebx
call sym.GEAR32PO.OCX_GPb_height_get
push eax
push esi
mov edx, dword [esp + 0x84]
push edx
call dword [esp + 0x70]
test eax, eax
jne 0x1001607a
push ebx
call sym.GEAR32PO.OCX_GPb_height_get
push eax
push esi
push 0xfffff7bf
push 0xa91
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add edi, eax
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1001639d
push ebx
mov dword [esp + 0x50], edi
call sym.GEAR32PO.OCX_GPb_width_get
test eax, eax
jle 0x10016368
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x34], ebp
lea ecx, [eax + 2]
mov dword [esp + 0x24], ecx
mov ecx, ebp
sub ecx, eax
sub eax, ebp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
sub eax, ebp
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp ecx, eax
je 0x1001618f
mov esi, dword [esp + 0x9c]
push esi
call sym.GEAR32PO.OCX_GPb_bits_per_pixel_get
dec eax
cmp eax, 0x17
ja case.0x100160f2.5
xor edx, edx
mov dl, byte [eax + 0x10016460]
jmp dword [edx*4 + 0x1001644c]
mov ecx, dword [esp + 0x6c]
xor eax, eax
xor edx, edx
mov al, byte [ecx + ebp]
mov ecx, dword [esp + 0x38]
mov dl, byte [ecx + eax*4]
mov eax, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
jmp 0x100161a2
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x38]
xor edx, edx
mov dl, byte [eax + ebp]
lea eax, [ecx + edx*4]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [eax + 2]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
jmp 0x100161a2
mov eax, dword [esp + 0x24]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax - 2]
mov dl, byte [eax - 1]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov cl, byte [eax]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
jmp 0x100161a2
push 0
push esi
call sym.GEAR32PO.OCX_GPb_bits_per_pixel_get
push eax
push 0xfffff31c
push 0xaab
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov edi, eax
mov dword [esp + 0x14], edi
jmp 0x100161a2
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
push ebx
call sym.GEAR32PO.OCX_GPb_bits_per_pixel_get
dec eax
cmp eax, 0x17
ja case.0x100161ba.5
xor edx, edx
mov dl, byte [eax + 0x1001648c]
jmp dword [edx*4 + 0x10016478]
mov edx, dword [esp + 0x58]
xor eax, eax
mov al, byte [ebp]
xor ecx, ecx
mov cl, byte [edx + eax*4]
mov eax, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
jmp 0x10016256
mov ecx, dword [esp + 0x58]
xor eax, eax
mov al, byte [ebp]
xor edx, edx
mov dl, byte [ecx + eax*4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x40], edx
xor ecx, ecx
mov cl, byte [eax + 1]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
jmp 0x10016256
mov eax, dword [esp + 0x34]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x48], eax
jmp 0x10016256
push 0
push esi
call sym.GEAR32PO.OCX_GPb_bits_per_pixel_get
push eax
push 0xfffff31c
push 0xac3
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add edi, eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0xa0]
sub eax, 0
je 0x100162ba
dec eax
jne 0x10016307
xor ecx, ecx
mov edx, dword [esp + ecx + 0x40]
mov eax, dword [esp + ecx + 0x28]
cmp edx, eax
mov esi, edx
jg 0x1001627b
mov esi, eax
test esi, esi
mov dword [esp + ecx + 0x88], esi
je 0x100162a4
mov edi, edx
sub edi, eax
jns 0x10016292
sub eax, edx
mov edx, eax
jmp 0x10016294
mov edx, edi
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv esi
mov dword [esp + ecx + 0x70], eax
jmp 0x100162ac
mov dword [esp + ecx + 0x70], 0
add ecx, 4
cmp ecx, 0xc
jl 0x1001626b
mov edi, dword [esp + 0x14]
jmp 0x10016307
xor ecx, ecx
mov edx, dword [esp + ecx + 0x40]
mov eax, dword [esp + ecx + 0x28]
cmp edx, eax
mov esi, edx
jg 0x100162cc
mov esi, eax
test esi, esi
mov dword [esp + ecx + 0x88], esi
je 0x100162f7
mov edi, edx
sub edi, eax
jns 0x100162e1
sub eax, edx
mov edi, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, edi
mov edi, dword [esp + 0x14]
cdq
idiv esi
mov dword [esp + ecx + 0x70], eax
jmp 0x100162ff
mov dword [esp + ecx + 0x70], 0
add ecx, 4
cmp ecx, 0xc
jl 0x100162bc
test edi, edi
jne 0x1001639d
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
add ecx, eax
add ecx, edx
mov eax, 0x55555556
imul ecx
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x4c]
mov eax, edx
push ebx
shr eax, 0x1f
add edx, eax
mov eax, 3
mov byte [ecx + ebp], dl
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
inc esi
add edx, eax
add ecx, eax
mov dword [esp + 0x50], esi
inc ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], ecx
call sym.GEAR32PO.OCX_GPb_width_get
cmp esi, eax
jl 0x100160c5
test edi, edi
jne 0x1001639d
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
push 2
push edx
push eax
push esi
push edi
push ecx
call fcn.10005df0
inc esi
push ebx
mov edi, eax
mov dword [esp + 0x40], esi
call sym.GEAR32PO.OCX_GPb_height_get
cmp esi, eax
jl 0x10015fef
test ebx, ebx
je 0x100163af
mov eax, dword [esp + 0x68]
test eax, eax
je 0x100163af
push ebx
call fcn.100d0780
mov eax, dword [esp + 0x10]
test eax, eax
je 0x100163c5
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x100163c5
push eax
call fcn.100d0780
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x100163e5
mov eax, dword [esp + 0x50]
test eax, eax
je 0x100163e5
mov edx, dword [esp + 0x9c]
push edx
call fcn.100d0780
test edi, edi
jne 0x100163f6
mov eax, dword [esp + 0x10]
push eax
push ebx
call fcn.10081d40
jmp 0x10016400
mov ecx, dword [esp + 0x10]
push ecx
call fcn.100828e0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10016415
mov esi, dword [esp + 0x5c]
push eax
push esi
call fcn.100a1010
jmp 0x10016419
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10016428
push eax
push esi
call fcn.100a1010
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10016437
push eax
push esi
call fcn.100a1010
call fcn.10046b40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret 0xc