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

Disassembly:
sub esp, 0x74
push ebx
push ebp
push esi
lea eax, [esp + 0x58]
push edi
lea ecx, [esp + 0x58]
xor esi, esi
push eax
push ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
xor ebx, ebx
mov dword [esp + 0x40], esi
xor ebp, ebp
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
call fcn.100d3780
mov eax, dword [esp + 0x9c]
mov edi, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [esp + 0x88]
sub edi, edx
inc edi
test eax, eax
mov dword [esp + 0x20], edi
je 0x10015291
mov edx, dword [esp + 0xa4]
lea eax, [edi + edi*2]
push eax
push edx
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x30], eax
jne 0x10015291
lea eax, [edi + edi*2]
push eax
mov eax, dword [esp + 0xa8]
push eax
push 0xfffffc18
push 0x86c
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
mov esi, eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x100152d7
mov ecx, dword [esp + 0xa4]
lea eax, [edi + edi*2]
push eax
push ecx
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x34], eax
jne 0x100152d7
mov edx, dword [esp + 0xa4]
lea eax, [edi + edi*2]
push eax
push edx
push 0xfffffc18
push 0x875
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add esi, eax
mov eax, dword [esp + 0x98]
test eax, eax
je 0x1001531b
lea eax, [edi + edi*2]
push eax
mov eax, dword [esp + 0xa8]
push eax
call fcn.100a0c80
mov ebx, eax
test ebx, ebx
jne 0x1001531b
mov ecx, dword [esp + 0xa4]
lea eax, [edi + edi*2]
push eax
push ecx
push 0xfffffc18
push 0x87e
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add esi, eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x10015361
mov edx, dword [esp + 0xa4]
lea eax, [edi + edi*2]
push eax
push edx
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x38], eax
jne 0x10015361
lea eax, [edi + edi*2]
push eax
mov eax, dword [esp + 0xa8]
push eax
push 0xfffffc18
push 0x887
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add esi, eax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100153a4
mov ecx, dword [esp + 0xa4]
lea edi, [edi + edi*2]
push edi
push ecx
call fcn.100a0c80
mov ebp, eax
test ebp, ebp
jne 0x100153a4
push edi
mov edi, dword [esp + 0xa8]
push edi
push 0xfffffc18
push 0x890
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add esi, eax
jmp 0x100153ab
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x100153c0
push eax
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x98]
test eax, eax
je 0x100153d5
push eax
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100153ea
push eax
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x100153ff
push eax
call sym.GEAR32PO.OCX_GPb_palette_pointer_get
mov dword [esp + 0x40], eax
test esi, esi
jne 0x10015825
mov edx, dword [esp + 0x9c]
mov eax, edx
mov edi, dword [edx + 4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x54], edi
cmp edi, ecx
jg 0x1001581e
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x20]
push 2
push ecx
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x94]
push edi
push ecx
push edx
call fcn.10005b20
add esi, eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x10015472
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
push 2
push ecx
mov ecx, dword [esp + 0xa4]
push edx
push edi
mov edx, dword [ecx]
push edx
push eax
call fcn.10005b20
add esi, eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x1001549c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
push 2
push ecx
mov ecx, dword [esp + 0xa4]
push edx
push edi
mov edx, dword [ecx]
push edx
push eax
call fcn.10005b20
add esi, eax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100154c2
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x9c]
push 2
push ebp
push ecx
mov ecx, dword [edx]
push edi
push ecx
push eax
call fcn.10005b20
add esi, eax
mov eax, dword [esp + 0x98]
test eax, eax
je 0x100154e8
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
push 2
push ebx
push edx
mov edx, dword [ecx]
push edi
push edx
push eax
call fcn.10005b20
add esi, eax
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x10015533
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 4]
mov eax, dword [esp + 0x5c]
inc edx
push edx
push edi
push eax
call ecx
test eax, eax
jne 0x10015533
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
sub ecx, edx
inc ecx
push ecx
push edi
push 0xfffff7bf
push 0x8c1
push str.C:_accusoftgear_sourceIMG_PROC_blends.c
call fcn.10046940
add esi, eax
test esi, esi
jne 0x1001581e
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], esi
test eax, eax
jle 0x100157df
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov edi, ebp
mov dword [esp + 0x2c], ebx
lea ecx, [eax + 2]
lea edx, [esi + 1]
mov dword [esp + 0x24], ecx
mov ecx, ebp
sub ecx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], ecx
mov ecx, esi
sub ecx, eax
mov edx, esi
mov dword [esp + 0x70], ecx
mov ecx, ebx
sub ecx, eax
sub edx, ebp
mov dword [esp + 0x78], ecx
mov ecx, ebp
sub ecx, esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x68], ecx
mov ecx, ebx
sub ecx, esi
mov edx, ebx
mov dword [esp + 0x74], ecx
mov ecx, ebp
sub ecx, ebx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x30]
sub ecx, ebx
mov dword [esp + 0x80], ecx
mov ecx, eax
sub ecx, ebp
sub edx, ebp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x7c], edx
jmp 0x100155ca
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
test eax, eax
je 0x10015618
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x100155f0
mov al, byte [edx - 2]
mov byte [esp + 0x1c], al
mov cl, byte [edx - 1]
mov byte [esp + 0x1d], cl
mov al, byte [edx]
mov byte [esp + 0x1e], al
jmp 0x1001562d
xor edx, edx
mov dl, byte [ecx + edi]
mov dl, byte [eax + edx*4]
mov byte [esp + 0x1c], dl
xor edx, edx
mov dl, byte [ecx + edi]
mov dl, byte [eax + edx*4 + 1]
mov byte [esp + 0x1d], dl
xor edx, edx
mov dl, byte [ecx + edi]
mov al, byte [eax + edx*4 + 2]
mov byte [esp + 0x1e], al
jmp 0x10015629
push 3
lea ecx, [esp + 0x20]
push 0xff
push ecx
call fcn.100a9900
mov edx, dword [esp + 0x24]
test ebp, ebp
je 0x10015689
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x10015664
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x68]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x28]
mov cl, byte [ecx + eax]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x19], cl
mov cl, byte [eax + edx]
mov byte [esp + 0x1a], cl
jmp 0x1001569b
xor ecx, ecx
mov cl, byte [edi]
mov cl, byte [eax + ecx*4]
mov byte [esp + 0x18], cl
xor ecx, ecx
mov cl, byte [edi]
mov cl, byte [eax + ecx*4 + 1]
mov byte [esp + 0x19], cl
xor ecx, ecx
mov cl, byte [edi]
mov al, byte [eax + ecx*4 + 2]
mov byte [esp + 0x1a], al
jmp 0x1001569b
push 3
lea ecx, [esp + 0x1c]
push 0
push ecx
call fcn.100a9900
mov edx, dword [esp + 0x24]
test esi, esi
je 0x100156f1
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x100156c5
mov esi, dword [esp + 0x28]
mov al, byte [esi - 1]
mov byte [esp + 0x14], al
mov cl, byte [esi]
mov eax, dword [esp + 0x70]
mov byte [esp + 0x15], cl
mov cl, byte [eax + edx]
mov byte [esp + 0x16], cl
jmp 0x10015700
mov esi, dword [esp + 0x3c]
xor ecx, ecx
mov cl, byte [esi + edi]
mov cl, byte [eax + ecx*4]
mov byte [esp + 0x14], cl
xor ecx, ecx
mov cl, byte [esi + edi]
mov cl, byte [eax + ecx*4 + 1]
mov byte [esp + 0x15], cl
xor ecx, ecx
mov cl, byte [esi + edi]
mov al, byte [eax + ecx*4 + 2]
mov byte [esp + 0x16], al
jmp 0x10015700
mov byte [esp + 0x16], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x14], 0
test ebx, ebx
je 0x1001575e
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x10015732
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx]
mov ecx, dword [esp + 0x74]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x28]
mov cl, byte [ecx + eax]
mov eax, dword [esp + 0x78]
mov byte [esp + 0x11], cl
mov cl, byte [eax + edx]
mov byte [esp + 0x12], cl
jmp 0x1001576d
mov esi, dword [esp + 0x7c]
xor edx, edx
mov dl, byte [esi + edi]
mov cl, byte [eax + edx*4]
xor edx, edx
mov byte [esp + 0x10], cl
mov dl, byte [esi + edi]
mov cl, byte [eax + edx*4 + 1]
xor edx, edx
mov byte [esp + 0x11], cl
mov dl, byte [esi + edi]
mov al, byte [eax + edx*4 + 2]
mov byte [esp + 0x12], al
jmp 0x1001576d
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x10], 0
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x18]
push ecx
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push eax
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x24]
add eax, ecx
push edx
push eax
call fcn.10013740
mov esi, eax
test esi, esi
jne 0x100157db
mov edx, dword [esp + 0x24]
mov ecx, 3
add edx, ecx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
add edx, ecx
inc eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x20]
inc edi
cmp eax, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], edx
jl 0x100155be
mov edi, dword [esp + 0x54]
test esi, esi
jne 0x1001581e
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x20]
push 2
push edx
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x94]
push edi
push edx
push eax
call fcn.10005df0
mov esi, eax
inc edi
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x54], edi
cmp edi, dword [ecx + 0xc]
jle 0x10015422
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10015834
push eax
push edi
call fcn.100a1010
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10015843
push eax
push edi
call fcn.100a1010
test ebx, ebx
je 0x1001584e
push ebx
push edi
call fcn.100a1010
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1001585d
push eax
push edi
call fcn.100a1010
test ebp, ebp
je 0x10015868
push ebp
push edi
call fcn.100a1010
call fcn.10046b40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret 0x20