Function at 0x10007c90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x14c0
call fcn.1000e8f0
lea edi, [ebp + 8]
mov eax, dword [0x100597c0]
xor eax, ebp
mov dword [esp + 0x14b8], eax
cmp dword [ebp + 0x1c], 0x10
mov eax, edi
jb 0x10007cbf
mov eax, dword [ebp + 8]
mov ecx, esp
push 1
push 0x40
push 0x20
push eax
call fcn.1000bee0
cmp dword [esp + 0x5c], 0
je 0x10007ee9
movdqa xmm0, xmmword [0x1004bb50]
xor eax, eax
movdqa xmm1, xmmword [0x1004bb60]
movdqa xmm2, xmmword [0x1004bb70]
nop word cs:[eax + eax]
movdqa xmm3, xmm0
movdqa xmm4, xmm0
pslld xmm4, 0x1f
psrad xmm4, 0x1f
psrld xmm3, 1
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm1
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
pslld xmm3, 0x1f
psrld xmm4, 1
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm1
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
psrld xmm3, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm1
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
psrld xmm4, 1
pslld xmm3, 0x1f
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm1
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
pslld xmm4, 0x1f
psrad xmm4, 0x1f
psrld xmm3, 1
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm1
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
pslld xmm3, 0x1f
psrld xmm4, 1
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm1
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
psrld xmm3, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm1
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
psrld xmm4, 1
pslld xmm3, 0x1f
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm1
pand xmm4, xmm3
por xmm4, xmm5
movdqu xmmword [esp + eax*4 + 0x10b8], xmm4
add eax, 4
paddd xmm0, xmm2
cmp eax, 0x100
jne 0x10007d00
lea edi, [esp + 0xb8]
mov ecx, esp
push 0
push 0x1000
push edi
call fcn.10007fe0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
xor ebx, ebx
test byte [eax + ecx + 0xc], 6
jne 0x10007ed1
mov ebx, 0xffffffff
xor eax, eax
mov esi, esp
nop word cs:[eax + eax]
movzx ecx, byte [esp + eax + 0xb8]
xor cl, bl
movzx ecx, cl
shr ebx, 8
xor ebx, dword [esp + ecx*4 + 0x10b8]
inc eax
cmp eax, 0x1000
jne 0x10007e90
mov ecx, esi
push 0
push 0x1000
push edi
call fcn.10007fe0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [eax + ecx + 0xc], 6
mov eax, 0
je 0x10007e90
not ebx
mov edx, dword [esp + 8]
test edx, edx
lea edi, [ebp + 8]
jle 0x10007f54
not ebx
cmp edx, 1
jne 0x10007eed
mov esi, edx
xor ecx, ecx
jmp 0x10007f35
xor ebx, ebx
jmp 0x10007f54
mov esi, edx
and edx, 0xfffffffe
xor ecx, ecx
nop word cs:[eax + eax]
movzx eax, byte [esp + ecx + 0xb8]
xor al, bl
movzx eax, al
shr ebx, 8
xor ebx, dword [esp + eax*4 + 0x10b8]
movzx eax, byte [esp + ecx + 0xb9]
xor al, bl
movzx eax, al
shr ebx, 8
xor ebx, dword [esp + eax*4 + 0x10b8]
add ecx, 2
cmp edx, ecx
jne 0x10007f00
mov eax, esi
test al, 1
je 0x10007f52
movzx eax, byte [esp + ecx + 0xb8]
xor al, bl
movzx eax, al
shr ebx, 8
xor ebx, dword [esp + eax*4 + 0x10b8]
not ebx
lea esi, [esp + 0x70]
mov eax, dword [esp]
mov eax, dword [eax + 4]
mov dword [esp + eax], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax - 4], ecx
lea ecx, [esp + 0x10]
call fcn.10009d30
mov dword [esp + 0x70], vtable.std::ios_base.0
push esi
call fcn.1000ee26
add esp, 4
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x10007fbf
mov ecx, dword [edi]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x10007fb5
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10007fd7
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.1000e781
add esp, 8
mov ecx, dword [esp + 0x14b8]
xor ecx, ebp
call fcn.1000e7b7
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1002f997
int3