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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
lea eax, [esp + 0x28]
push edi
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.100d3780
lea edx, [esp + 0x3c]
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
push edx
push eax
push esi
call sym.GEAR32PO.OCX_GPb_IP_check_rect_for_NULL_and_clip
push esi
call sym.GEAR32PO.OCX_GPb_bits_per_pixel_get
sub eax, 0x18
mov edi, dword [esp + 0x78]
neg eax
sbb eax, eax
and al, 0xfe
add eax, 3
imul eax, edi
imul eax, edi
mov esi, eax
call fcn.100a0c60
push esi
push eax
mov dword [esp + 0x1c], eax
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x10], eax
jne 0x10052a51
push eax
push esi
push 0xfffffc18
push 0x422
jmp 0x10052c00
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
neg ebx
mov dword [esp + 0x1c], ebx
lea ecx, [ebx + edi - 1]
lea edx, [ebx + edi - 1]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
add edx, eax
add ecx, eax
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x48]
sub ecx, edi
inc ecx
add edx, eax
mov dword [esp + 0x54], ecx
sub edx, edi
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x3c]
inc edx
push eax
push ecx
mov dword [esp + 0x60], edx
call fcn.100c4d70
lea edx, [esp + 0x3c]
push edx
call sym.GEAR32PO.OCX_rect_number_of_segments
mov ebp, eax
lea eax, [esp + 0x30]
push 0
lea ecx, [esp + 0x40]
push eax
push ecx
mov dword [esp + 0x2c], ebp
call sym.GEAR32PO.OCX_rect_segment_get
xor edx, edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], edx
mov esi, eax
sub esi, ebx
test ebp, ebp
mov dword [esp + 0x74], esi
jle 0x10052be0
mov ecx, dword [esp + 0x34]
jmp 0x10052af2
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x38]
mov ebx, ecx
add ebp, ecx
cmp ecx, ebp
jge 0x10052b92
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea esi, [edx + ecx]
mov ecx, edx
sub ebp, ecx
mov edx, dword [esp + 0x1c]
lea ecx, [ebp + esi]
add edx, eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x7c]
add ecx, eax
cmp edx, 4
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], ecx
jne 0x10052b58
call dword [sym.imp.MSVCRT.dll_rand]
mov ecx, eax
mov eax, 0x80010003
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
push ecx
push edx
lea edx, [esp + 0x64]
push edx
push eax
call fcn.10001600
add ebx, edi
add esi, edi
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
lea eax, [ecx + edx]
cmp ebx, eax
mov eax, dword [esp + 0x30]
jl 0x10052b11
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x78]
jmp 0x10052b96
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x10052bbb
mov ecx, dword [esp + 0x2c]
push ebx
push edx
push ecx
call ebp
test eax, eax
je 0x10052c1e
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
inc eax
inc edx
cmp eax, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x78], edx
je 0x10052bd4
lea ebp, [esi + edi]
cmp eax, ebp
je 0x10052bd4
cmp edx, ebx
jl 0x10052b96
cmp edx, ebx
mov dword [esp + 0x74], eax
jl 0x10052aee
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.100a1010
test eax, eax
je 0x10052c0a
push 0
push eax
push 0xfffff42a
push 0x465
push str.C:_accusoftgear_sourceIMG_PROCFX.C
call fcn.10046940
mov eax, dword [esp + 0x14]
push eax
call fcn.100a12c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push edx
push esi
call fcn.100a1010
push esi
call fcn.100a12c0
push ebx
mov eax, dword [esp + 0x7c]
push eax
push 0xfffff7bf
push 0x458
push str.C:_accusoftgear_sourceIMG_PROCFX.C
call fcn.10046940
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10