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

Disassembly:
sub esp, 0x64
lea eax, [esp + 0x30]
xor ecx, ecx
push ebx
mov bl, byte [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x70]
test bl, bl
push esi
mov esi, dword [sym.imp.gdiplus.dll_GdipBitmapLockBits]
push edi
push eax
mov edi, 2
mov eax, edi
cmovne eax, ecx
push 0x26200a
or eax, 1
push eax
lea eax, [esp + 0x94]
push eax
push dword [ebp + 4]
call esi
test eax, eax
jne 0x10219922
lea eax, [esp + 0x58]
push eax
xor eax, eax
test bl, bl
push 0x26200a
cmovne eax, edi
mov edi, dword [esp + 0x84]
or eax, 1
push eax
lea eax, [esp + 0xa4]
push eax
push dword [edi + 4]
call esi
test eax, eax
je 0x102196a9
mov dword [edi + 8], eax
lea eax, [esp + 0x40]
push eax
push dword [ebp + 4]
call dword [sym.imp.gdiplus.dll_GdipBitmapUnlockBits]
jmp 0x1021991e
mov esi, dword [esp + 0x94]
xor ebx, ebx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
test esi, esi
jle 0x102198fd
lea ebx, [ebx]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x90], ecx
jle 0x102198ec
jmp 0x102196f0
mov ebp, dword [esp + 0x60]
lea edi, [ecx*4]
imul ebp, ebx
add ebp, edi
mov cl, byte [eax + ebp + 3]
test cl, cl
je 0x102198cf
mov esi, dword [esp + 0x48]
mov eax, esi
imul eax, ebx
movzx ecx, cl
mov dword [esp + 0x3c], ecx
add eax, edi
mov dword [esp + 0x30], eax
mov al, byte [eax + edx + 3]
mov edx, 0xff
sub edx, ecx
mov byte [esp + 0x17], al
movzx eax, al
mov ecx, 0xff
sub ecx, eax
mov dword [esp + 0x34], eax
imul ecx, edx
mov eax, 0x80808081
mov dword [esp + 0x38], edx
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
or dl, 0xff
sub dl, al
cmp byte [esp + 0x84], 0
mov byte [esp + 0x16], dl
jne 0x10219781
mov dh, byte [esp + 0x17]
cmp dh, dl
movzx ecx, dl
movzx eax, dh
cmovb ecx, eax
mov dl, cl
mov byte [esp + 0x16], dl
test dl, dl
je 0x1021989d
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push dword [esp + 0x80]
movzx eax, byte [edx + eax + 2]
mov byte [esp + 0x1c], al
movzx eax, byte [ecx + ebp + 2]
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x28]
movzx eax, byte [edx + eax + 1]
mov byte [esp + 0x1d], al
movzx eax, byte [ecx + ebp + 1]
mov byte [esp + 0x21], al
mov eax, dword [esp + 0x28]
movzx eax, byte [edx + eax]
lea edx, [esp + 0x20]
mov byte [esp + 0x1e], al
movzx eax, byte [ecx + ebp]
lea ecx, [esp + 0x24]
mov byte [esp + 0x22], al
lea eax, [esp + 0x1c]
push eax
call fcn.1024eb00
movzx eax, byte [esp + 0x1e]
add esp, 8
movd xmm2, dword [esp + 0x34]
xor edx, edx
cvtdq2pd xmm2, xmm2
mov ebp, dword [esp + 0x28]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd xmm3, qword [0x10588b18]
divsd xmm2, xmm0
subsd xmm3, xmm2
lea ebx, [ebx]
movzx ecx, byte [esp + edx + 0x18]
imul ecx, dword [esp + 0x38]
movzx eax, byte [esp + edx + 0x20]
imul eax, dword [esp + 0x3c]
add ecx, eax
cmp byte [esp + 0x84], 0
movzx eax, byte [esp + edx + 0x1c]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, xmm2
cvtdq2pd xmm0, xmm0
divsd xmm1, qword [0x10588c20]
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
je 0x1021987e
mov eax, dword [esp + 0x60]
imul eax, ebx
sub eax, edx
add eax, edi
mov byte [eax + ebp + 2], cl
jmp 0x1021988d
mov eax, dword [esp + 0x24]
imul esi, ebx
sub esi, edx
add esi, edi
mov byte [esi + eax + 2], cl
mov esi, dword [esp + 0x48]
inc edx
cmp edx, 3
jl 0x10219820
mov dl, byte [esp + 0x16]
jmp 0x102198a1
mov ebp, dword [esp + 0x28]
cmp byte [esp + 0x84], 0
je 0x102198ba
mov eax, dword [esp + 0x60]
imul eax, ebx
add eax, edi
mov byte [eax + ebp + 3], dl
jmp 0x102198c7
mov eax, dword [esp + 0x24]
imul esi, ebx
add esi, edi
mov byte [esi + eax + 3], dl
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x90]
jl 0x102196f0
mov esi, dword [esp + 0x94]
inc ebx
cmp ebx, esi
jl 0x102196d0
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov esi, dword [sym.imp.gdiplus.dll_GdipBitmapUnlockBits]
lea eax, [esp + 0x58]
push eax
push dword [edi + 4]
call esi
test eax, eax
je 0x10219914
mov dword [edi + 8], eax
lea eax, [esp + 0x40]
push eax
push dword [ebp + 4]
call esi
test eax, eax
je 0x10219925
mov dword [ebp + 8], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x30