Function at 0x4e0390
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 8]
push ebx
push edi
push 0
push 0x650954
push 0x650938
mov ebx, ecx
push 0
push eax
mov dword [ebp - 4], ebx
call fcn.005e2de2
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4e0f7a
mov eax, dword [edi + 0x28]
test eax, eax
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xc], eax
jne 0x4e099e
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x74]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
imul edx, dword [esi + 4]
add edx, dword [esi]
lea eax, [eax + edx*4]
mov edx, dword [ebx]
mov ecx, ebx
mov dword [ebp - 8], eax
call dword [edx + 0x74]
mov ecx, dword [ebx + 4]
imul ecx, dword [ebp + 0x10]
add ecx, dword [ebp + 0xc]
lea edx, [eax + ecx*4]
mov al, byte [ebx + 0x32]
test al, al
mov dword [ebp + 0x10], edx
jne 0x4e0690
mov al, byte [ebx + 0x31]
test al, al
jne 0x4e0690
mov ebx, dword [ebp + 0x18]
push 0x68ad88
push ebx
call fcn.004d6d60
add esp, 8
test al, al
jne 0x4e0693
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
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 0x4e0f71
jmp 0x4e0461
mov esi, dword [ebp + 0x14]
mov esi, dword [esi + 8]
test esi, esi
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], esi
jle 0x4e0647
mov edx, dword [ebp - 0xc]
mov al, byte [edx]
mov ecx, dword [ebx]
movzx edx, al
cmp edx, esi
mov byte [ebp + 0x1b], al
jle 0x4e048f
mov al, byte [ebp - 0x10]
mov byte [ebp + 0x1b], al
mov edx, ecx
shr edx, 0x18
mov esi, 0x100
sub esi, edx
cmp esi, 1
mov dword [ebp - 0x14], esi
jne 0x4e04c2
movzx eax, al
test eax, eax
jle 0x4e062c
mov ecx, eax
mov edx, dword [ebx]
mov dword [edi], edx
add edi, 4
add ebx, 4
dec ecx
jne 0x4e04b0
jmp 0x4e062c
cmp esi, 0x100
jne 0x4e04dd
movzx eax, al
lea ecx, [eax*4]
add edi, ecx
add ebx, ecx
jmp 0x4e062c
mov eax, dword [edi]
add ebx, 4
mov dword [ebp + 0xc], 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 + 0x1b]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
cmp eax, 1
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], eax
jle 0x4e0629
dec eax
mov dword [ebp - 0x14], eax
nop
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebp + 0xc], 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 + 0x18], 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 + 0x18]
and eax, 0xff00
imul eax, edx
and ecx, 0xff00
imul ecx, dword [ebp + 0x18]
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 0x4e0580
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
sub esi, eax
add edx, eax
test esi, esi
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], esi
jg 0x4e0478
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp + 0x10], edx
mov edx, dword [ebp - 8]
lea edx, [edx + eax*4]
add ecx, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], 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 0x4e045e
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [ebp + 0x18]
push 0x68ad88
push ebx
call fcn.004d6d20
add esp, 8
test al, al
mov dword [ebp - 0x18], 0
je 0x4e080e
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x4e0f71
jmp 0x4e06c0
mov ecx, dword [esi + 8]
test ecx, ecx
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], 0
jle 0x4e07cd
jmp 0x4e06e0
mov edi, dword [ebx]
mov ecx, dword [eax]
mov edx, edi
shr edx, 0x18
add ebx, 4
test edx, edx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x18], edx
je 0x4e07b5
mov ebx, ecx
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x18]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl esi, 0x18
sub edx, eax
imul ebx, edx
mov dword [ebp - 0x20], edx
mov edx, edi
and edx, 0xff0000
imul edx, eax
mov dword [ebp + 0x18], eax
shr ebx, 8
shr edx, 8
add ebx, edx
mov eax, ecx
and eax, 0xff
imul eax, dword [ebp - 0x20]
mov edx, edi
and edx, 0xff
imul edx, dword [ebp + 0x18]
and ecx, 0xff00
imul ecx, dword [ebp - 0x20]
and edi, 0xff00
imul edi, dword [ebp + 0x18]
shr eax, 8
shr edx, 8
add eax, edx
shr ecx, 8
and ebx, 0xff0000
shr edi, 8
and eax, 0xff
or ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
and ecx, 0xff00
or ebx, ecx
or ebx, esi
mov esi, dword [ebp + 0x14]
mov dword [eax], ebx
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [esi + 8]
add eax, 4
inc ecx
cmp ecx, edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], ecx
jl 0x4e06e0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0x10]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 8]
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0xc]
inc eax
cmp eax, ecx
mov dword [ebp - 0x18], eax
jl 0x4e06c0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebx]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x24], edx
mov edx, dword [ebx + 8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
jle 0x4e0f71
jmp 0x4e0835
mov esi, dword [ebp + 0x14]
mov eax, dword [esi + 8]
test eax, eax
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x1c], 0
jle 0x4e095a
mov ecx, dword [ebx]
mov esi, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x24]
mov eax, 0x80808081
mul edx
shr edx, 7
add ebx, 4
test edx, edx
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x18], edx
je 0x4e093f
mov ebx, esi
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
mov eax, dword [ebp + 0x18]
add edx, edi
imul eax, eax, 0xff
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
add edi, ebx
cdq
idiv edi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl edi, 0x18
imul ebx, eax
sub edx, eax
mov dword [ebp + 0x18], eax
shr ebx, 8
imul ebx, dword [ebp - 0x14]
mov eax, esi
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x20], edx
mov edx, ecx
and edx, 0xff
imul edx, dword [ebp + 0x18]
imul edx, dword [ebp - 0x10]
and ecx, 0xff00
imul ecx, dword [ebp + 0x18]
imul ecx, dword [ebp - 0xc]
shr ebx, 8
shr eax, 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
shr ecx, 0x10
and ebx, 0xff0000
add edx, eax
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 [edi], ebx
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
add edi, 4
inc eax
cmp eax, edx
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x1c], eax
jl 0x4e0850
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp + 0x10], edx
mov edx, dword [ebp - 8]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
cmp eax, edx
mov dword [ebp - 0x18], eax
jl 0x4e0832
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 4]
imul ebx, dword [esi + 4]
mov edx, dword [edi + 0x2c]
mov ecx, dword [esi]
add ebx, edx
add ebx, ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
mov dword [ebp - 8], ebx
call dword [eax + 0x74]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
imul edx, dword [ebp + 0x10]
add edx, dword [ebp + 0xc]
lea eax, [eax + edx*4]
mov dword [ebp + 0x10], eax
mov al, byte [ecx + 0x32]
test al, al
jne 0x4e0c5f
mov al, byte [ecx + 0x31]
test al, al
jne 0x4e0c5f
mov edx, dword [ebp + 0x18]
push 0x68ad88
push edx
call fcn.004d6d60
add esp, 8
test al, al
jne 0x4e0c5f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
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 - 0x18], ecx
mov dword [ebp - 0x24], 0
jle 0x4e0f71
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
test edx, edx
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], edx
jle 0x4e0c17
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 + 0x1b], al
jle 0x4e0a60
mov al, byte [ebp - 0x14]
mov byte [ebp + 0x1b], al
mov edx, ecx
shr edx, 0x18
mov esi, 0x100
sub esi, edx
cmp esi, 1
mov dword [ebp - 0x20], esi
jne 0x4e0a98
movzx eax, al
test eax, eax
jle 0x4e0c01
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 0x4e0a84
jmp 0x4e0c01
cmp esi, 0x100
jne 0x4e0aad
movzx eax, al
lea edi, [edi + eax*4]
add ebx, eax
jmp 0x4e0c01
mov eax, dword [edi]
mov edx, 0x100
sub edx, esi
inc ebx
mov dword [ebp + 0xc], 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 + 0x1b]
or ebx, 0xff000000
mov dword [edi], ebx
add edi, 4
cmp eax, 1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], eax
jle 0x4e0bfe
dec eax
mov dword [ebp - 0x1c], eax
lea ecx, [ecx]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + ecx*4]
inc eax
mov dword [ebp + 0xc], 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 + 0x18], 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 + 0x18]
and eax, 0xff00
imul eax, edx
and ecx, 0xff00
imul ecx, dword [ebp + 0x18]
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 0x4e0b50
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0xc]
add dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x14]
sub edx, eax
test edx, edx
mov dword [ebp - 0x14], edx
jg 0x4e0a42
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp + 0x10], edx
mov edx, dword [ebp - 8]
add edx, eax
add ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 8], edx
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 0xc]
inc eax
cmp eax, esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], eax
jl 0x4e0a28
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edi, dword [ebp + 0x18]
push 0x68ad88
push edi
call fcn.004d6d20
add esp, 8
test al, al
je 0x4e0de5
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x1c], 0
jle 0x4e0f71
lea ebx, [ebx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
test edx, edx
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov esi, ebx
mov dword [ebp - 0x20], 0
jle 0x4e0da5
lea ecx, [ecx]
movzx edx, byte [esi]
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx + edx*4]
mov ecx, dword [eax]
mov edx, edi
shr edx, 0x18
inc esi
test edx, edx
mov dword [ebp - 0x28], esi
mov dword [ebp + 0x18], edx
je 0x4e0d8a
mov ebx, ecx
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x18]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl esi, 0x18
sub edx, eax
imul ebx, edx
mov dword [ebp - 0x24], edx
mov edx, edi
and edx, 0xff0000
imul edx, eax
mov dword [ebp + 0x18], eax
shr ebx, 8
shr edx, 8
add ebx, edx
mov eax, ecx
and eax, 0xff
imul eax, dword [ebp - 0x24]
mov edx, edi
and edx, 0xff
imul edx, dword [ebp + 0x18]
and ecx, 0xff00
imul ecx, dword [ebp - 0x24]
and edi, 0xff00
imul edi, dword [ebp + 0x18]
shr eax, 8
shr edx, 8
add eax, edx
shr ecx, 8
and ebx, 0xff0000
shr edi, 8
and eax, 0xff
or ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
and ecx, 0xff00
or ebx, ecx
or ebx, esi
mov esi, dword [ebp - 0x28]
mov dword [eax], ebx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp + 0x14]
mov edi, dword [edx + 8]
add eax, 4
inc ecx
cmp ecx, edi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x20], ecx
jl 0x4e0cb0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0x10]
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 + 0x10], eax
mov eax, dword [ebp - 0x1c]
add ebx, esi
inc eax
cmp eax, ecx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x1c], eax
jl 0x4e0c90
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x18], 0
jle 0x4e0f71
mov edi, edi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 8]
test eax, eax
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0
jle 0x4e0f42
mov edi, edi
mov eax, dword [ebp - 0x24]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + edx*4]
mov esi, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x24], eax
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
mov dword [ebp + 0x18], edx
je 0x4e0f27
mov ebx, esi
shr ebx, 0x18
mov edi, 0xff
sub edi, ebx
imul edi, edx
mov eax, 0x80808081
imul edi
mov eax, dword [ebp + 0x18]
add edx, edi
imul eax, eax, 0xff
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
add edi, ebx
cdq
idiv edi
mov ebx, ecx
and ebx, 0xff0000
mov edx, 0x100
shl edi, 0x18
imul ebx, eax
sub edx, eax
mov dword [ebp + 0x18], eax
shr ebx, 8
imul ebx, dword [ebp - 0x14]
mov eax, esi
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x20], edx
mov edx, ecx
and edx, 0xff
imul edx, dword [ebp + 0x18]
imul edx, dword [ebp - 0x10]
and ecx, 0xff00
imul ecx, dword [ebp + 0x18]
imul ecx, dword [ebp - 0x2c]
shr ebx, 8
shr eax, 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
shr ecx, 0x10
and ebx, 0xff0000
add edx, eax
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 [edi], ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
add edi, 4
inc eax
cmp eax, edx
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x1c], eax
jl 0x4e0e30
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
add ebx, edi
mov dword [ebp + 0x10], edx
mov edx, dword [ecx + 0xc]
inc eax
cmp eax, edx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], eax
jl 0x4e0e10
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
call dword [edx + 0x5c]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14