Function at 0x407b98
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movd xmm0, dword [esp + 0x18]
mov edi, 0x40
movdqu xmm3, xmmword [esi]
movdqu xmm4, xmmword [esi + 0x10]
movdqu xmm2, xmmword [esi + 0x20]
movdqu xmm1, xmmword [esi + 0x30]
lea eax, [edx - 0x40]
lea ecx, [esi + 0x40]
cmp eax, edi
pxor xmm0, xmm3
jb 0x407c92
add edx, 0xffffff80
movdqa xmm5, xmmword [0x4bf260]
mov edi, edx
and edi, 0xffffffc0
mov ebx, edi
sub ebx, 0xffffff80
movdqa xmm3, xmmword [0x4bf250]
movdqa xmm6, xmm0
movdqa xmm7, xmm0
movdqu xmm0, xmmword [ecx]
add eax, 0xffffffc0
pclmulqdq xmm7, xmm5, 0x11
pclmulqdq xmm6, xmm3, 0
pxor xmm0, xmm6
movdqa xmm6, xmm4
pclmulqdq xmm6, xmm3, 0
movdqa xmm3, xmm4
movdqu xmm4, xmmword [ecx + 0x10]
pxor xmm0, xmm7
movdqa xmm7, xmm2
pclmulqdq xmm3, xmm5, 0x11
pclmulqdq xmm7, xmm5, 0x11
pxor xmm4, xmm6
movdqa xmm6, xmm2
movdqu xmm2, xmmword [ecx + 0x20]
pclmulqdq xmm6, xmmword [0x4bf250], 0
pxor xmm4, xmm3
movdqa xmm3, xmm1
pclmulqdq xmm3, xmmword [0x4bf250], 0
pxor xmm2, xmm6
movdqa xmm6, xmm1
movdqu xmm1, xmmword [ecx + 0x30]
add ecx, 0x40
cmp eax, 0x3f
pclmulqdq xmm6, xmm5, 0x11
pxor xmm2, xmm7
pxor xmm1, xmm3
pxor xmm1, xmm6
ja 0x407be8
sub edx, edi
add esi, ebx
mov eax, edx
mov ecx, esi
movdqa xmm5, xmmword [0x4bf280]
movdqa xmm3, xmmword [0x4bf270]
movdqa xmm6, xmm0
cmp eax, 0x10
pclmulqdq xmm0, xmm5, 0x11
pclmulqdq xmm6, xmm3, 0
pxor xmm0, xmm4
pxor xmm0, xmm6
movdqa xmm4, xmm0
pclmulqdq xmm0, xmm5, 0x11
pclmulqdq xmm4, xmm3, 0
pxor xmm0, xmm2
pxor xmm0, xmm4
movdqa xmm2, xmm0
pclmulqdq xmm0, xmm5, 0x11
pclmulqdq xmm2, xmm3, 0
pxor xmm0, xmm1
pxor xmm0, xmm2
jb 0x407d16
movdqu xmm1, xmmword [ecx]
movdqa xmm2, xmm0
pclmulqdq xmm0, xmm5, 0x11
add eax, 0xfffffff0
add ecx, 0x10
pclmulqdq xmm2, xmm3, 0
cmp eax, 0xf
pxor xmm0, xmm1
pxor xmm0, xmm2
ja 0x407cef
movdqa xmm1, xmmword [0x4bf280]
pclmulqdq xmm1, xmm0, 1
psrldq xmm0, 8
pxor xmm0, xmm1
pmovzxdq xmm1, xmm0
psrldq xmm0, 4
pclmulqdq xmm1, xmmword [0x4bf290], 0
pxor xmm1, xmm0
pmovzxdq xmm0, xmm1
pclmulqdq xmm0, xmmword [0x4bf2a0], 0x10
pmovzxdq xmm0, xmm0
pclmulqdq xmm0, xmmword [0x4bf2b0], 0
pxor xmm0, xmm1
pextrd eax, xmm0, 1
pop esi
pop edi
pop ebx
ret

Function at 0x40aa70
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [ebp - 0x20], ecx
mov eax, dword [0x4df19c]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + 0x24]
lea edx, [ebp - 0x1c]
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x10]
push edx
lea edx, [ebp - 0x18]
push edx
push dword [edi + 0x28]
call dword [eax + 0x10]
mov esi, dword [ebp - 0x1c]
mov ebx, eax
lea eax, [ebp - 0x18]
sub esi, eax
push dword [edi + 0x20]
push esi
push 1
push eax
call fcn.004a9705
add esp, 0x10
cmp eax, esi
jne 0x40aae0
cmp ebx, 1
je 0x40aa89
cmp ebx, 2
mov esi, 0xffffffff
je 0x40aae3
mov eax, dword [ebp - 0x20]
push dword [eax + 0x20]
call fcn.004a9040
add esp, 4
neg eax
sbb esi, esi
jmp 0x40aae3
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004956a1
mov eax, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret