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

Disassembly:
mov eax, dword [esp + 0x3c]
sub esp, 0x44
and eax, 7
push ebx
push esi
cmp eax, 1
sbb edx, edx
push edi
neg edx
push ebp
test edx, edx
je 0x1000f14b
test byte [esp + 0x94], 7
mov dword [esp + 0x48], 1
je 0x1000f153
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
mov dword [eax], 0xbf800000
mov dword [ecx], 0xbf800000
xor ecx, ecx
cmp dword [esp + 0xa0], ecx
jne 0x1000f520
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x78]
add esi, esi
add ebx, ebx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x3c], ebx
imul eax, dword [esp + 0x94]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x88]
mov edi, eax
imul edi, dword [esp + 0x60]
imul eax, dword [esp + 0x78]
add edi, esi
add eax, esi
add dword [esp + 0x68], edi
add dword [esp + 0x80], eax
test edx, edx
je 0x1000f324
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
add eax, dword [esp + 0x60]
add esi, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x90], ecx
jle 0x1000f2a9
mov eax, dword [esp + 0x90]
inc eax
shr eax, 1
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x94], 0
jle 0x1000f287
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
xor eax, eax
xor edx, edx
mov al, byte [ebp]
mov dl, byte [esi]
sub eax, edx
inc esi
mov dl, byte [edi]
inc ebp
xor ebx, ebx
inc edi
mov bl, byte [ecx]
inc ecx
mov dword [esp + 0x20], 0
mov byte [esp + 0x20], dl
mov edx, dword [0x1004e6f0]
sub ebx, dword [esp + 0x20]
sub eax, ebx
mov ebx, dword [edx + eax*4]
cdq
xor eax, edx
add dword [esp + 0x24], ebx
sub dword [esp + 0x1c], edx
add dword [esp + 0x1c], eax
dec dword [esp + 0x28]
jne 0x1000f242
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x38], eax
add dword [esp + 0x34], eax
add dword [esp + 0x30], ecx
add dword [esp + 0x2c], ecx
dec dword [esp + 0x4c]
jne 0x1000f21d
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x24]
fild qword [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
fild qword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
pushfd
cmp dword [0x100539f0], 0
jne 0x1000f2e5
fdiv st(1)
jmp 0x1000f2ee
push eax
mov al, 8
call fcn.10012667
pop eax
popfd
fmul st(0), st(0)
fild qword [esp + 0x4c]
mov ecx, dword [esp + 0x98]
pushfd
cmp dword [0x100539f0], 0
jne 0x1000f30a
fdiv st(2)
jmp 0x1000f313
push eax
mov al, 0x10
call fcn.10012667
pop eax
popfd
fsub st(1)
fmul qword [0x1003c1c8]
faddp st(1)
fsqrt
fstp dword [ecx]
fstp st(0)
xor ecx, ecx
cmp dword [esp + 0x48], ecx
je 0x1000f520
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x38], eax
add eax, dword [esp + 0x60]
add esi, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x90], ecx
jle 0x1000f4a5
mov eax, dword [esp + 0x90]
inc eax
shr eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
cmp dword [esp + 0x94], 0
mov dword [esp + 0x18], edi
jle 0x1000f483
mov eax, dword [esp + 0x94]
inc eax
shr eax, 1
mov dword [esp + 0x48], eax
xor ecx, ecx
mov eax, dword [esp + 0x20]
inc esi
xor ebx, ebx
mov cl, byte [eax]
inc esi
xor eax, eax
mov edx, dword [esp + 0x14]
mov al, byte [esi - 2]
mov edi, dword [esp + 0x18]
sub ecx, eax
mov bl, byte [edx]
mov dword [esp + 0x10], ecx
inc dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0x20]
inc dword [esp + 0x20]
inc dword [esp + 0x18]
mov cl, byte [eax]
inc dword [esp + 0x14]
xor eax, eax
mov edx, dword [esp + 0x14]
mov al, byte [esi - 1]
inc dword [esp + 0x14]
sub ecx, eax
xor eax, eax
mov al, byte [edi]
mov edi, dword [esp + 0x18]
sub ebx, eax
inc dword [esp + 0x18]
xor eax, eax
mov al, byte [edx]
xor edx, edx
mov dl, byte [edi]
sub eax, edx
lea edx, [ecx + ebx]
add edx, dword [esp + 0x10]
add edx, eax
sar edx, 2
sub ecx, edx
sub ebx, edx
sub eax, edx
sub dword [esp + 0x10], edx
mov edx, dword [0x1004e6f0]
mov dword [esp + 0x28], edx
mov edi, dword [edx + ebx*4]
add edi, dword [edx + ecx*4]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
add edi, dword [ebp + edx*4]
mov edx, dword [0x1004e6f0]
add edi, dword [edx + eax*4]
cdq
xor eax, edx
add dword [esp + 0x24], edi
sub eax, edx
mov edi, eax
mov eax, ebx
cdq
xor eax, edx
sub edi, edx
add edi, eax
mov eax, ecx
cdq
xor eax, edx
sub edi, edx
add edi, eax
mov eax, dword [esp + 0x10]
cdq
xor eax, edx
sub edi, edx
add edi, eax
add dword [esp + 0x1c], edi
dec dword [esp + 0x48]
jne 0x1000f3b2
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x38], eax
add dword [esp + 0x34], eax
add dword [esp + 0x30], ecx
add dword [esp + 0x2c], ecx
dec dword [esp + 0x4c]
jne 0x1000f379
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x24]
fild qword [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
fild qword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
pushfd
cmp dword [0x100539f0], 0
jne 0x1000f4e1
fdiv st(1)
jmp 0x1000f4ea
push eax
mov al, 8
call fcn.10012667
pop eax
popfd
fmul st(0), st(0)
fild qword [esp + 0x4c]
mov ecx, dword [esp + 0x9c]
pushfd
cmp dword [0x100539f0], 0
jne 0x1000f506
fdiv st(2)
jmp 0x1000f50f
push eax
mov al, 0x10
call fcn.10012667
pop eax
popfd
fsub st(1)
fmul qword [0x1003c1c8]
faddp st(1)
fsqrt
fstp dword [ecx]
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret