Function at 0x110cdc9e
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x188
mov eax, dword [0x4fa9d4]
xor eax, esp
mov dword [esp + 0x184], eax
push ebx
mov ebx, ecx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [ebx + 0x24], ecx
jle 0x110ce76f
push ebp
push esi
push edi
nop dword [eax]
xor ebp, ebp
mov dword [esp + 0x10], ebp
cmp dword [ebx + 0x20], ebp
jle 0x110ce75c
nop
cmp dword [ebx + 0xbc], 0
mov dword [esp + 0x1c], 0
jle 0x110ce4c5
lea eax, [ebx + 0xd98]
lea edi, [ebx + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], edi
mov eax, dword [edi + 8]
mov esi, dword [ebx + 0x18]
shl eax, 7
add eax, 0xd0
mov ecx, dword [ebx + 0x1c]
add eax, ebx
mov dword [esp + 0x48], eax
mov eax, esi
cdq
idiv dword [edi]
mov ebp, eax
mov eax, ecx
cdq
idiv dword [edi + 4]
mov dword [esp + 0x4c], ebp
mov edi, eax
mov eax, ebp
cdq
and edx, 7
mov dword [esp + 0x50], edi
add eax, edx
sar eax, 3
mov dword [esp + 0x34], eax
mov eax, edi
cdq
and edx, 7
lea ebp, [edx + eax]
xor edx, edx
sar ebp, 3
mov dword [esp + 0x18], edx
test ecx, ecx
jle 0x110ce498
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], edi
xor eax, eax
mov dword [esp + 0x30], eax
test esi, esi
jle 0x110ce47f
mov edx, dword [ebx + 0x20]
mov ecx, edx
imul ecx, edi
imul edx, ebp
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [esp + 0x10]
shl edx, 2
mov eax, dword [eax]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0x70], eax
mov eax, dword [ecx]
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x84], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x8c], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0x90], eax
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x98], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0xa4], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xac], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0xb0], eax
mov eax, dword [ecx]
mov dword [esp + 0xb4], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xbc], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc0], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0xc4], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xc8], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xcc], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0xd0], eax
mov eax, dword [ecx]
mov dword [esp + 0xd4], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xdc], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xe0], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0xe4], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xe8], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xec], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0xf0], eax
mov eax, dword [ecx]
mov dword [esp + 0xf4], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xf8], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x100], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x104], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x108], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x10c], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0x110], eax
mov eax, dword [ecx]
mov dword [esp + 0x114], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x118], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x11c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x120], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x124], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x128], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x12c], eax
mov eax, dword [ecx + 0x1c]
add ecx, edx
mov dword [esp + 0x130], eax
mov eax, dword [ecx]
mov dword [esp + 0x134], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x138], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x13c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x140], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x144], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x148], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x14c], eax
mov eax, dword [ecx + 0x1c]
mov ecx, ebx
mov dword [esp + 0x150], eax
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x50]
call fcn.110d5b4e
mov esi, dword [ebx + 0x20]
mov ecx, esi
mov eax, dword [esp + 0x2c]
imul ecx, edi
mov eax, dword [eax]
add ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x10]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
cmp ecx, 1
jne 0x110ce320
cmp ebp, ecx
jne 0x110ce3d9
movzx eax, byte [esp + 0x154]
mov dword [edx], eax
movzx eax, byte [esp + 0x155]
mov dword [edx + 4], eax
movzx eax, byte [esp + 0x156]
mov dword [edx + 8], eax
movzx eax, byte [esp + 0x157]
mov dword [edx + 0xc], eax
movzx eax, byte [esp + 0x158]
mov dword [edx + 0x10], eax
movzx eax, byte [esp + 0x159]
mov dword [edx + 0x14], eax
movzx eax, byte [esp + 0x15a]
mov dword [edx + 0x18], eax
movzx eax, byte [esp + 0x15b]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [edx + eax*4]
movzx eax, byte [esp + 0x15c]
mov dword [ecx], eax
movzx eax, byte [esp + 0x15d]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x15e]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x15f]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x160]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x161]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x162]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x163]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x164]
mov dword [ecx], eax
movzx eax, byte [esp + 0x165]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x166]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x167]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x168]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x169]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x16a]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x16b]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x16c]
mov dword [ecx], eax
movzx eax, byte [esp + 0x16d]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x16e]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x16f]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x170]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x171]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x172]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x173]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x174]
mov dword [ecx], eax
movzx eax, byte [esp + 0x175]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x176]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x177]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x178]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x179]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x17a]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x17b]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x17c]
mov dword [ecx], eax
movzx eax, byte [esp + 0x17d]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x17e]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x17f]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x180]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x181]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x182]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x183]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x184]
mov dword [ecx], eax
movzx eax, byte [esp + 0x185]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x186]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x187]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x188]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x189]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x18a]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x18b]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x20]
lea ecx, [ecx + eax*4]
movzx eax, byte [esp + 0x18c]
mov dword [ecx], eax
movzx eax, byte [esp + 0x18d]
mov dword [ecx + 4], eax
movzx eax, byte [esp + 0x18e]
mov dword [ecx + 8], eax
movzx eax, byte [esp + 0x18f]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x190]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x191]
mov dword [ecx + 0x14], eax
movzx eax, byte [esp + 0x192]
mov dword [ecx + 0x18], eax
movzx eax, byte [esp + 0x193]
mov dword [ecx + 0x1c], eax
jmp 0x110ce464
cmp ecx, 2
jne 0x110ce3d9
cmp ebp, ecx
jne 0x110ce3d9
lea ecx, [edx + esi*4]
mov edi, 8
lea esi, [esp + 0x155]
movzx eax, byte [esi - 1]
lea esi, [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [edx + 4], eax
mov dword [edx], eax
movzx eax, byte [esi - 8]
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 8], eax
movzx eax, byte [esi - 7]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x10], eax
movzx eax, byte [esi - 6]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], eax
mov dword [edx + 0x1c], eax
mov dword [edx + 0x18], eax
movzx eax, byte [esi - 5]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x20], eax
movzx eax, byte [esi - 4]
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], eax
mov dword [edx + 0x2c], eax
mov dword [edx + 0x28], eax
movzx eax, byte [esi - 3]
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x30], eax
mov dword [edx + 0x34], eax
mov dword [edx + 0x30], eax
movzx eax, byte [esi - 2]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], eax
mov dword [edx + 0x3c], eax
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x20]
shl eax, 3
add edx, eax
add ecx, eax
sub edi, 1
jne 0x110ce340
jmp 0x110ce460
xor edi, edi
mov dword [esp + 0x14], 8
mov dword [esp + 0x3c], edi
nop dword [eax]
mov eax, edx
mov dword [esp + 0x44], 8
mov dword [esp + 0x40], eax
nop
mov esi, eax
test ebp, ebp
jle 0x110ce437
mov dword [esp + 0x38], ebp
nop word [eax + eax]
test ecx, ecx
jle 0x110ce426
movzx eax, byte [esp + edi + 0x154]
mov edi, esi
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
sub dword [esp + 0x38], 1
mov eax, dword [ebx + 0x20]
lea esi, [esi + eax*4]
jne 0x110ce40e
mov eax, dword [esp + 0x40]
lea esi, [ecx*4]
inc edi
add eax, esi
mov dword [esp + 0x3c], edi
sub dword [esp + 0x44], 1
mov dword [esp + 0x40], eax
jne 0x110ce3fe
mov eax, dword [ebx + 0x20]
imul eax, ebp
sub dword [esp + 0x14], 1
lea edx, [edx + eax*4]
jne 0x110ce3ee
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x4c]
mov esi, dword [ebx + 0x18]
mov dword [esp + 0x30], eax
cmp eax, esi
jl 0x110cdd71
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x50]
add edi, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], edi
cmp edx, dword [ebx + 0x1c]
jl 0x110cdd63
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
inc eax
add dword [esp + 0x2c], 4
add edi, 0x14
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
cmp eax, dword [ebx + 0xbc]
jl 0x110cdd04
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
cmp dword [ebx + 0xc0], 0
je 0x110ce748
mov eax, dword [ebx + 0xbc]
cmp eax, 3
jne 0x110ce603
xor esi, esi
mov dword [esp + 0x18], esi
cmp dword [ebx + 0x1c], esi
jle 0x110ce748
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x14], ecx
nop dword [eax]
mov eax, dword [ebx + 0x20]
mov edi, dword [ebx + 0xd98]
imul eax, ecx
mov ecx, dword [ebx + 0xda0]
mov dword [esp + 0x1c], 0
add eax, ebp
mov ebp, dword [ebx + 0xd9c]
shl eax, 2
add ecx, eax
add edi, eax
add ebp, eax
mov dword [esp + 0x20], ecx
test edx, edx
jle 0x110ce5e3
mov ecx, dword [ecx]
lea edi, [edi + 4]
mov esi, dword [edi - 4]
lea ebp, [ebp + 4]
mov edx, dword [ebp - 4]
add ecx, 0xffffff80
imul eax, ecx, 0x166e9
add edx, 0xffffff80
shl esi, 0x10
imul ecx, ecx, 0xffff492e
add eax, 0x8000
add eax, esi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov dword [edi - 4], eax
imul eax, edx, 0x5819
sub ecx, eax
lea eax, [ecx + 0x8000]
mov ecx, dword [esp + 0x20]
add eax, esi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov dword [ebp - 4], eax
imul eax, edx, 0x1c5a2
add eax, 0x8000
add eax, esi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx + 0x18]
inc eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
cmp eax, edx
jl 0x110ce535
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc esi
mov ebp, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ecx
cmp esi, dword [ebx + 0x1c]
jl 0x110ce4fe
jmp 0x110ce744
cmp eax, 4
jne 0x110ce748
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [ebx + 0x1c], edi
jle 0x110ce748
mov esi, dword [ebx + 0x18]
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0xd9c]
imul eax, ecx
mov ecx, dword [ebx + 0xda0]
mov dword [esp + 0x1c], 0
add eax, ebp
mov ebp, dword [ebx + 0xd98]
shl eax, 2
add edx, eax
add ecx, eax
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
test esi, esi
jle 0x110ce729
nop
mov esi, dword [edx]
lea ebp, [ebp + 4]
mov edx, dword [ecx]
add esi, 0xffffff80
mov edi, dword [ebp - 4]
add edx, 0xffffff80
imul eax, edx, 0x166e9
mov ecx, 0xff
shl edi, 0x10
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
sub ecx, eax
imul eax, esi, 0x5819
mov dword [ebp - 4], ecx
imul ecx, edx, 0xffff492e
mov edx, dword [esp + 0x20]
sub ecx, eax
lea eax, [ecx + 0x8000]
mov ecx, 0xff
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
sub ecx, eax
imul eax, esi, 0x1c5a2
mov dword [edx], ecx
add edx, 4
mov ecx, 0xff
mov dword [esp + 0x20], edx
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
sub ecx, eax
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, 4
mov esi, dword [ebx + 0x18]
inc eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], eax
cmp eax, esi
jl 0x110ce65e
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc edi
mov ebp, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
cmp edi, dword [ebx + 0x1c]
jl 0x110ce622
mov ebp, dword [esp + 0x10]
add ebp, dword [ebx + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
cmp ebp, dword [ebx + 0x20]
jl 0x110cdcde
add ecx, dword [ebx + 0x1c]
mov dword [esp + 0x28], ecx
cmp ecx, dword [ebx + 0x24]
jl 0x110cdcce
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x188]
pop ebx
xor ecx, esp
call fcn.110e85d7
add esp, 0x188
ret