Function at 0x100a8a70
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [esp + 0x70]
xor eax, eax
push esi
push edi
mov ax, word [ebp + 0x65fe]
mov ecx, 1
mov dword [esp + 0x64], eax
push 3
neg eax
push ebp
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
call fcn.100a7f10
mov eax, dword [ebp + 0x8c]
add esp, 8
test eax, eax
je 0x100a8acf
mov eax, dword [sym.imp.MSVCRT.dll__iob]
push str.PPG_interpolation..._n
add eax, 0x40
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 8
xor ecx, ecx
mov edi, 3
mov cx, word [ebp + 0x65fc]
mov dword [esp + 0x10], edi
sub ecx, edi
cmp ecx, edi
jle 0x100a8e0c
mov eax, dword [ebp + 0x657c]
mov esi, edi
and esi, 7
mov edx, eax
lea ecx, [esi*4 + 2]
shr edx, cl
and edx, 1
add edx, 3
mov ecx, edx
mov dword [esp + 0x14], edx
and ecx, 1
lea ecx, [ecx + esi*2]
shl ecx, 1
shr eax, cl
and eax, 3
mov dword [esp + 0x18], eax
xor eax, eax
mov ax, word [ebp + 0x65fe]
lea ecx, [eax - 3]
cmp edx, ecx
jge 0x100a8df3
imul eax, edi
add eax, edx
mov edx, dword [ebp + 0x6628]
xor esi, esi
lea ecx, [edx + eax*8]
xor eax, eax
mov edi, dword [esp + eax + 0x60]
xor edx, edx
add eax, 4
mov dx, word [ecx + edi*8 + 2]
shl edx, 2
mov dword [esp + eax + 0x4c], edx
add esi, edx
cmp eax, 0x10
jl 0x100a8b44
sar esi, 2
mov dword [esp + 0x28], esi
mov ebx, 0x100eb4cc
movsx eax, word [ebx + 2]
movsx edx, word [ebx]
mov edi, dword [esp + edx*4 + 0x50]
mov esi, dword [esp + eax*4 + 0x50]
lea eax, [esp + eax*4 + 0x50]
lea edx, [esp + edx*4 + 0x50]
cmp edi, esi
jle 0x100a8b99
xor esi, edi
mov dword [edx], esi
mov edi, dword [eax]
xor edi, esi
mov dword [eax], edi
mov esi, dword [edx]
mov eax, edi
xor esi, eax
mov dword [edx], esi
add ebx, 4
cmp ebx, 0x100eb4dc
jl 0x100a8b6c
lea edx, [esp + 0x64]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], edx
mov edi, dword [edx - 4]
mov edx, dword [edx]
mov eax, edi
mov dword [esp + 0x24], edx
neg eax
shl eax, 1
mov esi, 0xfffffffe
neg edx
lea ebx, [edx + eax]
xor ebp, ebp
mov bp, word [ecx + ebx*8 + 2]
mov ebx, dword [esp + 0x28]
cmp ebp, ebx
jle 0x100a8bea
mov ebx, dword [esp + 0x24]
inc esi
add edx, ebx
add eax, edi
cmp esi, 2
jl 0x100a8bca
cmp esi, 2
je 0x100a8d84
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
add edx, 4
cmp eax, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
jl 0x100a8bb4
mov edx, dword [esp + 0x18]
xor eax, eax
mov esi, 1
mov dword [esp + 0x20], 0
mov ax, word [ecx + edx*2]
mov dword [esp + 0x1c], eax
mov ebp, dword [esp + 0x18]
lea edi, [esi*8]
xor edx, edx
mov ebx, edi
mov dx, word [edi + ecx + 2]
add ebp, edi
xor edi, edi
xor eax, eax
mov di, word [ecx + ebp*2]
mov ebp, dword [esp + 0x18]
neg ebx
add ebp, ebx
mov ax, word [ebx + ecx + 2]
xor ebx, ebx
mov bx, word [ecx + ebp*2]
mov ebp, dword [esp + 0x1c]
add ebp, edx
mov dword [esp + 0x28], ebx
add ebp, eax
shl ebp, 1
sub ebp, edi
sub ebp, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + ebx + 0x48], ebp
mov ebp, dword [esp + 0x28]
sub ebp, dword [esp + 0x1c]
mov ebx, ebp
sar ebx, 0x1f
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x1c]
sub edi, ebx
lea ebx, [esi + esi*2]
mov dword [esp + 0x2c], edi
xor esi, esi
sar edi, 0x1f
mov dword [esp + 0x24], edi
mov edi, eax
sub edi, edx
mov dword [esp + 0x30], edi
sar edi, 0x1f
mov dword [esp + 0x28], edi
mov edi, ecx
shl ebx, 3
sub edi, ebx
mov si, word [edi + 2]
xor edi, edi
mov di, word [ebx + ecx + 2]
sub esi, eax
mov eax, esi
sub edi, edx
sar eax, 0x1f
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, edi
mov ebx, dword [esp + 0x30]
sar eax, 0x1f
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
xor eax, edx
mov edx, dword [esp + 0x28]
xor edx, ebx
add eax, edx
mov edx, dword [esp + 0x34]
mov ebx, edx
xor ebx, ebp
mov ebp, dword [esp + 0x28]
add eax, ebx
mov ebx, dword [esp + 0x24]
sub eax, ebx
sub eax, ebp
sub eax, edx
mov edx, dword [esp + 0x38]
mov ebp, edx
lea ebx, [eax + eax*2]
mov eax, dword [esp + 0x3c]
xor ebp, edi
mov edi, eax
xor edi, esi
add ebp, edi
sub ebp, edx
sub ebp, eax
mov eax, dword [esp + 0x20]
add eax, 4
lea edx, [ebx + ebp*2]
mov dword [esp + 0x20], eax
mov esi, dword [esp + eax + 0x60]
mov dword [esp + eax + 0x3c], edx
test esi, esi
jg 0x100a8c27
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
xor eax, eax
cmp ebp, edx
setg al
mov edi, ecx
mov edx, dword [esp + eax*4 + 0x60]
shl edx, 3
sub edi, edx
mov si, word [edx + ecx + 2]
mov dx, word [edi + 2]
cmp si, dx
jae 0x100a8d9f
mov eax, dword [esp + eax*4 + 0x48]
and edx, 0xffff
sar eax, 2
cmp eax, edx
mov edi, eax
jl 0x100a8d72
mov edi, edx
and esi, 0xffff
cmp esi, edi
jg 0x100a8dc6
cmp eax, edx
jl 0x100a8dc8
mov eax, edx
jmp 0x100a8dc8
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x78]
add edx, eax
sar edx, 3
mov word [ecx + 2], dx
mov edx, dword [esp + 0x14]
jmp 0x100a8dd4
mov eax, dword [esp + eax*4 + 0x48]
and esi, 0xffff
sar eax, 2
cmp eax, esi
mov edi, eax
jl 0x100a8db4
mov edi, esi
and edx, 0xffff
cmp edx, edi
jle 0x100a8dc2
mov eax, edx
jmp 0x100a8dc8
cmp eax, esi
jl 0x100a8dc8
mov eax, esi
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x14]
mov word [ecx + 2], ax
xor eax, eax
mov edi, dword [esp + 0x10]
mov ax, word [ebp + 0x65fe]
add edx, 2
mov dword [esp + 0x14], edx
lea ecx, [eax - 3]
cmp edx, ecx
jl 0x100a8b32
xor edx, edx
inc edi
mov dx, word [ebp + 0x65fc]
mov dword [esp + 0x10], edi
sub edx, 3
cmp edi, edx
jl 0x100a8aeb
xor eax, eax
mov edi, 1
mov ax, word [ebp + 0x65fc]
mov dword [esp + 0x10], edi
dec eax
cmp eax, edi
jle 0x100a8f49
mov edx, dword [ebp + 0x657c]
mov eax, edi
and eax, 7
mov esi, edx
or ebx, 0xffffffff
lea ecx, [eax*4]
shr esi, cl
and esi, 1
inc esi
mov dword [esp + 0x14], esi
lea ecx, [esi + esi]
sub ebx, ecx
and ebx, 2
lea ecx, [ebx + eax*4]
xor eax, eax
mov ax, word [ebp + 0x65fe]
shr edx, cl
lea ecx, [eax - 1]
and edx, 3
cmp esi, ecx
jge 0x100a8f32
imul eax, edi
mov ecx, dword [ebp + 0x6628]
add eax, esi
lea esi, [esp + 0x60]
lea eax, [ecx + eax*8]
mov ecx, 1
mov dword [esp + 0x28], esi
lea esi, [ecx*4]
mov edi, edx
sub edi, esi
xor ebx, ebx
add esi, edx
mov bx, word [eax + edi*2]
xor edi, edi
mov di, word [eax + esi*2]
mov esi, eax
shl ecx, 3
add ebx, edi
sub esi, ecx
xor edi, edi
mov di, word [esi + 2]
xor esi, esi
mov si, word [ecx + eax + 2]
sub ebx, edi
xor ecx, ecx
sub ebx, esi
mov cx, word [eax + 2]
lea esi, [ebx + ecx*2]
mov ecx, esi
and ecx, 0xfffffffe
cmp ecx, 0x1fffe
jge 0x100a8ee8
mov edi, esi
sar edi, 1
test edi, edi
jge 0x100a8edc
xor esi, esi
jmp 0x100a8eed
cmp ecx, 0x1fffe
jge 0x100a8ee8
sar esi, 1
jmp 0x100a8eed
mov esi, 0xffff
mov ecx, 2
mov word [eax + edx*2], si
sub ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x28]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
test ecx, ecx
jg 0x100a8e87
mov esi, dword [esp + 0x14]
xor eax, eax
mov ax, word [ebp + 0x65fe]
mov edi, dword [esp + 0x10]
add esi, 2
lea ecx, [eax - 1]
mov dword [esp + 0x14], esi
cmp esi, ecx
jl 0x100a8e6c
xor edx, edx
inc edi
mov dx, word [ebp + 0x65fc]
mov dword [esp + 0x10], edi
dec edx
cmp edi, edx
jl 0x100a8e27
xor eax, eax
mov ebx, 1
mov ax, word [ebp + 0x65fc]
mov dword [esp + 0x10], ebx
dec eax
cmp eax, ebx
jle 0x100a9168
mov eax, dword [ebp + 0x657c]
mov esi, ebx
and esi, 7
mov edx, eax
mov edi, 2
lea ecx, [esi*4 + 2]
shr edx, cl
and edx, 1
inc edx
mov ecx, edx
mov dword [esp + 0x14], edx
and ecx, 1
lea ecx, [ecx + esi*2]
shl ecx, 1
shr eax, cl
and eax, 3
sub edi, eax
xor eax, eax
mov ax, word [ebp + 0x65fe]
mov dword [esp + 0x18], edi
lea ecx, [eax - 1]
cmp edx, ecx
jge 0x100a9151
imul eax, ebx
mov ecx, dword [ebp + 0x6628]
add eax, edx
lea ebx, [ecx + eax*8]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], ebx
lea esi, [eax + 1]
test esi, esi
jle 0x100a90bc
xor ebp, ebp
xor eax, eax
mov bp, word [ebx + 2]
mov dword [esp + 0x20], ebp
jmp 0x100a8fe7
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
lea edx, [esi*4]
xor ecx, ecx
sub edi, edx
add eax, 4
shl esi, 3
mov cx, word [ebx + edi*2]
mov edi, dword [esp + 0x18]
add edi, edx
xor edx, edx
mov dword [esp + 0x3c], esi
mov dx, word [ebx + edi*2]
mov edi, ecx
sub edi, edx
mov dword [esp + 0x34], edi
sar edi, 0x1f
mov dword [esp + 0x24], edi
mov edi, ebx
sub edi, esi
xor esi, esi
mov si, word [edi + 2]
mov edi, esi
sub edi, ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
sar edi, 0x1f
mov dword [esp + 0x28], edi
xor edi, edi
mov di, word [ebx + ebp + 2]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x30], edi
sub edi, ebx
mov ebp, dword [esp + 0x38]
mov ebx, edi
sar ebx, 0x1f
mov dword [esp + 0x3c], ebx
xor ebx, edi
mov edi, dword [esp + 0x28]
xor edi, ebp
mov ebp, dword [esp + 0x34]
add ebx, edi
mov edi, dword [esp + 0x24]
xor edi, ebp
mov ebp, dword [esp + 0x3c]
add ebx, edi
mov edi, dword [esp + 0x28]
sub ebx, ebp
mov ebp, dword [esp + 0x24]
sub ebx, edi
sub ebx, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + eax + 0x3c], ebx
mov ebx, dword [esp + 0x30]
lea edi, [ebp + ebp]
sub edi, ebx
sub edi, esi
mov esi, dword [esp + eax + 0x64]
add edi, edx
mov edx, dword [esp + eax + 0x60]
add edi, ecx
add esi, edx
mov dword [esp + eax + 0x44], edi
test esi, esi
jg 0x100a8fdf
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x100a90f8
xor ecx, ecx
cmp eax, esi
setg cl
mov eax, dword [esp + ecx*4 + 0x48]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0x1fffe
jge 0x100a9129
mov esi, eax
sar esi, 1
test esi, esi
jge 0x100a90ec
xor eax, eax
jmp 0x100a912e
cmp ecx, 0x1fffe
jge 0x100a9129
sar eax, 1
jmp 0x100a912e
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, ecx
mov ecx, eax
and ecx, 0xfffffffc
cmp ecx, 0x3fffc
jge 0x100a9129
mov esi, eax
sar esi, 2
test esi, esi
jge 0x100a911c
xor eax, eax
jmp 0x100a912e
cmp ecx, 0x3fffc
jge 0x100a9129
sar eax, 2
jmp 0x100a912e
mov eax, 0xffff
mov word [ebx + edi*2], ax
xor eax, eax
mov ax, word [ebp + 0x65fe]
mov ebx, dword [esp + 0x10]
add edx, 2
lea ecx, [eax - 1]
mov dword [esp + 0x14], edx
cmp edx, ecx
jl 0x100a8fb0
xor edx, edx
inc ebx
mov dx, word [ebp + 0x65fc]
mov dword [esp + 0x10], ebx
dec edx
cmp ebx, edx
jl 0x100a8f64
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret