Function at 0x103cdae0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 4], ebx
mov edx, dword [ebx + 0x6830]
mov eax, dword [edx]
mov edi, dword [edx + 0x28]
mov dword [ebp - 0x10], edi
mov eax, dword [eax + 4]
mov esi, dword [eax + edx + 0x4c]
lea edx, [ebx + 0xf18]
mov eax, dword [ecx + 0x58c]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
test eax, eax
je 0x103cdb34
mov eax, dword [ebx + 0xf1c]
imul eax, dword [edx]
cmp dword [ecx + 0x590], eax
jb 0x103cdb34
mov cl, 1
jmp 0x103cdb39
xor cl, cl
mov dword [ebp - 0x18], edx
cmp byte [ebx + 0x35e], 0
mov eax, dword [ebx + 0x344]
mov byte [ebp - 0xc], cl
jne 0x103ce090
cmp dword [ebp + 8], 0
jne 0x103cdf1c
test eax, eax
je 0x103cdc0b
test cl, cl
je 0x103cdc0b
mov ecx, dword [ebx + 4]
push 0
push 0
push 0
push 0
push 0
push edi
call fcn.1033bbe0
mov esi, eax
test esi, esi
je 0x103cdf42
add esi, dword [ebp - 8]
xor edi, edi
cmp dword [ebx + 0xf1c], edi
jbe 0x103cdbfe
mov ecx, dword [ebp + 0xc]
nop word [eax + eax]
mov eax, dword [ebx + 0xf18]
mov ecx, dword [ecx + 0x58c]
test eax, eax
je 0x103cdbe0
test esi, esi
je 0x103cdbd0
push eax
test ecx, ecx
je 0x103cdbc5
push ecx
push esi
call fcn.10425d60
add esp, 0xc
jmp 0x103cdbe0
push 0
push esi
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov ecx, dword [ebp + 0xc]
inc edi
mov eax, dword [ebx + 0xf18]
add esi, 0x100
add dword [ecx + 0x58c], eax
cmp edi, dword [ebx + 0xf1c]
jb 0x103cdba0
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.102ac650
mov esi, dword [ebp - 8]
cmp dword [ebx + 0x344], 0
je 0x103cdd33
mov eax, dword [ebx + 0x481c]
test eax, eax
js 0x103cdc37
mov ecx, dword [ebx + 0x480c]
imul eax, eax, 0xe0
sub ecx, dword [eax + ebx + 0x3f8c]
jmp 0x103cdc3a
or ecx, 0xffffffff
push dword [ebp - 0xc]
movzx eax, byte [ebx + 0x34d]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebx + 0x428]
push dword [ebx + 0xe50]
push dword [ebx + 0x328]
push eax
movzx eax, byte [ebx + 0x34c]
push eax
push ecx
mov ecx, dword [ebx + 0x228]
push 0
push esi
push edi
push dword [ebp + 0x10]
push dword [ebx + 0x4870]
push dword [ebx + 0x30]
call fcn.103dda90
test eax, eax
jne 0x103ce320
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 0x693c]
push eax
push 1
push eax
push eax
push eax
push edi
call fcn.1033bbe0
mov edi, eax
test edi, edi
je 0x103cdf42
mov ecx, dword [ebx + 0xf18]
imul ecx, dword [ebx + 0xf1c]
add edi, dword [ebp - 8]
push ecx
push 0
push esi
call fcn.10425c00
add esp, 0xc
mov dword [ebp + 8], 0
cmp dword [ebx + 0xf1c], 0
jbe 0x103cdd29
mov eax, dword [ebx + 0xf18]
test eax, eax
je 0x103cdd0e
test esi, esi
je 0x103cdcfe
push eax
test edi, edi
je 0x103cdcf3
push edi
push esi
call fcn.10425d60
add esp, 0xc
jmp 0x103cdd0e
push 0
push esi
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebp + 8]
add edi, 0x100
add esi, dword [ebx + 0xf18]
inc eax
mov dword [ebp + 8], eax
cmp eax, dword [ebx + 0xf1c]
jb 0x103cdcd4
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.102ac650
mov ecx, dword [ebx + 0x344]
test ecx, ecx
jne 0x103cdd46
cmp byte [ebp - 0xc], cl
je 0x103ce31e
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x58c]
mov dword [ebp - 0x14], esi
test esi, esi
je 0x103cdd5a
test ecx, ecx
je 0x103cdd63
mov eax, dword [ebx + 0x693c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebx + 4]
push 0
push 0
push 0
push 0
push 0
push edi
call fcn.1033bbe0
mov dword [ebp - 0x18], eax
test eax, eax
je 0x103cdf42
xor al, al
mov byte [ebp + 0xf], 0
mov byte [ebp + 0x1b], al
cmp byte [ebx + 0x655c], al
jbe 0x103cdf0a
nop word [eax + eax]
cmp byte [ebx + 0x655d], 0
mov byte [ebp + 0x1f], 0
jbe 0x103cdef6
mov ecx, dword [ebx + 0x4890]
xor eax, eax
mov edi, dword [ebx + 0x6830]
test ecx, ecx
je 0x103cddde
mov eax, dword [edi]
xor edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + edi + 0x34]
div ecx
movzx ecx, byte [ebp + 0xf]
and eax, 0xffffff00
add ecx, ecx
imul eax, ecx
mov esi, dword [ebp - 8]
add esi, eax
mov eax, dword [edi]
add esi, dword [ebp - 0x18]
mov eax, dword [eax + 4]
push dword [eax + edi + 0x50]
push 0
push esi
call fcn.10425c00
movzx edx, byte [ebp + 0xf]
xor al, al
add esp, 0xc
mov byte [ebp + 0xb], al
lea ecx, [edx + 0x655e]
add ecx, ebx
mov dword [ebp - 0xc], ecx
cmp byte [ecx], al
jbe 0x103cdedc
shl edx, 7
mov dword [ebp - 0x1c], edx
nop dword [eax]
mov edi, dword [ebp - 4]
movzx eax, al
add eax, edx
mov edi, dword [edi + 0xf18]
movzx ecx, byte [eax + ebx + 0x6561]
movzx eax, byte [ecx + ebx + 0x66e1]
add ecx, ebx
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebx + eax*4 + 0x70]
mov eax, dword [ebx + eax*4 + 0x74]
sub eax, edx
imul edi, edx
mov dword [ebp + 0x10], eax
movzx eax, byte [ecx + 0x6761]
mov ecx, dword [ebx + eax*4 + 0x2c]
add edi, ecx
mov ebx, dword [ebx + eax*4 + 0x30]
add edi, dword [ebp - 0x14]
sub ebx, ecx
cmp dword [ebp + 0x10], 0
jle 0x103cdec3
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
test ebx, ebx
je 0x103cdeaf
test esi, esi
je 0x103cde99
push ebx
test edi, edi
je 0x103cde8e
push edi
push esi
call fcn.10425d60
add esp, 0xc
jmp 0x103cdea9
push 0
push esi
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
add edi, dword [ecx + 0xf18]
add esi, 0x100
sub eax, 1
mov dword [ebp + 0x10], eax
jne 0x103cde75
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0xc]
inc al
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov byte [ebp + 0xb], al
cmp al, byte [ecx]
jb 0x103cde20
mov dl, byte [ebp + 0x1f]
inc byte [ebp + 0xf]
inc dl
mov byte [ebp + 0x1f], dl
cmp dl, byte [ebx + 0x655d]
jb 0x103cddb1
mov al, byte [ebp + 0x1b]
inc al
mov byte [ebp + 0x1b], al
cmp al, byte [ebx + 0x655c]
jb 0x103cdda0
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.102ac650
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test eax, eax
jne 0x103cdf28
test cl, cl
je 0x103ce31e
mov ecx, dword [ebx + 4]
push 0
push 0
push 0
push 0
push 0
push edi
call fcn.1033bbe0
mov dword [ebp + 0x18], eax
test eax, eax
jne 0x103cdf50
pop edi
pop esi
mov eax, 0xa
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor cl, cl
xor dl, dl
mov byte [ebp + 0xf], cl
mov byte [ebp + 0x1f], dl
cmp byte [ebx + 0x655c], cl
jbe 0x103ce07e
nop word [eax + eax]
cmp byte [ebx + 0x655d], 0
mov byte [ebp + 0xb], 0
jbe 0x103ce06a
mov edi, dword [ebx + 0x4890]
mov edx, dword [ebx + 0x6830]
mov dword [ebp + 0x10], 0
test edi, edi
je 0x103cdfc3
mov eax, dword [edx]
movzx esi, cl
mov ecx, dword [ebx + 0x6830]
add esi, esi
mov dword [ebp + 0x10], ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x34]
xor edx, edx
div edi
and eax, 0xffffff00
imul esi, eax
add esi, dword [ebp + 0x18]
add esi, dword [ebp - 8]
jmp 0x103cdfd3
add esi, dword [ebp + 0x10]
mov ecx, edx
add esi, eax
mov dword [ebp + 0x10], ecx
xor eax, eax
test edi, edi
je 0x103ce000
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + ecx + 0x34]
div edi
movzx edx, byte [ebx + 0x1610]
movzx ecx, byte [ebp + 0xf]
and eax, 0xffffff00
add edx, ecx
imul eax, edx
mov edx, dword [ebx + 0x6830]
add eax, eax
mov ecx, dword [ebp - 8]
add ecx, eax
mov eax, dword [edx]
add ecx, dword [ebp + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx + 0x50]
test eax, eax
je 0x103ce045
test ecx, ecx
je 0x103ce035
push eax
test esi, esi
je 0x103ce02a
push esi
push ecx
call fcn.10425d60
add esp, 0xc
jmp 0x103ce045
push 0
push ecx
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov al, byte [ebp + 0xb]
mov cl, byte [ebp + 0xf]
inc al
mov esi, dword [ebp - 8]
inc cl
cmp al, byte [ebx + 0x655d]
mov byte [ebp + 0xb], al
mov eax, dword [ebp + 0x18]
mov byte [ebp + 0xf], cl
jb 0x103cdf81
mov dl, byte [ebp + 0x1f]
inc dl
mov byte [ebp + 0x1f], dl
cmp dl, byte [ebx + 0x655c]
jb 0x103cdf70
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.102ac650
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test eax, eax
jne 0x103ce09c
test cl, cl
je 0x103ce31e
cmp dword [ebp + 8], 0
jne 0x103ce31e
mov ecx, dword [ebx + 0x364]
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
push 0
mov eax, dword [ecx + 0x74]
push ecx
mov ecx, dword [ebx + 4]
mov esi, dword [eax + 0x24]
mov eax, dword [ebx + 0x24]
mov edi, dword [eax]
call fcn.1033bbc0
mov ecx, dword [ebx + 0x24]
push eax
push esi
push 0
push dword [ebx + 0x364]
call dword [edi + 0x30]
test eax, eax
jne 0x103ce320
cmp byte [ebp - 0xc], al
je 0x103ce136
cmp dword [ebx + 0x344], eax
je 0x103ce1ca
mov eax, dword [ebx + 0xf1c]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x24]
push 0
push 0
mov edx, dword [edx]
mov esi, dword [ecx]
push 0
push 0
push 0x100
push eax
push edx
push 0
push edx
push eax
mov eax, dword [ebp + 0xc]
push edx
push dword [ebx + 0x364]
push dword [eax + 0x58c]
call dword [esi + 0x44]
mov edx, dword [ebx + 0x364]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0x100
cmp dword [ebx + 0x344], 0
je 0x103ce1ca
mov eax, dword [ebx + 0x481c]
test eax, eax
js 0x103ce162
mov ecx, dword [ebx + 0x480c]
imul eax, eax, 0xe0
sub ecx, dword [eax + ebx + 0x3f8c]
jmp 0x103ce165
or ecx, 0xffffffff
push dword [ebp - 0xc]
movzx eax, byte [ebx + 0x34d]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebx + 0x428]
push dword [ebx + 0xe50]
push dword [ebx + 0x328]
push eax
movzx eax, byte [ebx + 0x34c]
push eax
push ecx
mov ecx, dword [ebx + 0x228]
push 0
push 0
push dword [ebx + 0x364]
push dword [ebp + 0x10]
push dword [ebx + 0x4870]
push dword [ebx + 0x30]
call fcn.103dda90
test eax, eax
jne 0x103ce320
mov eax, dword [ebx + 0x364]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x100
mov ecx, dword [ebx + 0x6830]
mov byte [ebp + 0xf], 0
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx + 0x4c]
mov dword [ebp - 0x1c], eax
xor al, al
mov byte [ebp + 0x1b], al
cmp byte [ebx + 0x655c], al
jbe 0x103ce31e
nop word [eax + eax]
xor cl, cl
mov byte [ebp + 0xb], cl
cmp byte [ebx + 0x655d], cl
jbe 0x103ce30d
mov edi, dword [ebx + 0x4890]
xor eax, eax
mov ch, byte [ebp + 0xf]
mov edx, dword [ebx + 0x6830]
movzx esi, ch
test edi, edi
je 0x103ce244
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
lea ecx, [esi + esi]
mov eax, dword [eax + edx + 0x34]
xor edx, edx
div edi
and eax, 0xffffff00
imul eax, ecx
mov cl, byte [ebp + 0xb]
add eax, dword [ebp - 0x1c]
lea edx, [esi + 0x655e]
add edx, ebx
mov dword [ebp + 0x10], eax
xor al, al
mov dword [ebp - 8], edx
mov byte [ebp + 0x1f], al
cmp byte [edx], al
jbe 0x103ce2f6
shl esi, 7
mov dword [ebp - 0x20], esi
movzx eax, al
add eax, esi
mov esi, dword [ebp + 0x14]
push 0
push 0
push 0
movzx ecx, byte [eax + ebx + 0x6561]
movzx eax, byte [ecx + ebx + 0x66e1]
add ecx, ebx
push dword [ebp + 0x10]
push 0x100
mov ebx, dword [esi + eax*4 + 0x70]
mov eax, dword [esi + eax*4 + 0x74]
sub eax, ebx
mov dword [ebp - 0x18], eax
movzx eax, byte [ecx + 0x6761]
push dword [ebp - 0x18]
mov edx, dword [esi + eax*4 + 0x2c]
mov esi, dword [esi + eax*4 + 0x30]
mov eax, dword [ebp - 4]
sub esi, edx
push esi
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x10]
imul eax, ebx
mov ebx, dword [ebp - 0x18]
mov edi, dword [ecx]
add eax, edx
push eax
push dword [ebp - 0x10]
push ebx
push esi
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call dword [edi + 0x44]
mov al, byte [ebp + 0x1f]
mov ecx, dword [ebp - 8]
inc al
mov esi, dword [ebp - 0x20]
shl ebx, 8
add dword [ebp + 0x10], ebx
mov ebx, dword [ebp - 4]
mov byte [ebp + 0x1f], al
cmp al, byte [ecx]
jb 0x103ce268
mov cl, byte [ebp + 0xb]
inc byte [ebp + 0xf]
inc cl
mov byte [ebp + 0xb], cl
cmp cl, byte [ebx + 0x655d]
jb 0x103ce211
mov al, byte [ebp + 0x1b]
inc al
mov byte [ebp + 0x1b], al
cmp al, byte [ebx + 0x655c]
jb 0x103ce200
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18