Function at 0x44b650
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
mov esi, dword [esp + 0x58]
lea eax, [esi + 0x54]
test eax, eax
push edi
je 0x44b665
mov eax, dword [eax + 4]
lea ecx, [esp + 0x40]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x64]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x54]
sub ebx, 1
mov ebp, eax
mov eax, ebx
mov dword [esp + 0x20], edx
cdq
sub eax, edx
mov edi, eax
sar ebp, 2
sar edi, 1
xor ecx, ecx
test ebx, ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x18], ecx
jle 0x44b8b4
mov eax, dword [esp + 0x54]
mov edx, 1
sub edx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edx
jmp 0x44b6d4
mov edx, dword [esp + 0x2c]
cmp ecx, edi
jge 0x44b6fc
mov edx, dword [esi + 0x84]
mov eax, dword [esi + 0x88]
sub eax, edx
lea edx, [ecx + 1]
imul eax, edx
cdq
idiv edi
mov ebx, dword [esi + 0x7c]
mov ebp, eax
add ebp, dword [esi + 0x84]
jmp 0x44b754
mov ebp, dword [esi + 0x8c]
mov eax, dword [esi + 0x90]
sub eax, ebp
add edx, ecx
imul eax, edx
cdq
idiv edi
mov ebx, dword [esi + 0x80]
add eax, ebp
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x4d0fa8]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld qword [0x4d0fa0]
call fcn.004a1880
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fmul qword [0x4d0f98]
call fcn.0048dc60
mov ecx, dword [esp + 0x18]
mov ebp, eax
cmp dword [esp + 0x60], 0
mov dword [esp + 0x24], 0
jle 0x44b88f
mov eax, ebx
shr eax, 0x10
and eax, 0xff
mov dword [esp + 0x30], eax
mov eax, ebx
shr eax, 8
and eax, 0xff
and ebx, 0xff
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], 0xff
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x60]
add dword [esp + 0x14], 0xff
mov edi, eax
mov eax, dword [esi + 0x78]
mov esi, dword [esi + 0x74]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
mov ecx, esi
shr ecx, 0x10
and ecx, 0xff
sub ebx, ecx
imul ebx, edi
shl ecx, 8
add ebx, ecx
xor ecx, ecx
shr ebx, 8
mov ch, bl
movzx ebx, ah
mov edx, esi
shr edx, 8
and edx, 0xff
sub ebx, edx
imul ebx, edi
shl edx, 8
add ebx, edx
movzx edx, al
and esi, 0xff
sub edx, esi
imul edx, edi
mov cl, bh
shl esi, 8
add edx, esi
shr edx, 8
movzx eax, dl
mov edx, dword [esp + 0x30]
shl ecx, 8
or ecx, eax
mov esi, ecx
mov eax, esi
shr eax, 0x10
and eax, 0xff
sub edx, eax
imul edx, ebp
shr ecx, 8
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x34]
and ecx, 0xff
sub eax, ecx
imul eax, ebp
shl ecx, 8
add eax, ecx
mov ecx, dword [esp + 0x38]
and esi, 0xff
sub ecx, esi
xor ebx, ebx
imul ecx, ebp
shr edx, 8
mov bh, dl
shl esi, 8
add ecx, esi
mov esi, dword [esp + 0x5c]
shr ecx, 8
movzx edx, cl
mov ecx, dword [esp + 0x1c]
mov bl, ah
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x24], eax
shl ebx, 8
or ebx, edx
cmp eax, dword [esp + 0x60]
mov dword [ecx + eax*4 - 4], ebx
jl 0x44b795
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, eax
add eax, eax
add dword [esp + 0x1c], eax
add ecx, 1
cmp ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
jl 0x44b6d0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x20]
lea edx, [ebx - 1]
imul edx, ebp
test edi, edi
lea eax, [esi + edx*4]
jle 0x44b988
sub esi, eax
mov dword [esp + 0x60], edi
mov ecx, dword [esi + eax]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edx, 0x9c
add edx, 0x639c
shr edx, 8
xor ebx, ebx
mov bh, dl
movzx edx, ch
imul edx, edx, 0x9c
movzx ecx, cl
imul ecx, ecx, 0x9c
add edx, 0x639c
mov bl, dh
add ecx, 0x639c
shr ecx, 8
movzx edx, cl
add eax, 4
shl ebx, 8
or ebx, edx
mov dword [esi + eax - 4], ebx
mov ecx, dword [eax - 4]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edx, 0x9c
add edx, 0x639c
shr edx, 8
xor ebx, ebx
mov bh, dl
movzx edx, ch
imul edx, edx, 0x9c
movzx ecx, cl
imul ecx, ecx, 0x9c
add edx, 0x639c
mov bl, dh
add ecx, 0x639c
shr ecx, 8
movzx edx, cl
shl ebx, 8
or ebx, edx
sub dword [esp + 0x60], 1
mov dword [eax - 4], ebx
jne 0x44b8d3
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
test ebx, ebx
jle 0x44ba4c
mov eax, esi
mov esi, ebx
mov ecx, dword [eax]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edx, 0x9c
add edx, 0x639c
shr edx, 8
xor ebx, ebx
mov bh, dl
movzx edx, ch
imul edx, edx, 0x9c
movzx ecx, cl
imul ecx, ecx, 0x9c
add edx, 0x639c
mov bl, dh
add ecx, 0x639c
shr ecx, 8
movzx edx, cl
shl ebx, 8
or ebx, edx
mov dword [eax], ebx
mov ecx, dword [eax + edi*4 - 4]
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edx, 0x9c
add edx, 0x639c
shr edx, 8
xor ebx, ebx
mov bh, dl
movzx edx, ch
movzx ecx, cl
imul edx, edx, 0x9c
imul ecx, ecx, 0x9c
add edx, 0x639c
mov bl, dh
add ecx, 0x639c
shr ecx, 8
movzx edx, cl
lea ecx, [ebp*4]
shl ebx, 8
or ebx, edx
mov dword [eax + edi*4 - 4], ebx
add eax, ecx
sub esi, 1
jne 0x44b994
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
imul ebp, ebx
test edi, edi
lea ebp, [esi + ebp*4]
jle 0x44ba5e
mov ecx, edi
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc