Function at 0x438a78
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x1fc
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
movzx eax, byte [str._cons]
mov byte [esp + 0x1c0], al
movzx ecx, byte [0x69f2e9]
mov byte [esp + 0x1c1], cl
movzx edx, byte [0x69f2ea]
mov byte [esp + 0x1c2], dl
movzx esi, byte [0x69f2eb]
xchg eax, esi
mov byte [esp + 0x1c3], al
xchg esi, eax
movzx eax, byte [0x69f2ec]
mov byte [esp + 0x1c4], al
movzx ecx, byte [0x69f2f0]
mov byte [esp + 0x1c5], cl
movzx edx, byte [0x69f2f1]
mov byte [esp + 0x1c6], dl
movzx esi, byte [0x69f2f2]
xchg eax, esi
mov byte [esp + 0x1c7], al
xchg esi, eax
movzx eax, byte [0x69f2f3]
mov byte [esp + 0x1c8], al
movzx edi, byte [0x69f2f4]
xchg eax, edi
mov byte [esp + 0x1c9], al
xchg edi, eax
movzx ebx, byte [str._func]
mov byte [esp + 0x1ca], bl
movzx ebx, byte [0x69f2f9]
mov byte [esp + 0x1cb], bl
movzx ebx, byte [0x69f2fa]
mov byte [esp + 0x1cc], bl
movzx ebx, byte [0x69f2fb]
mov byte [esp + 0x1cd], bl
movzx ebx, byte [0x69f2fc]
mov byte [esp + 0x1ce], bl
movzx ebx, byte [str._sin]
mov byte [esp + 0x1cf], bl
movzx ebx, byte [0x69f301]
mov byte [esp + 0x1d0], bl
movzx ebx, byte [0x69f302]
mov byte [esp + 0x1d1], bl
movzx ebx, byte [0x69f303]
mov byte [esp + 0x1d2], bl
movzx ebx, byte [0x69f304]
mov byte [esp + 0x1d3], bl
movzx ebx, byte [str._cos]
mov byte [esp + 0x1d4], bl
movzx ebx, byte [0x69f309]
mov byte [esp + 0x1d5], bl
movzx ebx, byte [0x69f30a]
mov byte [esp + 0x1d6], bl
movzx ebx, byte [0x69f30b]
mov byte [esp + 0x1d7], bl
movzx ebx, byte [0x69f30c]
mov byte [esp + 0x1d8], bl
movzx ebx, byte [str._imp]
mov byte [esp + 0x1d9], bl
movzx ebx, byte [0x69f311]
mov byte [esp + 0x1da], bl
movzx ebx, byte [0x69f312]
mov byte [esp + 0x1db], bl
movzx ebx, byte [0x69f313]
mov byte [esp + 0x1dc], bl
movzx ebx, byte [0x69f314]
mov byte [esp + 0x1dd], bl
mov byte [esp + 0x1de], cl
mov byte [esp + 0x1df], dl
xchg eax, esi
mov byte [esp + 0x1e0], al
xchg esi, eax
mov byte [esp + 0x1e1], al
xchg eax, edi
mov byte [esp + 0x1e2], al
xchg edi, eax
movzx eax, byte [str._Fish]
mov byte [esp + 0x1e3], al
movzx ecx, byte [0x69f319]
mov byte [esp + 0x1e4], cl
movzx edx, byte [0x69f31a]
mov byte [esp + 0x1e5], dl
movzx esi, byte [0x69f31b]
xchg eax, esi
mov byte [esp + 0x1e6], al
xchg esi, eax
movzx eax, byte [0x69f31c]
mov byte [esp + 0x1e7], al
mov ebx, dword [esp + 0x208]
mov ebp, dword [ebx]
test ebp, ebp
jne 0x438cd5
mov ecx, 0
mov dword [esp + 0x140], ecx
jmp 0x438ce6
mov edx, dword [esp + 0x204]
mov eax, dword [edx + ebp*4]
mov dword [esp + 0x140], eax
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x144], ecx
sar ecx, 0x1f
mov edx, ecx
xor edx, dword [esp + 0x140]
sub edx, ecx
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], edx
cmp edx, 8
jne 0x438d96
mov ecx, dword [esp + 0x204]
mov edx, dword [ecx + ebp*4 + 8]
mov dword [esp + 0x150], edx
lea ecx, [esp + 0x150]
mov dword [esp], ecx
lea edx, [esp + 0x154]
mov dword [esp + 4], edx
lea ecx, [esp + 0x1a4]
mov dword [esp + 8], ecx
mov edx, 0x50
mov dword [esp + 0xc], edx
call fcn.0040d0a0
cmp eax, 1
je 0x438d96
lea ecx, [0x69f320]
mov edx, 0x14
mov ebp, ecx
lea eax, [esp + 0x154]
mov edi, eax
mov esi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp]
add ebp, 4
mov dword [edi], ecx
add edi, 4
dec esi
jne 0x438d88
mov edx, dword [esp + 0x210]
mov eax, dword [edx]
mov ebp, eax
dec ebp
cmp ebp, 2
ja case.0x438dab.1
jmp dword [ebp*4 + 0x438db2]
mov ecx, dword [esp + 0x20c]
mov dword [esp + 0x1a8], ecx
lea ebp, [0x64ce18]
mov dword [0x64ce30], ecx
mov edx, dword [esp + 0x214]
mov dword [esp + 0x1ac], edx
mov dword [0x64ce34], edx
mov edi, 1
mov dword [0x64ce38], edi
lea eax, [0x69f374]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov esi, 4
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [esp], ebp
call fcn.0063e1f0
mov edx, dword [esp + 0x144]
test edx, edx
jl 0x438eb4
mov eax, dword [esp + 0x1a8]
mov dword [0x64ce30], eax
mov ecx, dword [esp + 0x1ac]
mov dword [0x64ce34], ecx
mov dword [0x64ce38], edi
lea edx, [0x69f378]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov ecx, 7
mov dword [0x64ce24], ecx
mov dword [0x64ce20], esi
mov dword [esp], ebp
lea edx, [esp + 0x140]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov eax, dword [esp + 0x148]
cmp eax, 6
jg 0x438f4f
mov ecx, dword [esp + 0x1a8]
mov dword [0x64ce30], ecx
mov edx, dword [esp + 0x1ac]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f380]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov edx, 5
mov dword [0x64ce20], edx
mov dword [esp], ebp
mov eax, dword [esp + 0x148]
imul eax, eax, 5
lea ecx, [esp + 0x1c0]
add ecx, eax
lea edx, [ecx - 5]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov eax, dword [esp + 0x148]
cmp eax, 7
jne 0x438fe3
mov ecx, dword [esp + 0x1a8]
mov dword [0x64ce30], ecx
mov edx, dword [esp + 0x1ac]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f388]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov edx, 7
mov dword [0x64ce24], edx
mov dword [0x64ce20], esi
mov dword [esp], ebp
mov eax, dword [ebx]
shl eax, 2
add eax, dword [esp + 0x204]
lea ecx, [eax + 0x14]
mov dword [esp + 4], ecx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov edx, dword [esp + 0x148]
cmp edx, 8
jne 0x439731
mov eax, dword [esp + 0x1a8]
mov dword [0x64ce30], eax
mov ecx, dword [esp + 0x1ac]
mov dword [0x64ce34], ecx
mov dword [0x64ce38], edi
lea edx, [0x69f398]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov ecx, 0x50
mov dword [0x64ce20], ecx
mov dword [esp], ebp
lea edx, [esp + 0x154]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov ebx, dword [esp + 0x20c]
lea ebp, [0x64ce18]
mov dword [0x64ce30], ebx
mov eax, dword [esp + 0x214]
mov dword [esp + 0x1b0], eax
mov dword [0x64ce34], eax
mov edi, 1
mov dword [0x64ce38], edi
lea ecx, [0x69f3a4]
mov dword [0x64ceac], ecx
mov edx, 0x4000208
mov dword [0x64ce18], edx
mov esi, 4
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [esp], ebp
call fcn.0063e1f0
mov eax, dword [esp + 0x140]
test eax, eax
jl 0x439157
mov dword [0x64ce30], ebx
mov ecx, dword [esp + 0x1b0]
mov dword [0x64ce34], ecx
mov dword [0x64ce38], edi
lea edx, [0x69f3a8]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov ecx, 7
mov dword [0x64ce24], ecx
mov dword [0x64ce20], esi
mov dword [esp], ebp
lea edx, [esp + 0x140]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov eax, dword [esp + 0x148]
cmp eax, 3
jg 0x4391eb
mov dword [0x64ce30], ebx
mov ecx, dword [esp + 0x1b0]
mov dword [0x64ce34], ecx
mov dword [0x64ce38], edi
lea edx, [0x69f3b8]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov ecx, 5
mov dword [0x64ce20], ecx
mov dword [esp], ebp
mov edx, dword [esp + 0x148]
imul edx, edx, 5
lea eax, [esp + 0x1c0]
add eax, edx
lea ecx, [eax - 5]
mov dword [esp + 4], ecx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov edx, dword [esp + 0x148]
cmp edx, 4
jl 0x43928f
mov eax, dword [esp + 0x148]
cmp eax, 6
jg 0x43928f
mov dword [0x64ce30], ebx
mov ecx, dword [esp + 0x1b0]
mov dword [0x64ce34], ecx
mov dword [0x64ce38], edi
lea edx, [0x69f3c0]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov ecx, 5
mov dword [0x64ce20], ecx
mov dword [esp], ebp
mov edx, dword [esp + 0x148]
imul edx, edx, 5
lea eax, [esp + 0x1c0]
add eax, edx
lea ecx, [eax - 5]
mov dword [esp + 4], ecx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov edx, dword [esp + 0x148]
cmp edx, 7
jne 0x439323
mov dword [0x64ce30], ebx
mov eax, dword [esp + 0x1b0]
mov dword [0x64ce34], eax
mov dword [0x64ce38], edi
lea ecx, [0x69f3c8]
mov dword [0x64ceac], ecx
mov edx, 0x4000208
mov dword [0x64ce18], edx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov eax, 7
mov dword [0x64ce24], eax
mov dword [0x64ce20], esi
mov dword [esp], ebp
mov ecx, dword [esp + 0x208]
mov edx, dword [ecx]
shl edx, 2
add edx, dword [esp + 0x204]
lea eax, [edx + 0x14]
mov dword [esp + 4], eax
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov ecx, dword [esp + 0x148]
cmp ecx, 8
jne 0x439731
mov dword [0x64ce30], ebx
mov edx, dword [esp + 0x1b0]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f3dc]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov edx, 0x50
mov dword [0x64ce20], edx
mov dword [esp], ebp
lea eax, [esp + 0x154]
mov dword [esp + 4], eax
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov ebx, dword [esp + 0x20c]
lea ebp, [0x64ce18]
mov dword [0x64ce30], ebx
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x1b4], ecx
mov dword [0x64ce34], ecx
mov edi, 1
mov dword [0x64ce38], edi
lea edx, [0x69f3e8]
mov dword [0x64ceac], edx
mov eax, 0x4000208
mov dword [0x64ce18], eax
mov esi, 4
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [esp], ebp
call fcn.0063e1f0
mov ecx, dword [esp + 0x140]
test ecx, ecx
jl 0x439490
mov dword [0x64ce30], ebx
mov edx, dword [esp + 0x1b4]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f3ec]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov edx, 7
mov dword [0x64ce24], edx
mov dword [0x64ce20], esi
mov dword [esp], ebp
lea eax, [esp + 0x140]
mov dword [esp + 4], eax
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x1b8], ecx
cmp ecx, 3
jg 0x43952b
mov dword [0x64ce30], ebx
mov edx, dword [esp + 0x1b4]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f400]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov edx, 5
mov dword [0x64ce20], edx
mov dword [esp], ebp
mov eax, dword [esp + 0x1b8]
imul eax, eax, 5
lea ecx, [esp + 0x1c0]
add ecx, eax
lea edx, [ecx - 5]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov eax, dword [esp + 0x1b8]
cmp eax, 4
jl 0x43961d
mov ecx, dword [esp + 0x1b8]
cmp ecx, 6
jg 0x43961d
mov dword [0x64ce30], ebx
mov edx, dword [esp + 0x1b4]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f408]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov edx, 5
mov dword [0x64ce20], edx
mov dword [esp], ebp
mov eax, dword [esp + 0x1b8]
imul eax, eax, 5
lea ecx, [esp + 0x1c0]
add ecx, eax
lea edx, [ecx - 5]
mov dword [esp + 4], edx
call fcn.0063d590
mov eax, 9
mov dword [0x64ce24], eax
mov dword [0x64ce20], esi
mov dword [esp], ebp
mov edi, dword [esp + 0x208]
mov ecx, dword [edi]
shl ecx, 2
add ecx, dword [esp + 0x200]
lea edx, [ecx + 0x18]
mov dword [esp + 4], edx
call fcn.0063d590
mov dword [esp], ebp
mov eax, dword [edi]
shl eax, 2
add eax, dword [esp + 0x200]
lea ecx, [eax + 0x1c]
mov dword [esp + 4], ecx
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov edx, dword [esp + 0x1b8]
cmp edx, 7
jne 0x4396b1
mov dword [0x64ce30], ebx
mov eax, dword [esp + 0x1b4]
mov dword [0x64ce34], eax
mov dword [0x64ce38], edi
lea ecx, [0x69f430]
mov dword [0x64ceac], ecx
mov edx, 0x4000208
mov dword [0x64ce18], edx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov eax, 7
mov dword [0x64ce24], eax
mov dword [0x64ce20], esi
mov dword [esp], ebp
mov ecx, dword [esp + 0x208]
mov edx, dword [ecx]
shl edx, 2
add edx, dword [esp + 0x204]
lea eax, [edx + 0x14]
mov dword [esp + 4], eax
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
jmp 0x439731
mov ecx, dword [esp + 0x1b8]
cmp ecx, 8
jne 0x439731
mov dword [0x64ce30], ebx
mov edx, dword [esp + 0x1b4]
mov dword [0x64ce34], edx
mov dword [0x64ce38], edi
lea eax, [0x69f444]
mov dword [0x64ceac], eax
mov ecx, 0x4000208
mov dword [0x64ce18], ecx
mov dword [0x64ce1c], esi
mov dword [esp], ebp
call fcn.0063d0a0
mov dword [0x64ce28], edi
mov dword [0x64ce24], edi
mov edx, 0x50
mov dword [0x64ce20], edx
mov dword [esp], ebp
lea eax, [esp + 0x154]
mov dword [esp + 4], eax
call fcn.0063d590
mov dword [esp], ebp
call fcn.0063e1f0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
add esp, 0x1fc
ret