Function at 0x449a50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 8]
push ebx
push 0
push 0x52ed8c
push 0x52ed70
mov ebx, ecx
push 0
push eax
mov dword [ebp - 8], ebx
call fcn.004e3055
add esp, 0x14
test eax, eax
mov dword [ebp - 0x10], eax
je 0x44a6f8
mov eax, dword [eax + 0x24]
test eax, eax
push esi
push edi
mov dword [ebp - 0xc], eax
jne 0x44a0b9
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
call dword [edx + 0x58]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov esi, dword [ebp + 0x14]
imul edx, dword [esi + 4]
add edx, dword [esi]
lea eax, [eax + edx*4]
mov edx, dword [ebx]
mov ecx, ebx
mov dword [ebp - 4], eax
call dword [edx + 0x58]
mov ecx, dword [ebx + 4]
imul ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x18]
add ecx, edx
lea edx, [eax + ecx*4]
mov al, byte [ebx + 0x2e]
test al, al
mov dword [ebp + 0xc], edx
jne 0x449d57
mov al, byte [ebx + 0x2d]
test al, al
jne 0x449d57
push 0x57de98
push edi
call fcn.00440f00
add esp, 8
test al, al
jne 0x449d57
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
imul ecx, dword [esi + 4]
add ecx, dword [esi]
add ecx, eax
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0
jle 0x44a6ee
jmp 0x449b26
mov esi, dword [ebp + 0x14]
mov esi, dword [esi + 8]
test esi, esi
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], esi
jle 0x449d0e
lea ecx, [ecx]
mov edx, dword [ebp - 0x10]
mov al, byte [edx]
mov ecx, dword [ebx]
movzx edx, al
cmp edx, esi
mov byte [ebp + 0x13], al
jle 0x449b57
mov al, byte [ebp - 0xc]
mov byte [ebp + 0x13], al
mov edx, ecx
shr edx, 0x18
mov esi, 0x100
sub esi, edx
cmp esi, 1
mov dword [ebp - 0x14], esi
jne 0x449b8a
movzx eax, al
test eax, eax
jle 0x449cf3
mov ecx, eax
mov edx, dword [ebx]
mov dword [edi], edx
add edi, 4
add ebx, 4
dec ecx
jne 0x449b78
jmp 0x449cf3
cmp esi, 0x100
jne 0x449ba5
movzx eax, al
lea ecx, [eax*4]
add edi, ecx
add ebx, ecx
jmp 0x449cf3
mov eax, dword [edi]
add ebx, 4
mov dword [ebp + 0x18], ebx
mov ebx, eax
and ebx, 0xff
imul ebx, esi
mov edx, 0x100
sub edx, esi
mov esi, ecx
and esi, 0xff
imul esi, edx
mov dword [ebp - 0x18], edx
shr ebx, 8
shr esi, 8
add ebx, esi
mov edx, eax
mov esi, ecx
and edx, 0xff0000
imul edx, dword [ebp - 0x14]
and eax, 0xff00
imul eax, dword [ebp - 0x14]
and esi, 0xff0000
imul esi, dword [ebp - 0x18]
and ecx, 0xff00
imul ecx, dword [ebp - 0x18]
shr edx, 8
shr esi, 8
shr eax, 8
and ebx, 0xff
add edx, esi
shr ecx, 8
add eax, ecx
and edx, 0xffff0000
or ebx, edx
and eax, 0xff00
or ebx, eax
movzx eax, byte [ebp + 0x13]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
cmp eax, 1
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], eax
jle 0x449cf0
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
add eax, 4
mov dword [ebp + 0x18], eax
mov eax, dword [edi]
mov ebx, eax
mov esi, ecx
shr esi, 0x18
and ebx, 0xff
mov edi, ecx
and edi, 0xff
imul edi, esi
mov edx, 0x100
sub edx, esi
imul ebx, edx
shr edi, 8
mov dword [ebp + 0x10], esi
shr ebx, 8
add ebx, edi
mov esi, eax
mov edi, ecx
and esi, 0xff0000
and edi, 0xff0000
imul esi, edx
imul edi, dword [ebp + 0x10]
and eax, 0xff00
imul eax, edx
and ecx, 0xff00
imul ecx, dword [ebp + 0x10]
shr edi, 8
shr esi, 8
add esi, edi
mov edi, dword [ebp - 0x18]
shr eax, 8
and ebx, 0xff
shr ecx, 8
add eax, ecx
and esi, 0xffff0000
or ebx, esi
and eax, 0xff00
or ebx, eax
mov eax, dword [ebp - 0x14]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
dec eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jne 0x449c47
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
sub esi, eax
add edx, eax
test esi, esi
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], esi
jg 0x449b40
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp - 4]
lea edx, [edx + eax*4]
add ecx, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], edx
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 0xc]
inc eax
cmp eax, esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
jl 0x449b23
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x57de98
push edi
call fcn.00440ec0
add esp, 8
test al, al
je 0x449ed3
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x1c], 0
jle 0x44a6ee
nop
mov ecx, dword [esi + 8]
test ecx, ecx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 4]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x20], 0
jle 0x449e92
jmp 0x449da0
mov esi, dword [edi]
mov ecx, dword [eax]
mov edx, esi
shr edx, 0x18
add edi, 4
test edx, edx
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x10], edx
je 0x449e75
mov ebx, ecx
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x10]
imul eax, eax, 0xff
add edx, ebx
mov edi, edx
cdq
idiv edi
mov dword [ebp - 0x24], edi
mov edi, ecx
and edi, 0xff0000
mov ebx, esi
and ebx, 0xff0000
mov edx, 0x100
imul ebx, eax
sub edx, eax
imul edi, edx
mov dword [ebp + 0x10], eax
shr edi, 8
shr ebx, 8
add edi, ebx
mov eax, ecx
and eax, 0xff
mov ebx, esi
imul eax, edx
and ebx, 0xff
imul ebx, dword [ebp + 0x10]
and ecx, 0xff00
and esi, 0xff00
imul ecx, edx
imul esi, dword [ebp + 0x10]
shr eax, 8
shr ebx, 8
add eax, ebx
and eax, 0xff
and edi, 0xff0000
or edi, eax
mov eax, dword [ebp - 0x24]
shr ecx, 8
shr esi, 8
add ecx, esi
and ecx, 0xff00
or edi, ecx
shl eax, 0x18
or edi, eax
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 8]
add eax, 4
inc ecx
cmp ecx, esi
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x20], ecx
jl 0x449da0
mov esi, edx
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 4]
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
mov ecx, dword [esi + 0xc]
inc eax
cmp eax, ecx
mov dword [ebp - 0x1c], eax
jl 0x449d80
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi]
imul ecx, ebx
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [edi + 4]
sar edx, 7
imul ecx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x24], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [edi + 8]
imul ecx, ebx
mov dword [ebp - 0x10], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 0
jle 0x44a6ee
mov edi, edi
mov eax, dword [esi + 8]
test eax, eax
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 4]
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0x1c], 0
jle 0x44a078
jmp 0x449f60
mov edx, dword [ebp + 0x18]
mov esi, dword [edx]
mov ecx, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, ebx
mov eax, 0x80808081
mul edx
shr edx, 7
add edi, 4
test edx, edx
mov dword [ebp - 0xc], edi
mov dword [ebp + 0x10], edx
je 0x44a058
mov ebx, esi
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x10]
add edx, ebx
imul eax, eax, 0xff
mov edi, edx
cdq
idiv edi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl edi, 0x18
imul ebx, eax
sub edx, eax
mov dword [ebp + 0x10], eax
shr ebx, 8
imul ebx, dword [ebp - 0x24]
mov eax, esi
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x20], edx
mov edx, ecx
and edx, 0xff
imul edx, dword [ebp + 0x10]
imul edx, dword [ebp - 0x14]
and ecx, 0xff00
imul ecx, dword [ebp + 0x10]
imul ecx, dword [ebp - 0x10]
shr eax, 8
shr ebx, 8
add ebx, eax
mov eax, esi
and eax, 0xff
imul eax, dword [ebp - 0x20]
and esi, 0xff00
imul esi, dword [ebp - 0x20]
shr edx, 0x10
shr eax, 8
add edx, eax
mov eax, dword [ebp + 0x18]
shr ecx, 0x10
and ebx, 0xff0000
shr esi, 8
and edx, 0xff
add ecx, esi
or ebx, edx
and ecx, 0xff00
or ebx, ecx
or ebx, edi
mov edi, dword [ebp - 0xc]
mov dword [eax], ebx
mov ebx, dword [ebp - 0x28]
jmp 0x44a05b
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
add eax, 4
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, edx
mov dword [ebp - 0x1c], eax
jl 0x449f60
mov esi, ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp - 4]
lea eax, [edx + ecx*4]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x18]
inc eax
cmp eax, ecx
mov dword [ebp - 0x18], eax
jl 0x449f40
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 4]
mov eax, dword [ebp + 0x14]
imul edi, dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x28]
mov esi, dword [eax]
mov eax, dword [ebx]
add edi, ecx
add edi, esi
mov ecx, ebx
mov dword [ebp - 4], edi
call dword [eax + 0x58]
mov ecx, dword [ebx + 4]
imul ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x18]
add ecx, edx
lea edx, [eax + ecx*4]
mov al, byte [ebx + 0x2e]
test al, al
mov dword [ebp + 0xc], edx
jne 0x44a38f
mov al, byte [ebx + 0x2d]
test al, al
jne 0x44a38f
push 0x57de98
push esi
call fcn.00440f00
add esp, 8
test al, al
jne 0x44a38f
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov ecx, dword [ebp + 0x14]
imul esi, dword [ecx + 4]
add esi, dword [ecx]
add esi, eax
mov eax, dword [ecx + 0xc]
test eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], 0
jle 0x44a6ee
jmp 0x44a150
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
test edx, edx
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edx
jle 0x44a347
lea ebx, [ebx]
movzx eax, byte [ebx]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
movzx esi, al
cmp esi, edx
mov byte [ebp + 0x13], al
jle 0x44a18e
mov al, byte [ebp - 0x14]
mov byte [ebp + 0x13], al
mov edx, ecx
shr edx, 0x18
mov esi, 0x100
sub esi, edx
cmp esi, 1
mov dword [ebp - 0x20], esi
jne 0x44a1c6
movzx eax, al
test eax, eax
jle 0x44a331
mov edx, dword [ebp - 0xc]
mov ecx, eax
movzx esi, byte [ebx]
mov esi, dword [edx + esi*4]
mov dword [edi], esi
add edi, 4
inc ebx
dec ecx
jne 0x44a1b2
jmp 0x44a331
cmp esi, 0x100
jne 0x44a1db
movzx eax, al
lea edi, [edi + eax*4]
add ebx, eax
jmp 0x44a331
mov eax, dword [edi]
mov edx, 0x100
sub edx, esi
inc ebx
mov dword [ebp + 0x18], ebx
mov ebx, eax
and ebx, 0xff
imul ebx, esi
mov esi, ecx
and esi, 0xff
imul esi, edx
mov dword [ebp - 0x1c], edx
shr ebx, 8
shr esi, 8
add ebx, esi
mov edx, eax
mov esi, ecx
and edx, 0xff0000
imul edx, dword [ebp - 0x20]
and eax, 0xff00
imul eax, dword [ebp - 0x20]
and esi, 0xff0000
imul esi, dword [ebp - 0x1c]
and ecx, 0xff00
imul ecx, dword [ebp - 0x1c]
shr edx, 8
shr esi, 8
shr eax, 8
and ebx, 0xff
add edx, esi
shr ecx, 8
add eax, ecx
and edx, 0xffff0000
or ebx, edx
and eax, 0xff00
or ebx, eax
movzx eax, byte [ebp + 0x13]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
cmp eax, 1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], eax
jle 0x44a32e
dec eax
mov dword [ebp - 0x1c], eax
jmp 0x44a280
mov eax, dword [ebp + 0x18]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + ecx*4]
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [edi]
mov ebx, eax
mov esi, ecx
shr esi, 0x18
and ebx, 0xff
mov edi, ecx
and edi, 0xff
imul edi, esi
mov edx, 0x100
sub edx, esi
imul ebx, edx
shr edi, 8
mov dword [ebp + 0x10], esi
shr ebx, 8
add ebx, edi
mov esi, eax
mov edi, ecx
and esi, 0xff0000
and edi, 0xff0000
imul esi, edx
imul edi, dword [ebp + 0x10]
and eax, 0xff00
imul eax, edx
and ecx, 0xff00
imul ecx, dword [ebp + 0x10]
shr edi, 8
shr esi, 8
add esi, edi
mov edi, dword [ebp - 0x20]
shr eax, 8
and ebx, 0xff
shr ecx, 8
add eax, ecx
and esi, 0xffff0000
or ebx, esi
and eax, 0xff00
or ebx, eax
mov eax, dword [ebp - 0x1c]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
dec eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
jne 0x44a280
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x18]
add dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x14]
sub edx, eax
test edx, edx
mov dword [ebp - 0x14], edx
jg 0x44a170
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 4]
mov ecx, dword [edx + 0xc]
add ebx, eax
add esi, eax
mov eax, dword [ebp - 0x24]
inc eax
cmp eax, ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], eax
jl 0x44a150
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x57de98
push esi
call fcn.00440ec0
add esp, 8
test al, al
je 0x44a518
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov dword [ebp - 0x20], 0
jle 0x44a6ee
lea ebx, [ebx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
test edx, edx
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x18], eax
mov ebx, edi
mov dword [ebp - 0x24], 0
jle 0x44a4d8
lea ecx, [ecx]
movzx edx, byte [ebx]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ecx + edx*4]
mov ecx, dword [eax]
mov edx, esi
shr edx, 0x18
inc ebx
test edx, edx
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x10], edx
je 0x44a4bd
mov ebx, ecx
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x10]
imul eax, eax, 0xff
add edx, ebx
mov edi, edx
cdq
idiv edi
mov dword [ebp - 0x28], edi
mov edi, ecx
and edi, 0xff0000
mov ebx, esi
and ebx, 0xff0000
mov edx, 0x100
imul ebx, eax
sub edx, eax
imul edi, edx
mov dword [ebp + 0x10], eax
shr ebx, 8
shr edi, 8
add edi, ebx
mov eax, ecx
and eax, 0xff
mov ebx, esi
imul eax, edx
and ebx, 0xff
imul ebx, dword [ebp + 0x10]
and ecx, 0xff00
and esi, 0xff00
imul ecx, edx
imul esi, dword [ebp + 0x10]
shr eax, 8
shr ebx, 8
add eax, ebx
mov ebx, dword [ebp - 0x1c]
and eax, 0xff
and edi, 0xff0000
or edi, eax
mov eax, dword [ebp - 0x28]
shr ecx, 8
shr esi, 8
add ecx, esi
and ecx, 0xff00
or edi, ecx
shl eax, 0x18
or edi, eax
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 8]
add eax, 4
inc ecx
cmp ecx, esi
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x24], ecx
jl 0x44a3e0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x20]
add edi, esi
inc eax
cmp eax, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], eax
jl 0x44a3c0
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi]
imul ecx, ebx
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
sar edx, 7
imul ecx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x18], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, ebx
mov dword [ebp - 0x10], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp + 0x14]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0xc]
test eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], 0
jle 0x44a6ee
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
test ecx, ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x18], edx
mov ebx, edi
mov dword [ebp - 0x20], 0
jle 0x44a6bf
movzx ecx, byte [ebx]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + ecx*4]
mov eax, dword [ebp + 0x18]
mov esi, dword [eax]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x28]
mov eax, 0x80808081
mul edx
shr edx, 7
inc ebx
test edx, edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x10], edx
je 0x44a6a1
mov ebx, esi
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x10]
add edx, ebx
imul eax, eax, 0xff
mov edi, edx
cdq
idiv edi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl edi, 0x18
imul ebx, eax
sub edx, eax
mov dword [ebp + 0x10], eax
shr ebx, 8
imul ebx, dword [ebp - 0x18]
mov eax, esi
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x24], edx
mov edx, ecx
and edx, 0xff
imul edx, dword [ebp + 0x10]
imul edx, dword [ebp - 0x14]
and ecx, 0xff00
imul ecx, dword [ebp + 0x10]
imul ecx, dword [ebp - 0x10]
shr eax, 8
shr ebx, 8
add ebx, eax
mov eax, esi
and eax, 0xff
imul eax, dword [ebp - 0x24]
and esi, 0xff00
imul esi, dword [ebp - 0x24]
shr edx, 0x10
shr eax, 8
add edx, eax
mov eax, dword [ebp + 0x18]
shr ecx, 0x10
and ebx, 0xff0000
shr esi, 8
and edx, 0xff
add ecx, esi
or ebx, edx
and ecx, 0xff00
or ebx, ecx
or ebx, edi
mov edi, dword [ebp - 4]
mov dword [eax], ebx
mov ebx, dword [ebp - 0x2c]
jmp 0x44a6a4
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
add eax, 4
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x20]
inc eax
cmp eax, edx
mov dword [ebp - 0x20], eax
jl 0x44a5a3
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
add edi, ebx
mov dword [ebp + 0xc], edx
mov edx, dword [ecx + 0xc]
inc eax
cmp eax, edx
mov dword [ebp - 4], edi
mov dword [ebp - 0x1c], eax
jl 0x44a586
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
call dword [edx + 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14