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

Disassembly:
push 0xffffffffffffffff
push 0x100ce63b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20c
push ebx
mov ebx, ecx
cmp byte [ebx + 0x14c], 0
push esi
lea esi, [ebx + 0x14c]
mov dword [esp + 0xc], ebx
je 0x100a30c8
push 0x100ef918
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x100ec220], 0
jne 0x100a2e71
push 0x100ec220
mov ecx, esi
call fcn.100a32d0
test al, al
je 0x100a2e71
movdqu xmm0, xmmword [0x100ec240]
movdqu xmmword [esi + 0x20], xmm0
movdqu xmm0, xmmword [0x100ec250]
movdqu xmmword [esi + 0x30], xmm0
mov eax, dword [0x100ec260]
mov dword [esi + 0x40], eax
mov eax, dword [0x100ec264]
mov dword [esi + 0x44], eax
movdqu xmm0, xmmword [0x100ec268]
movdqu xmmword [esi + 0x48], xmm0
movdqu xmm0, xmmword [0x100ec278]
movdqu xmmword [esi + 0x58], xmm0
mov byte [esi], 0
push 0x100ef918
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esi], 0
je 0x100a30c8
push edi
push dword [ebx + 0x168]
lea ecx, [esp + 0x14c]
push dword [ebx + 0x164]
call fcn.100a21b0
mov ecx, 0x34
lea esi, [esp + 0x148]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
push 0x10
lea edx, [ebx + 0x154]
lea ecx, [esp + 0x7c]
call fcn.100b5e20
push 4
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0x1000000
lea ecx, [esp + 0x7c]
call fcn.100b5e20
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x7c]
call fcn.100a2180
mov ecx, dword [ebx + 0x150]
mov eax, 1
movdqu xmm1, xmmword [esp + 0x38]
shl eax, cl
movdqu xmm0, xmmword [esp + 0x48]
dec eax
xor ecx, ecx
movdqu xmmword [esp + 0x68], xmm1
mov dword [esp + 0x14], eax
movdqu xmmword [esp + 0x58], xmm0
mov dword [esp + 0xc], ecx
test eax, eax
je 0x100a2f86
mov ebx, dword [esp + 0x14]
mov edi, edi
mov ecx, 0x34
lea esi, [esp + 0x148]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
push 0x20
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x7c]
call fcn.100b5e20
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x7c]
call fcn.100a2180
movdqu xmm1, xmmword [esp + 0x68]
movdqu xmm0, xmmword [esp + 0x38]
movdqu xmm2, xmmword [esp + 0x58]
pxor xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x48]
movdqu xmmword [esp + 0x68], xmm1
pxor xmm0, xmm2
movdqu xmmword [esp + 0x58], xmm0
dec ebx
jne 0x100a2f20
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x100a2f92
lea eax, [ebx + 0x16c]
jmp 0x100a2fa1
lea eax, [ebx + 0x194]
cmp ecx, 1
je 0x100a2fa1
lea eax, [esp + 0x18]
movdqu xmmword [eax], xmm1
inc ecx
mov dword [esp + 0xc], ecx
movdqu xmmword [eax + 0x10], xmm0
mov eax, 0x10
mov dword [esp + 0x14], eax
cmp ecx, 3
jb 0x100a2f16
mov al, byte [esp + 0x18]
mov edx, 9
mov byte [ebx + 0x18c], al
mov al, byte [esp + 0x19]
mov byte [ebx + 0x18d], al
mov al, byte [esp + 0x1a]
lea esi, [edx - 5]
mov byte [ebx + 0x18e], al
mov al, byte [esp + 0x1b]
mov byte [ebx + 0x18f], al
mov al, byte [esp + 0x1c]
mov byte [ebx + 0x190], al
mov al, byte [esp + 0x1d]
mov byte [ebx + 0x191], al
mov al, byte [esp + 0x1e]
mov byte [ebx + 0x192], al
mov al, byte [esp + 0x1f]
mov byte [ebx + 0x193], al
pop edi
lea ebx, [ebx]
mov al, byte [esp + edx + 0x13]
lea ecx, [edx - 1]
and ecx, 7
xor byte [ecx + ebx + 0x18c], al
mov ecx, edx
mov al, byte [esp + edx + 0x14]
and ecx, 7
xor byte [ecx + ebx + 0x18c], al
lea ecx, [edx + 1]
mov al, byte [esp + edx + 0x15]
and ecx, 7
xor byte [ecx + ebx + 0x18c], al
lea ecx, [edx + 2]
mov al, byte [esp + edx + 0x16]
and ecx, 7
xor byte [ecx + ebx + 0x18c], al
lea ecx, [edx + 3]
mov al, byte [esp + edx + 0x17]
and ecx, 7
xor byte [ecx + ebx + 0x18c], al
lea ecx, [edx - 4]
mov al, byte [esp + edx + 0x18]
and ecx, 7
add edx, 6
xor byte [ecx + ebx + 0x18c], al
dec esi
jne 0x100a3020
lea esi, [ebx + 0x14c]
mov dword [esp + 0xc], 0x100ef918
mov byte [esi], 0
push 0x100ef918
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
mov ecx, 0x100ec220
mov dword [esp + 0x220], 0
call fcn.100a2cd0
push 0x100ef918
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebx + 0x1c0]
and eax, 1
or eax, 0
je 0x100a3126
cmp byte [ebx + 0x1bc], 0
je 0x100a3126
mov eax, dword [ebx + 0x18c]
cmp eax, dword [ebx + 0x1b4]
jne 0x100a3103
mov eax, dword [ebx + 0x190]
mov dword [esp + 8], 1
cmp eax, dword [ebx + 0x1b8]
je 0x100a310b
mov dword [esp + 8], 0
mov al, byte [esp + 8]
pop esi
pop ebx
mov ecx, dword [esp + 0x20c]
mov dword fs:[0], ecx
add esp, 0x218
ret
mov ecx, dword [esp + 0x214]
mov al, 1
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x218
ret