Function at 0x101e7da0
Capabilities:
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb8
mov eax, dword [0x102f0d80]
xor eax, esp
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x4c]
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
push esi
push edi
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x90]
sar ebp, 1
push ebp
push ecx
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x64]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd8]
push ecx
push eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], ebp
call fcn.101e8520
movsx esi, word [0x102dce88]
lea edi, [esp + 0x6c]
push ebp
mov eax, edi
mov dword [esp + 0x24], edi
push esi
push eax
mov dword [esp + 0x3c], esi
call fcn.101e83d0
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x14], ebx
test ebx, ebx
jns 0x101e7e56
mov eax, dword [esp + 0x3c]
lea edi, [esp + 0x90]
xor ecx, ecx
mov dword [esp + 0x10], edi
push ebp
push esi
mov word [eax], cx
mov eax, edi
push eax
call fcn.101e83d0
mov ebx, eax
mov dword [esp + 0x30], 1
add esp, 0xc
mov dword [esp + 0x14], ebx
jmp 0x101e7e5c
xor eax, eax
mov dword [esp + 0x24], eax
xor ecx, ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], ecx
mov eax, 1
mov esi, ebp
mov dword [esp + 0x28], eax
nop word [eax + eax]
movsx ecx, word [eax*2 + 0x102dce88]
mov eax, dword [edi + esi*4]
mov edx, ecx
mov ebp, eax
shl edx, 4
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ebp
cmp esi, 8
jne 0x101e7fb2
movsx esi, dx
sar eax, 0x10
imul eax, esi
sar edx, 0xf
inc edx
movzx ecx, bp
imul ecx, esi
sar edx, 1
mov dword [esp + 0x1c], edx
imul edx, ebp
mov ebp, dword [esp + 0x1c]
sar ecx, 0x10
add ecx, eax
add ecx, edx
add ecx, dword [edi + 0x1c]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, ebp
imul eax, ecx
add edx, eax
add edx, dword [edi + 0x18]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, ebp
imul eax, edx
add ecx, eax
add ecx, dword [edi + 0x14]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, ebp
imul eax, ecx
add edx, eax
add edx, dword [edi + 0x10]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, ebp
imul eax, edx
add ecx, eax
add ecx, dword [edi + 0xc]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, ebp
imul eax, ecx
add edx, eax
add edx, dword [edi + 8]
movzx ecx, dx
mov eax, edx
imul ecx, esi
sar eax, 0x10
imul eax, esi
sar ecx, 0x10
add ecx, eax
mov eax, ebp
imul eax, edx
add ecx, eax
add ecx, dword [edi + 4]
movzx ebp, cx
mov eax, ecx
imul ebp, esi
sar eax, 0x10
imul eax, esi
mov esi, dword [esp + 0x18]
sar ebp, 0x10
add ebp, eax
mov eax, dword [esp + 0x1c]
imul eax, ecx
mov ecx, dword [esp + 0x34]
add ebp, eax
lea eax, [esi - 1]
add ebp, dword [edi]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
jmp 0x101e8000
lea eax, [esi - 1]
mov esi, eax
mov dword [esp + 0x2c], eax
test esi, esi
js 0x101e7ffc
movsx ebx, dx
sar edx, 0xf
inc edx
sar edx, 1
movzx ecx, bp
mov eax, ebp
imul ecx, ebx
sar eax, 0x10
imul eax, ebx
imul ebp, edx
sar ecx, 0x10
add ecx, dword [edi + esi*4]
add ecx, eax
add ebp, ecx
sub esi, 1
jns 0x101e7fc8
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
test ebx, ebx
jg 0x101e800e
cmp ebp, eax
jge 0x101e801e
test ebx, ebx
js 0x101e829d
neg eax
cmp ebp, eax
jg 0x101e829d
xor eax, eax
mov dword [esp + 0x40], 0xffffff00
test ebp, ebp
sete al
xor edx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, eax
and eax, 1
sar ecx, 1
add ecx, eax
mov eax, dword [esp + 0x4c]
mov edi, ecx
mov dword [esp + 0x44], ecx
shl edi, 4
cmp dword [esp + 0x18], 8
jne 0x101e816e
movzx edx, ax
mov ecx, eax
sar ecx, 0x10
movsx esi, di
imul edx, esi
imul ecx, esi
sar edi, 0xf
inc edi
sar edi, 1
sar edx, 0x10
add edx, ecx
mov ecx, edi
imul ecx, eax
mov eax, dword [esp + 0x10]
add edx, ecx
add edx, dword [eax + 0x1c]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [eax + 0x18]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x10]
add edx, dword [eax + 0x14]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [eax + 0x10]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x10]
add edx, dword [eax + 0xc]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul ecx, esi
imul eax, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [eax + 8]
movzx edx, cx
mov eax, ecx
imul edx, esi
sar edx, 0x10
sar eax, 0x10
imul eax, esi
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x10]
add edx, dword [eax + 4]
movzx eax, dx
mov ecx, edx
imul eax, esi
sar ecx, 0x10
imul ecx, esi
imul edi, edx
sar eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x10]
add eax, edi
add eax, dword [ecx]
jmp 0x101e81ac
mov esi, dword [esp + 0x2c]
test esi, esi
js 0x101e81b4
mov ebp, dword [esp + 0x10]
movsx ebx, di
sar edi, 0xf
inc edi
sar edi, 1
movzx edx, ax
mov ecx, eax
imul edx, ebx
sar ecx, 0x10
imul ecx, ebx
imul eax, edi
sar edx, 0x10
add edx, ecx
add edx, dword [ebp + esi*4]
add eax, edx
sub esi, 1
jns 0x101e8183
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
test ebx, ebx
jg 0x101e81be
test eax, eax
jns 0x101e81c4
test ebx, ebx
js 0x101e81d4
test eax, eax
jg 0x101e81d4
mov esi, dword [esp + 0x40]
mov ebp, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ebp
jmp 0x101e81f5
mov esi, dword [esp + 0x40]
mov ebx, eax
mov dword [esp + 0x20], ecx
mov eax, 0x80
mov ecx, edx
mov dword [esp + 0x14], ebx
sar eax, cl
mov ecx, dword [esp + 0x34]
add esi, eax
mov dword [esp + 0x40], esi
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 3
jl 0x101e8037
mov eax, ebx
mov ecx, ebx
cdq
sub ecx, ebp
xor eax, edx
sub eax, edx
cmp eax, 0x10000
jge 0x101e8224
test ecx, ecx
je 0x101e822e
mov eax, ecx
shl ebx, 5
sar eax, 1
add eax, ebx
jmp 0x101e8229
sar ecx, 5
mov eax, ebx
cdq
idiv ecx
add esi, eax
mov ebx, dword [esp + 0x28]
mov ecx, 0x7fff
mov edx, ebx
shl edx, 8
add edx, esi
cmp edx, ecx
movzx eax, dx
mov edx, dword [esp + 0x24]
cmovl ecx, eax
mov eax, dword [esp + 0x3c]
mov word [eax + edx*2], cx
inc edx
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0xd4]
jge 0x101e83b1
movsx ecx, word [ebx*2 + 0x102dce86]
mov eax, edx
mov esi, dword [esp + 0x18]
and eax, 1
mov ebx, 0x1000
mov dword [esp + 0x20], ecx
mov edi, dword [esp + eax*4 + 0x54]
mov eax, edx
and eax, 2
mov dword [esp + 0x10], edi
shl eax, 0xc
sub ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
jmp 0x101e7e80
mov eax, dword [esp + 0x28]
mov ebx, ebp
inc eax
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], ecx
cmp eax, 0x80
jle 0x101e7e80
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, 0x10
jg 0x101e8376
mov ebx, dword [esp + 0x50]
mov ecx, eax
mov edx, 1
mov eax, 0x10000
shl edx, cl
sub eax, edx
push eax
push dword [esp + 0xd8]
push ebx
call fcn.101e4b20
push esi
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x70]
push eax
push ebx
call fcn.101e8520
movsx esi, word [0x102dce88]
lea edi, [esp + 0x78]
mov ebp, dword [esp + 0x34]
mov eax, edi
push ebp
push esi
push eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], esi
call fcn.101e83d0
mov ebx, eax
add esp, 0x28
mov dword [esp + 0x14], ebx
test ebx, ebx
jns 0x101e836b
mov eax, dword [esp + 0x3c]
lea edi, [esp + 0x90]
xor ecx, ecx
mov dword [esp + 0x10], edi
push ebp
push esi
mov word [eax], cx
mov eax, edi
push eax
call fcn.101e83d0
mov ebx, eax
mov dword [esp + 0x30], 1
add esp, 0xc
mov dword [esp + 0x14], ebx
jmp 0x101e7e6a
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x101e7e6a
mov ebx, dword [esp + 0xd4]
mov eax, 0x8000
cdq
lea ecx, [ebx + 1]
idiv ecx
mov edx, dword [esp + 0x3c]
mov ecx, 1
mov word [edx], ax
cmp ebx, ecx
jle 0x101e83b1
nop dword [eax + eax]
mov ax, word [edx + ecx*2 - 2]
add ax, word [edx]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebx
jl 0x101e83a0
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011bad5
add esp, 0xb8
ret