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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3dc
mov eax, dword [0x10019078]
xor eax, esp
mov dword [esp + 0x3d8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push ebx
push esi
push edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
call dword [0x1001117c]
xor ebx, ebx
cmp eax, ebx
je 0x1000150e
push eax
call dword [0x1001115c]
push eax
call dword [0x10011168]
push eax
call dword [0x10011158]
test eax, eax
je 0x1000150e
mov byte [0x10019be7], 1
mov edi, 0xb
lea esi, [esp + 0x20]
mov dword [0x10019bf8], 0xfffffffe
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.10002670
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x30]
xor eax, eax
lea esi, [esp + 0x3c]
mov dword [esp + 0x50], 7
mov word [esp + 0x3c], ax
call fcn.100025a0
cmp dword [esp + 0x50], 8
mov ecx, dword [esp + 0x3c]
jae 0x10001563
mov ecx, esi
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov edx, eax
cmp esi, 0x10
jae 0x10001576
lea edx, [esp + 0x20]
add edx, dword [esp + 0x30]
cmp esi, 0x10
jae 0x10001583
lea eax, [esp + 0x20]
mov edi, 2
cmp eax, edx
je 0x1000159e
lea esp, [esp]
movsx si, byte [eax]
mov word [ecx], si
inc eax
add ecx, edi
cmp eax, edx
jne 0x10001590
push 0x98
xor ebx, ebx
lea ecx, [esp + 0x60]
push ebx
push ecx
call fcn.100078d0
mov esi, dword [0x1001100c]
add esp, 0xc
push 1
push edi
push ebx
push ebx
mov dword [esp + 0x68], 0x9c
mov dword [esp + 0x6c], 6
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edi
call esi
push 1
push 1
push edx
push eax
call esi
push 1
push 8
push edx
push eax
call esi
push edx
push eax
push 0xb
lea edx, [esp + 0x64]
push edx
call dword [0x10011020]
fld qword [0x10013380]
mov esi, 0x1e8b
mov dword [0x1001ad88], eax
mov dword [0x10019bf8], esi
call fcn.1000ae40
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0x18]
fld qword [0x10013378]
call fcn.1000af70
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [0x1001b4f4]
fmul dword [esp + 0x18]
fstp dword [0x1001ae98]
cmp dword [eax], ebx
jne 0x10001683
cmp dword [esp + 0x50], 8
jb 0x10001658
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.100036ed
add esp, 4
cmp dword [esp + 0x34], 0x10
jb 0x1000166c
mov edx, dword [esp + 0x20]
push edx
call fcn.100036ed
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3d8]
xor ecx, esp
call fcn.10002d14
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [eax*4 + 0x1001b0e0], eax
inc eax
sar esi, 0x1f
cmp eax, 0x100
jb 0x10001685
movsx eax, byte [0x1001aea5]
push eax
mov dword [0x10019bf8], esi
call fcn.10003323
add esp, 4
test eax, eax
je 0x100016b7
mov byte [0x1001ad92], bl
movzx eax, byte [0x1001aec9]
mov esi, dword [esp + 0xc]
imul eax, eax, 0xffffffb2
xor eax, 0x5f975
neg eax
mov dword [esi], ebx
mov ebx, dword [0x1001b4f4]
mov dword [esp + 0xc], eax
mov ecx, 0x1001b0e4
lea ecx, [ecx]
xor edx, edx
lea eax, [edi - 2]
div dword [ebx]
mov eax, dword [esp + 0x14]
movsx eax, byte [edx + eax]
add eax, dword [esi]
add eax, dword [ecx - 4]
and eax, 0xff
mov dword [esi], eax
mov eax, dword [eax*4 + 0x1001b0e0]
mov edx, dword [ecx - 4]
mov dword [ecx - 4], eax
mov eax, dword [esi]
mov dword [eax*4 + 0x1001b0e0], edx
xor edx, edx
lea eax, [edi - 1]
div dword [ebx]
mov eax, dword [esp + 0x14]
movsx eax, byte [edx + eax]
add eax, dword [esi]
add eax, dword [ecx]
and eax, 0xff
mov dword [esi], eax
mov eax, dword [eax*4 + 0x1001b0e0]
mov edx, dword [ecx]
mov dword [ecx], eax
mov eax, dword [esi]
mov dword [eax*4 + 0x1001b0e0], edx
xor edx, edx
mov eax, edi
div dword [ebx]
mov eax, dword [esp + 0x14]
movsx eax, byte [edx + eax]
add eax, dword [ecx + 4]
add eax, dword [esi]
and eax, 0xff
mov dword [esi], eax
mov eax, dword [eax*4 + 0x1001b0e0]
mov edx, dword [ecx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi]
mov dword [eax*4 + 0x1001b0e0], edx
xor edx, edx
lea eax, [edi + 1]
div dword [ebx]
mov eax, dword [esp + 0x14]
movsx eax, byte [edx + eax]
add eax, dword [ecx + 8]
add eax, dword [esi]
and eax, 0xff
mov dword [esi], eax
mov edx, dword [ecx + 8]
mov eax, dword [eax*4 + 0x1001b0e0]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
mov dword [0x10019bf8], edx
mov dword [ecx + 8], eax
cmp edx, 0xfffee83e
jge 0x100017b7
mov dword [0x10019bf8], 0x128e
mov edx, dword [esi]
mov eax, dword [esp + 0x18]
add edi, 4
mov dword [edx*4 + 0x1001b0e0], eax
lea edx, [edi - 2]
add ecx, 0x10
cmp edx, 0x100
jb 0x100016e0
push 0x10
push 0xa
push 0xd
push 1
push 0x1001ad90
push 0
call dword [0x10011174]
push eax
mov dword [0x1001b4f0], eax
call dword [section..rdata]
fld dword [0x10013370]
mov edi, dword [0x1001aea0]
xor ecx, ecx
mov ebx, 4
xor esi, esi
xor eax, eax
mov dword [0x10019bd0], ecx
cmp edi, ebx
jl 0x10001991
fst dword [0x1001ae98]
mov dword [0x10019bf8], 0x30
inc ecx
and ecx, 0xff
mov edx, dword [ecx*4 + 0x1001b0e0]
add esi, edx
and esi, 0xff
mov edi, dword [esi*4 + 0x1001b0e0]
mov dword [ecx*4 + 0x1001b0e0], edi
mov dword [esi*4 + 0x1001b0e0], edx
mov edi, dword [esp + 0x1c]
mov ebx, dword [edi]
add ebx, eax
mov dword [esp + 0x10], ebx
mov ebx, dword [ecx*4 + 0x1001b0e0]
add ebx, edx
mov edx, dword [esp + 0x10]
and ebx, 0xff
movzx ebx, byte [ebx*4 + 0x1001b0e0]
xor byte [edx], bl
inc ecx
and ecx, 0xff
mov edx, dword [ecx*4 + 0x1001b0e0]
add esi, edx
and esi, 0xff
mov ebx, dword [esi*4 + 0x1001b0e0]
mov dword [ecx*4 + 0x1001b0e0], ebx
mov dword [esi*4 + 0x1001b0e0], edx
mov ebx, dword [edi]
lea ebx, [eax + ebx + 1]
mov dword [esp + 0xc], ebx
mov ebx, dword [ecx*4 + 0x1001b0e0]
add ebx, edx
mov edx, dword [esp + 0xc]
and ebx, 0xff
movzx ebx, byte [ebx*4 + 0x1001b0e0]
xor byte [edx], bl
inc ecx
and ecx, 0xff
mov edx, dword [ecx*4 + 0x1001b0e0]
add esi, edx
and esi, 0xff
mov ebx, dword [esi*4 + 0x1001b0e0]
mov dword [ecx*4 + 0x1001b0e0], ebx
mov dword [esi*4 + 0x1001b0e0], edx
mov ebx, dword [edi]
lea ebx, [eax + ebx + 2]
mov dword [esp + 0xc], ebx
mov ebx, dword [ecx*4 + 0x1001b0e0]
add ebx, edx
mov edx, dword [esp + 0xc]
and ebx, 0xff
movzx ebx, byte [ebx*4 + 0x1001b0e0]
xor byte [edx], bl
inc ecx
and ecx, 0xff
mov edx, dword [ecx*4 + 0x1001b0e0]
add esi, edx
and esi, 0xff
mov ebx, dword [esi*4 + 0x1001b0e0]
mov dword [ecx*4 + 0x1001b0e0], ebx
mov dword [esi*4 + 0x1001b0e0], edx
mov ebx, dword [ecx*4 + 0x1001b0e0]
mov edi, dword [edi]
add ebx, edx
and ebx, 0xff
mov dl, byte [ebx*4 + 0x1001b0e0]
xor byte [eax + edi + 3], dl
lea edi, [eax + edi + 3]
mov edi, dword [0x1001aea0]
add eax, 4
lea edx, [edi - 3]
cmp eax, edx
jb 0x1000182f
mov dword [0x10019bd0], ecx
mov ebx, 4
cmp eax, edi
jae 0x10001a15
fstp dword [0x1001ae98]
mov dword [0x10019bf8], 0x30
lea esp, [esp]
inc ecx
and ecx, 0xff
mov edx, dword [ecx*4 + 0x1001b0e0]
add esi, edx
and esi, 0xff
mov ebx, dword [esi*4 + 0x1001b0e0]
mov dword [ecx*4 + 0x1001b0e0], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esi*4 + 0x1001b0e0], edx
mov ebx, dword [ebx]
add ebx, eax
mov dword [esp + 0x10], ebx
mov ebx, dword [ecx*4 + 0x1001b0e0]
add ebx, edx
mov edx, dword [esp + 0x10]
and ebx, 0xff
mov bl, byte [ebx*4 + 0x1001b0e0]
xor byte [edx], bl
inc eax
cmp eax, edi
jb 0x100019b0
mov dword [0x10019bd0], ecx
mov ebx, 4
jmp 0x10001a17
fstp st(0)
push 0x1000
call fcn.10002d09
movzx edx, byte [0x1001aea6]
movzx ecx, byte [0x1001aeaa]
mov dword [esp + 0x128], edx
movzx edx, byte [0x1001aea5]
mov dword [esp + 0x138], edx
movzx edx, byte [0x1001aeb2]
mov esi, eax
mov eax, 3
mov edi, 1
mov dword [esp + 0x100], eax
mov dword [esp + 0x108], ecx
mov ecx, 2
mov dword [esp + 0x110], eax
mov eax, 5
mov dword [esp + 0x16c], edx
mov edx, 6
mov dword [esp + 0x114], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], ebx
mov ebx, dword [0x10011030]
add esp, 4
mov dword [esp + 0xf8], 0
mov dword [esp + 0x100], 0x20
mov dword [esp + 0x108], 7
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], 0x15
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], eax
mov dword [esp + 0x15c], edi
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edi
mov dword [esp + 0x16c], 0x375
mov dword [esp + 0x170], 0x42
mov dword [esp + 0x174], edx
mov dword [esp + 0x178], edx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], 0x2c
mov dword [esp + 0x188], 0x36
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], 0x37
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1b4], 8
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1d0], edi
mov dword [0x10019c00], 0
push 0x40
push esi
call ebx
mov ecx, dword [0x10019c00]
mov edx, dword [esp + ecx*4 + 0xfc]
lea eax, [esi + eax*2]
push eax
push edx
call fcn.10003a87
mov eax, dword [0x10019c00]
add eax, edi
add esp, 0xc
mov dword [0x10019c00], eax
cmp eax, 0x10
jb 0x10001c14
mov eax, dword [esp + 0x14]
push eax
push 0x1001aed8
lea ecx, [esp + 0x1e0]
push 0x10013220
push ecx
call dword [0x10011164]
lea edx, [esp + 0x1e8]
push edx
push 0x1001322c
call fcn.10003cbf
add esp, 0x18
cmp dword [esp + 0x50], 8
jb 0x10001c8a
mov eax, dword [esp + 0x3c]
push eax
call fcn.100036ed
add esp, 4
cmp dword [esp + 0x34], 0x10
jb 0x10001c9e
mov ecx, dword [esp + 0x20]
push ecx
call fcn.100036ed
add esp, 4
mov ecx, dword [esp + 0x3e4]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10002d14
mov esp, ebp
pop ebp
ret