Function at 0x100aebe0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x34
mov ecx, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x44]
push 0
mov eax, dword [esi]
mov dword [esp + 0xc], 0xffffffff
lea edx, [edi + ecx - 4]
mov ecx, dword [esi + 4]
push edx
push ecx
mov word [esp + 0x18], 0x410
mov word [esp + 0x1a], 0x45f3
call dword [eax + 8]
push esi
call fcn.1009c680
mov edx, dword [esi]
add eax, edi
push 0
push eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 8]
push esi
call fcn.1009c5e0
and eax, 0xffff
add esp, 0x20
cmp eax, 0x64
jg 0x100af2c1
mov ecx, eax
dec eax
test ecx, ecx
je 0x100af2c1
inc eax
push ebx
push ebp
mov dword [esp + 0x48], eax
push esi
call fcn.1009c5e0
mov di, ax
push esi
and edi, 0xffff
call fcn.1009c680
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
mov ebp, dword [esi]
add esp, 0xc
add eax, 4
push 0
push esi
mov dword [esp + 0x20], eax
call fcn.1009c680
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 4]
add esp, 4
add eax, edx
push eax
push ecx
call dword [ebp + 8]
mov edx, edi
add esp, 0xc
sar edx, 8
add edx, 8
or edx, 8
cmp edx, 0x38
jne 0x100aecc3
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ebx
push ecx
call dword [eax + 0x18]
add esp, 4
push eax
push esi
call fcn.100aebe0
add esp, 0xc
cmp edi, 0x810
jne 0x100aece6
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 1
lea eax, [esi + 0x6515]
push 0x40
push eax
push ecx
call dword [edx]
add esp, 0x10
jmp 0x100af29d
cmp edi, 0x80a
jne 0x100aed34
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [esi + 0x6455]
push 1
push 0x40
push edi
push eax
call dword [edx]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + 4]
mov edx, dword [esi]
not ecx
add ecx, 0xffffffc0
push 1
push ecx
push eax
call dword [edx + 8]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 1
lea edx, [esi + 0x6495]
push 0x40
push edx
push eax
call dword [ecx]
add esp, 0x2c
jmp 0x100af29d
cmp edi, 0x1810
jne 0x100aed5d
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0xc
push edx
call dword [ecx + 8]
push esi
call fcn.1009c680
add esp, 0x10
mov dword [esi + 0x6610], eax
jmp 0x100af29d
cmp edi, 0x1835
jne 0x100aed79
push esi
call fcn.1009c680
add esp, 4
mov dword [esi + 0x65c0], eax
jmp 0x100af29d
cmp edi, 0x2007
jne 0x100aed9e
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ecx
call dword [eax + 0x18]
add esp, 4
mov dword [esi + 0x6590], eax
mov dword [esi + 0x659c], ebx
jmp 0x100af29d
cmp edi, 0x1818
jne 0x100aee16
push esi
call fcn.1009c680
push esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x40000000
call fcn.1009c680
push eax
call fcn.1009c6f0
fchs
fld qword [esp + 0x28]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6564]
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.1009c680
push eax
call fcn.1009c6f0
fmul dword [0x100cd3a0]
fld qword [esp + 0x38]
fxch st(1)
add esp, 0x14
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6568]
jmp 0x100af29d
cmp edi, 0x102a
jne 0x100aef59
push esi
call fcn.1009c680
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.1009c5e0
and eax, 0xffff
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x100eda04]
fsub dword [0x100cd678]
fld qword [esp + 0x34]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fmul dword [0x100cd6b8]
push esi
fstp dword [esi + 0x6560]
call fcn.1009c5e0
push esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x40000000
call fcn.1009c5e0
movsx edx, ax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
fmul dword [0x100eda00]
fld qword [esp + 0x44]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6568]
push esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0x40000000
call fcn.1009c5e0
movsx eax, ax
neg eax
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x100eda04]
fld qword [esp + 0x50]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6564]
push esi
call fcn.1009c5e0
push esi
call fcn.1009c5e0
and eax, 0xffff
add esp, 0x1c
cmp eax, 0x11
mov dword [esp + 0x10], eax
jle 0x100aef0b
mov dword [esp + 0x10], 0
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0x20
push edx
call dword [ecx + 8]
fld dword [esi + 0x6564]
fcomp qword [0x100ed9f8]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x100af29d
push esi
call fcn.1009c5e0
add esp, 4
and eax, 0xffff
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul dword [0x100ed9f4]
fstp dword [esi + 0x6564]
jmp 0x100af29d
cmp edi, 0x102c
jne 0x100aeff2
push esi
call fcn.1009c5e0
add esp, 4
cmp ax, 0x200
mov eax, dword [esi]
push 1
jbe 0x100aefb3
mov ecx, dword [esi + 4]
push 0x76
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.1009c5e0
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
xor edx, 2
inc edi
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100aef86
jmp 0x100af29d
mov ecx, dword [esi + 4]
push 0x62
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.1009c5e0
mov edx, edi
and eax, 0xffff
xor edx, 2
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sar edx, 1
add esp, 4
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0xe6bc]
cmp edi, 4
jl 0x100aefc1
jmp 0x100af29d
cmp edi, 0x32
jne 0x100af125
cmp ebx, 0x300
jne 0x100af04f
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x48
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.1009c5e0
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar edx, 1
xor edx, edi
inc edi
fdivr dword [0x100ed9f0]
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100af015
mov eax, dword [esp + 0x10]
test eax, eax
jmp 0x100af110
fld dword [esi + 0xe6bc]
fcomp dword [0x100cd3a4]
fnstsw ax
test ah, 0x40
je 0x100af29d
push esi
call fcn.1009c5e0
add esp, 4
cmp ax, word [esp + 0x14]
jne 0x100af0a6
lea eax, [esi + 0x6495]
push str.Pro1
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
mov eax, str.012346000000000000
jne 0x100af099
mov eax, str.01345:000000006008
mov ebx, dword [esp + 0x10]
movsx eax, byte [eax + ebx]
sub eax, 0x2e
jmp 0x100af0c0
mov ebx, dword [esp + 0x10]
movsx eax, byte [ebx + str.023457000000006000]
sub eax, 0x30
xor ecx, ecx
mov word [esp + 0x16], cx
mov word [esp + 0x14], cx
mov ecx, dword [esi]
lea edx, [eax*8 + 0x4e]
mov eax, dword [esi + 4]
push 1
push edx
push eax
call dword [ecx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.1009c5e0
mov ecx, edi
mov edx, edi
and ecx, 1
xor edx, 2
sar edx, 1
xor ax, word [esp + ecx*2 + 0x18]
add esp, 4
xor edx, edi
and eax, 0xffff
inc edi
mov dword [esp + 0x50], eax
cmp edi, 4
fild dword [esp + 0x50]
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100af0d8
test ebx, ebx
jne 0x100af29d
mov dword [esi + 0xe6bc], 0xbf800000
jmp 0x100af29d
cmp edi, 0x10a9
jne 0x100af18e
cmp ebx, 0x42
jle 0x100af144
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax + str.0134567028]
sub ecx, 0x30
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
push 1
lea ecx, [eax*8 + 2]
mov eax, dword [esi + 4]
push ecx
push eax
call dword [edx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.1009c5e0
and eax, 0xffff
mov ecx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar ecx, 1
xor ecx, edi
inc edi
cmp edi, 4
fstp dword [esi + ecx*4 + 0xe6bc]
jl 0x100af160
jmp 0x100af29d
cmp edi, 0x1030
jne 0x100af1b8
mov ecx, dword [esp + 0x10]
mov edx, 0x18040
sar edx, cl
test dl, 1
je 0x100af29d
push esi
call fcn.100aeaf0
add esp, 4
jmp 0x100af29d
cmp edi, 0x1031
jne 0x100af1e8
push esi
call fcn.1009c5e0
push esi
call fcn.1009c5e0
push esi
mov word [esi + 0x65fa], ax
call fcn.1009c5e0
add esp, 0xc
mov word [esi + 0x65f8], ax
jmp 0x100af29d
cmp edi, 0x5029
jne 0x100af220
mov eax, ebx
and ebx, 0xffff
sar eax, 0x10
mov dword [esp + 0x50], eax
cmp ebx, 2
fild dword [esp + 0x50]
fst dword [esi + 0x656c]
jne 0x100af29b
fmul dword [0x100eda04]
fstp dword [esi + 0x656c]
jmp 0x100af29d
cmp edi, 0x5813
jne 0x100af239
push ebx
call fcn.1009c6f0
fstp dword [esi + 0x6558]
add esp, 4
jmp 0x100af29d
cmp edi, 0x5814
jne 0x100af252
push ebx
call fcn.1009c6f0
fstp dword [esi + 0x655c]
add esp, 4
jmp 0x100af29d
cmp edi, 0x5817
jne 0x100af262
mov dword [esi + 0x6574], ebx
jmp 0x100af29d
cmp edi, 0x5834
jne 0x100af272
mov dword [esi + 0x6584], ebx
jmp 0x100af29d
cmp edi, 0x580e
jne 0x100af282
mov dword [esi + 0x6570], ebx
jmp 0x100af29d
cmp edi, 0x180e
jne 0x100af29d
push esi
call fcn.1009c680
add esp, 4
mov dword [esi + 0x6570], eax
jmp 0x100af29d
fstp st(0)
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x54]
add esp, 0xc
dec eax
mov dword [esp + 0x48], eax
jne 0x100aec54
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x34
ret