Function at 0x534260
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
push esi
mov esi, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x38]
push 0
push 0x6b7164
push 0x6b712c
push 0
push esi
mov byte [esi + 4], 1
call fcn.006254cb
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x534247
mov eax, dword [ebp + 0x48]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x533b3a
mov eax, dword [ebp]
mov edx, dword [eax + 0x7c]
mov ecx, ebp
call edx
mov ecx, dword [ebx + 4]
imul ecx, dword [esi + 0x24]
add ecx, dword [ebx]
lea edx, [eax + ecx*4]
mov eax, dword [edi]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x7c]
mov ecx, edi
call edx
mov ecx, dword [edi + 0x24]
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
cmp byte [edi + 0x52], 0
lea edx, [eax + ecx*4]
mov dword [esp + 0x44], edx
jne 0x5336a6
cmp byte [edi + 0x51], 0
jne 0x5336a6
mov edi, dword [esp + 0x4c]
mov eax, 0x6bac38
mov ecx, edi
call fcn.00502b00
test al, al
jne 0x5336aa
mov eax, dword [ebp]
mov edx, dword [eax + 0x48]
mov ecx, ebp
call edx
mov ecx, dword [ebx + 4]
imul ecx, dword [esi + 0x24]
add ecx, dword [ebx]
mov dword [esp + 0x20], 0
add ecx, eax
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], ecx
jle 0x53423c
mov eax, dword [esp + 0x48]
mov edi, dword [eax + 8]
test edi, edi
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], edi
jle 0x53364f
mov eax, dword [esp + 0x40]
mov al, byte [eax]
mov ecx, dword [edx]
movzx ebx, al
cmp ebx, edi
mov byte [esp + 0x4c], al
jle 0x5334ee
mov al, byte [esp + 0x14]
mov byte [esp + 0x4c], al
mov ebx, ecx
shr ebx, 0x18
mov edi, 0x100
sub edi, ebx
cmp edi, 1
jne 0x533524
movzx eax, al
test eax, eax
jle 0x533635
mov ecx, eax
lea esp, [esp]
mov edi, dword [edx]
mov dword [esi], edi
add esi, 4
add edx, 4
sub ecx, 1
jne 0x533510
jmp 0x533635
cmp edi, 0x100
jne 0x53353f
movzx eax, al
lea ecx, [eax*4]
add esi, ecx
add edx, ecx
jmp 0x533635
mov eax, 0x100
sub eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xff00ff
mov ebp, ecx
imul ebx, edi
and eax, 0xff00
and ebp, 0xff00ff
imul eax, edi
imul ebp, dword [esp + 0x18]
and ecx, 0xff00
imul ecx, dword [esp + 0x18]
shr ebx, 8
shr eax, 8
shr ebp, 8
add ebx, ebp
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
movzx eax, byte [esp + 0x4c]
or ebx, 0xff000000
mov dword [esi], ebx
add edx, 4
add esi, 4
cmp eax, 1
mov dword [esp + 0x24], eax
jle 0x533635
add eax, 0xffffffff
mov dword [esp + 0x4c], eax
jmp 0x5335c0
mov ecx, dword [edx]
mov eax, dword [esi]
add edx, 4
mov dword [esp + 0x18], edx
mov edx, ecx
mov ebx, eax
shr edx, 0x18
and ebx, 0xff00ff
mov ebp, ecx
and eax, 0xff00
mov edi, 0x100
sub edi, edx
imul ebx, edi
imul eax, edi
and ebp, 0xff00ff
and ecx, 0xff00
imul ebp, edx
imul ecx, edx
mov edx, dword [esp + 0x18]
shr ebx, 8
shr eax, 8
shr ebp, 8
add ebx, ebp
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
or ebx, 0xff000000
mov dword [esi], ebx
add esi, 4
sub dword [esp + 0x4c], 1
jne 0x5335c0
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
add dword [esp + 0x40], eax
sub edi, eax
test edi, edi
mov dword [esp + 0x14], edi
jg 0x5334d3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x44]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x10]
lea edx, [edx + eax*4]
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jl 0x5334b4
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov edi, dword [esp + 0x4c]
mov eax, edi
call fcn.00502ac0
test al, al
je 0x53380f
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x53423c
jmp 0x5336d0
cmp dword [ebx + 8], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], 0
jle 0x5337c2
mov edi, edi
mov edi, dword [eax]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
add eax, 4
mov ebp, edi
shr ebp, 0x18
mov dword [esp + 0x24], eax
je 0x5337a9
mov ebx, ecx
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, ebp
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff00ff
mov edx, 0x100
and ecx, 0xff00
shl esi, 0x18
sub edx, eax
mov dword [esp + 0x40], eax
imul ebx, edx
imul ecx, edx
mov eax, edi
and eax, 0xff00ff
imul eax, dword [esp + 0x40]
and edi, 0xff00
imul edi, dword [esp + 0x40]
shr ebx, 8
shr eax, 8
add ebx, eax
mov eax, dword [esp + 0x4c]
shr ecx, 8
shr edi, 8
and ebx, 0xff00ff
add ecx, edi
and ecx, 0xff00
or ebx, ecx
or ebx, esi
mov dword [eax], ebx
mov ebx, dword [esp + 0x48]
add eax, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
jmp 0x5337ae
add dword [esp + 0x4c], 4
mov ecx, dword [esp + 0x20]
add ecx, 1
cmp ecx, dword [ebx + 8]
mov dword [esp + 0x20], ecx
jl 0x5336f0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x24]
mov eax, dword [esp + 0x44]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x24]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
jl 0x5336d0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 4]
cmp ecx, eax
mov edi, dword [edi + 8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edi
jne 0x5339a7
cmp eax, edi
jne 0x5339a7
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x53423c
lea esp, [esp]
mov ecx, dword [esp + 0x48]
cmp dword [ecx + 8], 0
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], 0
jle 0x533956
mov ecx, dword [ebx]
mov edi, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x18]
mov eax, 0x80808081
mul edx
add ebx, 4
mov ebp, edx
shr ebp, 7
mov dword [esp + 0x24], ebx
je 0x533937
mov ebx, edi
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
mov eax, ebp
sar edx, 7
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff00ff
imul ebx, dword [esp + 0x40]
and ecx, 0xff00
shr ebx, 8
and ebx, 0xff00ff
mov ebp, edi
mov edx, 0x100
and ebp, 0xff00ff
and edi, 0xff00
shl esi, 0x18
imul ecx, eax
imul ebx, eax
imul ecx, dword [esp + 0x40]
sub edx, eax
imul ebp, edx
imul edi, edx
shr ebx, 8
shr ecx, 0x10
shr ebp, 8
add ebx, ebp
shr edi, 8
add ecx, edi
and ebx, 0xff00ff
and ecx, 0xff00
or ebx, ecx
or ebx, esi
mov esi, dword [esp + 0x4c]
mov dword [esi], ebx
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add eax, 1
add esi, 4
cmp eax, dword [ecx + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], eax
jl 0x533872
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x1c], eax
jl 0x533850
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x14], 0
jle 0x53423c
lea esp, [esp]
mov edx, dword [esp + 0x48]
cmp dword [edx + 8], 0
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x1c], 0
jle 0x533ae9
mov ecx, dword [edi]
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x18]
mov eax, 0x80808081
mul edx
add edi, 4
mov ebp, edx
shr ebp, 7
mov dword [esp + 0x2c], edi
je 0x533aca
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
mov eax, ebp
sar edx, 7
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff0000
mov ebp, ebx
and ebp, 0xff0000
mov edx, 0x100
shl esi, 0x18
imul edi, eax
sub edx, eax
imul ebp, edx
shr edi, 8
imul edi, dword [esp + 0x40]
mov dword [esp + 0x20], edx
movzx edx, cl
and ecx, 0xff00
imul edx, eax
imul edx, dword [esp + 0x24]
imul ecx, eax
imul ecx, dword [esp + 0x28]
shr edi, 8
shr ebp, 8
add edi, ebp
movzx ebp, bl
imul ebp, dword [esp + 0x20]
and ebx, 0xff00
imul ebx, dword [esp + 0x20]
shr edx, 0x10
shr ebp, 8
shr ecx, 0x10
and edi, 0xff0000
add edx, ebp
shr ebx, 8
and edx, 0xff
add ecx, ebx
or edi, edx
and ecx, 0xff00
or edi, ecx
or edi, esi
mov esi, dword [esp + 0x4c]
mov dword [esi], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
add eax, 1
add esi, 4
cmp eax, dword [ecx + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x1c], eax
jl 0x5339e2
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x14], eax
jl 0x5339c0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov edi, dword [ebx + 4]
mov edx, esi
imul edi, dword [edx + 0x24]
add edi, dword [ebp + 0x4c]
mov esi, dword [esp + 0x38]
add edi, dword [ebx]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov dword [esp + 0x10], edi
call edx
mov ecx, dword [esi + 0x24]
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
cmp byte [edx + 0x52], 0
lea esi, [eax + ecx*4]
mov dword [esp + 0x44], esi
jne 0x533dc7
mov eax, edx
cmp byte [eax + 0x51], 0
jne 0x533dc7
mov ecx, dword [esp + 0x4c]
mov eax, 0x6bac38
call fcn.00502b00
test al, al
jne 0x533dc7
mov edx, dword [ebp]
mov eax, dword [edx + 0x48]
mov ecx, ebp
call eax
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x3c]
imul ecx, dword [edx + 0x24]
add ecx, dword [ebx]
mov dword [esp + 0x24], 0
add ecx, eax
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], ecx
jle 0x53423c
jmp 0x533bd0
mov eax, dword [esp + 0x48]
mov edi, dword [eax + 8]
test edi, edi
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], edi
jle 0x533d77
nop
movzx ecx, byte [edx]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x40]
mov al, byte [eax]
movzx ebx, al
cmp ebx, edi
mov byte [esp + 0x4c], al
jle 0x533c13
mov al, byte [esp + 0x18]
mov byte [esp + 0x4c], al
mov ebx, ecx
shr ebx, 0x18
mov edi, 0x100
sub edi, ebx
cmp edi, 1
jne 0x533c4d
movzx eax, al
test eax, eax
jle 0x533d5d
mov edi, dword [esp + 0x14]
mov ecx, eax
movzx ebx, byte [edx]
mov ebx, dword [edi + ebx*4]
mov dword [esi], ebx
add esi, 4
add edx, 1
sub ecx, 1
jne 0x533c35
jmp 0x533d5d
cmp edi, 0x100
jne 0x533c62
movzx eax, al
lea esi, [esi + eax*4]
add edx, eax
jmp 0x533d5d
mov eax, 0x100
sub eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xff00ff
mov ebp, ecx
imul ebx, edi
and eax, 0xff00
and ebp, 0xff00ff
imul eax, edi
imul ebp, dword [esp + 0x20]
and ecx, 0xff00
imul ecx, dword [esp + 0x20]
shr ebx, 8
shr eax, 8
shr ebp, 8
add ebx, ebp
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
movzx eax, byte [esp + 0x4c]
or ebx, 0xff000000
mov dword [esi], ebx
add edx, 1
add esi, 4
cmp eax, 1
mov dword [esp + 0x2c], eax
jle 0x533d5d
add eax, 0xffffffff
mov dword [esp + 0x4c], eax
mov edi, edi
movzx ecx, byte [edx]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi]
add edx, 1
mov dword [esp + 0x20], edx
mov edx, ecx
mov ebx, eax
shr edx, 0x18
and ebx, 0xff00ff
mov ebp, ecx
and eax, 0xff00
mov edi, 0x100
sub edi, edx
imul ebx, edi
imul eax, edi
and ebp, 0xff00ff
and ecx, 0xff00
imul ebp, edx
imul ecx, edx
mov edx, dword [esp + 0x20]
shr ebx, 8
shr eax, 8
shr ebp, 8
add ebx, ebp
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
or ebx, 0xff000000
mov dword [esi], ebx
add esi, 4
sub dword [esp + 0x4c], 1
jne 0x533ce0
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
add dword [esp + 0x40], eax
sub edi, eax
test edi, edi
mov dword [esp + 0x18], edi
jg 0x533bf0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x44]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x24]
add dword [esp + 0x10], eax
mov edx, dword [esp + 0x48]
add ecx, eax
mov eax, dword [esp + 0x24]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jl 0x533bd0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov ebp, dword [esp + 0x4c]
mov eax, ebp
call fcn.00502ac0
test al, al
je 0x533f34
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x53423c
lea esp, [esp]
cmp dword [ebx + 8], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x20], 0
jle 0x533ef4
lea ebx, [ebx]
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax]
mov edx, dword [esp + 0x14]
mov edi, dword [edx + ecx*4]
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov ebp, edi
shr ebp, 0x18
je 0x533ecd
mov ebx, ecx
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, ebp
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff00
mov edx, 0x100
and ecx, 0xff00ff
shl esi, 0x18
sub edx, eax
mov dword [esp + 0x24], eax
imul ebx, edx
imul ecx, edx
mov eax, edi
and eax, 0xff00
imul eax, dword [esp + 0x24]
and edi, 0xff00ff
imul edi, dword [esp + 0x24]
shr ebx, 8
shr eax, 8
add ebx, eax
mov eax, dword [esp + 0x4c]
shr ecx, 8
shr edi, 8
add ecx, edi
and ebx, 0xff00
and ecx, 0xff00ff
or ebx, ecx
or ebx, esi
mov dword [eax], ebx
add eax, 4
mov dword [esp + 0x4c], eax
jmp 0x533ed2
add dword [esp + 0x4c], 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add eax, 1
cmp eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
jl 0x533e10
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov ebx, ecx
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x3c]
add edi, dword [ecx + 0x24]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
jl 0x533df0
mov ecx, edx
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
cmp ecx, eax
mov edx, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
jne 0x5340c6
cmp eax, ebp
jne 0x5340c6
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x53423c
cmp dword [ebx + 8], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], 0
jle 0x534086
lea esp, [esp]
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + ecx*4]
mov edi, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x24], eax
mov eax, 0x80808081
mul edx
mov ebp, edx
shr ebp, 7
je 0x53405d
mov ebx, edi
shr ebx, 0x18
mov esi, 0xff
sub esi, ebx
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
mov eax, ebp
sar edx, 7
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, ebx
cdq
idiv esi
mov ebx, ecx
and ebx, 0xff00ff
imul ebx, dword [esp + 0x40]
and ecx, 0xff00
shr ebx, 8
and ebx, 0xff00ff
mov ebp, edi
mov edx, 0x100
and ebp, 0xff00ff
and edi, 0xff00
shl esi, 0x18
imul ecx, eax
imul ebx, eax
imul ecx, dword [esp + 0x40]
sub edx, eax
imul ebp, edx
imul edi, edx
shr ebx, 8
shr ecx, 0x10
shr ebp, 8
shr edi, 8
add ebx, ebp
add ecx, edi
and ebx, 0xff00ff
and ecx, 0xff00
or ebx, ecx
or ebx, esi
mov esi, dword [esp + 0x4c]
mov dword [esi], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add eax, 1
add esi, 4
cmp eax, dword [ecx + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], eax
jl 0x533f90
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov ebx, ecx
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x3c]
add edi, dword [ecx + 0x24]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
jl 0x533f72
mov ecx, edx
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x53423c
jmp 0x5340e0
cmp dword [ebx + 8], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], 0
jle 0x53420f
movzx edx, byte [edi]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edx*4]
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x18]
mov eax, 0x80808081
mul edx
add edi, 1
mov ebp, edx
shr ebp, 7
mov dword [esp + 0x30], edi
je 0x5341e6
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
mov eax, ebp
sar edx, 7
imul eax, eax, 0xff
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff0000
mov ebp, ebx
and ebp, 0xff0000
mov edx, 0x100
shl esi, 0x18
imul edi, eax
sub edx, eax
imul ebp, edx
shr edi, 8
imul edi, dword [esp + 0x40]
mov dword [esp + 0x24], edx
movzx edx, cl
and ecx, 0xff00
imul edx, eax
imul edx, dword [esp + 0x2c]
imul ecx, eax
imul ecx, dword [esp + 0x28]
shr edi, 8
shr ebp, 8
add edi, ebp
movzx ebp, bl
imul ebp, dword [esp + 0x24]
and ebx, 0xff00
imul ebx, dword [esp + 0x24]
shr edx, 0x10
shr ebp, 8
shr ecx, 0x10
and edi, 0xff0000
add edx, ebp
shr ebx, 8
and edx, 0xff
add ecx, ebx
or edi, edx
and ecx, 0xff00
or edi, ecx
or edi, esi
mov esi, dword [esp + 0x4c]
mov dword [esi], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add eax, 1
add esi, 4
cmp eax, dword [ecx + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], eax
jl 0x5340f6
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov ebx, ecx
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x3c]
add edi, dword [ecx + 0x24]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
jl 0x5340e0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x18
mov eax, dword [esp + 0x18]
sub eax, 0
mov edx, dword [esp + 4]
mov byte [edx + 4], 1
je 0x534295
sub eax, 1
jne 0x534292
mov eax, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x14]
push eax
push edx
push ecx
call fcn.00532910
pop edi
ret 0x18
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jmp 0x5333e0