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

Disassembly:
mov eax, 0x308
call fcn.101632f0
mov eax, dword [0x101f9e50]
xor eax, esp
mov dword [esp + 0x304], eax
mov ecx, dword [esp + 0x314]
push ebx
mov ebx, dword [esp + 0x310]
mov dword [esp + 0x3c], ebx
test ecx, ecx
je 0x100a4724
push ebp
mov ebp, dword [esp + 0x318]
push esi
push edi
add ebp, 2
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x2d4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x2d8], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x2dc], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x2e0], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x2e4], eax
mov eax, dword [ebx + 0x24]
mov edi, eax
mov dword [esp + 0x2e8], edx
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x2f4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x2f8], edx
mov edx, dword [ebx + 0x34]
dec ecx
mov dword [esp + 0x2fc], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x300], edx
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0x324], ecx
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x304], eax
mov dword [esp + 0x308], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], ebp
jmp 0x100a41da
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
movzx eax, byte [ebp - 2]
cdq
mov ebx, eax
mov eax, dword [esp + 0x28]
mov ebp, edx
movzx eax, byte [eax - 1]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax + 1]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax + 2]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax + 3]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax + 4]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x28]
shld ebp, ebx, 8
movzx eax, byte [eax + 5]
cdq
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x10]
or ebp, edx
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov edx, edi
mov eax, esi
shld edx, eax, 0x17
mov dword [esp + 0x30], ebp
mov dword [ecx + 0x44], ebp
mov ebp, edi
shl eax, 0x17
mov dword [esp + 0x24], ebx
mov dword [ecx + 0x40], ebx
shr ebp, 9
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x14]
or ebp, eax
mov eax, dword [esp + 0x20]
shrd eax, edx, 0x12
mov dword [ecx + 0x24], edi
mov edi, esi
mov dword [ecx + 0x20], esi
xor esi, esi
shl edi, 0xe
shr edx, 0x12
or esi, eax
or edi, edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
xor ebx, edi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor ebp, esi
shr edx, 0xe
or edi, edx
mov edx, dword [ecx + 0x28]
and edx, dword [esp + 0x20]
xor ebx, edi
mov edi, dword [esp + 0x20]
xor esi, esi
or esi, eax
mov eax, dword [ecx + 0x2c]
and eax, dword [esp + 0x14]
xor ebp, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [ecx + 0x30]
not esi
and esi, dword [ecx + 0x34]
xor edi, edx
xor esi, eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
add ebp, edi
adc ebx, esi
add ebp, dword [eax*8 + 0x101ab598]
adc ebx, dword [eax*8 + 0x101ab59c]
add ebp, dword [ecx + 0x38]
mov eax, dword [esp + 0x24]
adc ebx, dword [ecx + 0x3c]
add eax, ebp
adc edx, ebx
mov ebx, dword [ecx + 0x18]
add ebx, eax
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x1c]
adc eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x1c]
mov edi, eax
shrd eax, edx, 0x1c
shl edi, 4
shr edx, 0x1c
or edi, edx
mov edx, dword [esp + 0x1c]
mov ebp, dword [ecx + 8]
xor esi, esi
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x18], esi
shr edi, 2
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x18], edi
mov eax, dword [esp + 0x10]
xor esi, esi
or esi, edx
mov edx, dword [esp + 0x1c]
xor dword [esp + 0x2c], esi
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or edi, eax
xor dword [esp + 0x18], edi
mov edi, dword [esp + 0x2c]
xor esi, esi
or esi, edx
mov dword [esp + 0x20], ebx
mov ebx, dword [ecx + 0xc]
xor edi, esi
mov edx, ebp
xor edx, dword [esp + 0x10]
and ebp, dword [esp + 0x10]
and edx, dword [ecx + 0x10]
mov eax, ebx
xor eax, dword [esp + 0x1c]
and ebx, dword [esp + 0x1c]
and eax, dword [ecx + 0x14]
xor edx, ebp
mov ebp, dword [esp + 0x28]
xor eax, ebx
add edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
adc eax, edi
add edx, dword [esp + 0x24]
adc eax, dword [esp + 0x30]
inc ebx
add ebp, 8
sub ecx, 8
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebp
cmp ebx, 0x10
jl 0x100a41d2
cmp ebx, 0x50
jge 0x100a468d
lea eax, [ebx*8 + 0x101ab598]
mov dword [esp + 0x30], eax
lea ecx, [ecx]
mov ebp, dword [ecx + 0x50]
mov ebx, dword [ecx + 0x54]
mov eax, ebp
mov edx, ebx
shrd eax, edx, 0x13
shr edx, 0x13
xor esi, esi
or esi, eax
mov edi, ebp
shl edi, 0xd
or edi, edx
mov eax, ebp
mov edx, ebx
shld edx, eax, 3
shl eax, 3
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], esi
mov edi, ebx
shrd ebp, ebx, 6
xor esi, esi
or esi, edx
mov edx, dword [esp + 0x18]
xor edx, esi
mov esi, dword [ecx + 0xb8]
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x24]
xor eax, edi
xor eax, ebp
shr ebx, 6
xor edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0xbc]
mov dword [esp + 0x24], eax
mov eax, esi
shrd eax, edx, 8
shr edx, 8
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx + 0xb8]
mov ebp, esi
shl ebp, 0x18
or ebp, edx
mov edx, dword [ecx + 0xbc]
shrd eax, edx, 1
shr edx, 1
mov edi, esi
xor esi, esi
or esi, eax
mov eax, dword [ecx + 0xbc]
shl edi, 0x1f
or edi, edx
mov edx, dword [ecx + 0xb8]
shrd edx, eax, 7
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
mov edi, dword [esp + 0x14]
shr eax, 7
xor ebx, edx
mov edx, dword [esp + 0x18]
xor ebp, eax
mov eax, dword [esp + 0x24]
add eax, ebx
mov ebx, dword [esp + 0x10]
adc edx, ebp
add eax, dword [ecx + 0xc0]
mov dword [ecx + 4], esi
adc edx, dword [ecx + 0xc4]
add eax, dword [ecx + 0x78]
mov esi, dword [esp + 0x20]
adc edx, dword [ecx + 0x7c]
mov ebp, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
mov dword [ecx], ebx
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], edi
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
shr ebp, 9
mov edx, edi
mov eax, esi
shld edx, eax, 0x17
shl eax, 0x17
or ebp, eax
mov eax, dword [esp + 0x20]
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x14]
shrd eax, edx, 0x12
shr edx, 0x12
mov edi, esi
shl edi, 0xe
or edi, edx
mov edx, dword [esp + 0x14]
xor ebx, edi
xor esi, esi
or esi, eax
mov eax, dword [esp + 0x20]
mov edi, eax
shrd eax, edx, 0xe
xor ebp, esi
shl edi, 0x12
shr edx, 0xe
or edi, edx
mov edx, dword [ecx + 0x28]
and edx, dword [esp + 0x20]
xor ebx, edi
mov edi, dword [esp + 0x20]
xor esi, esi
or esi, eax
mov eax, dword [ecx + 0x2c]
and eax, dword [esp + 0x14]
xor ebp, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [ecx + 0x30]
not esi
and esi, dword [ecx + 0x34]
xor edi, edx
mov edx, dword [esp + 0x18]
xor esi, eax
mov eax, dword [esp + 0x30]
add ebp, edi
adc ebx, esi
add ebp, dword [ecx + 0x38]
adc ebx, dword [ecx + 0x3c]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
mov eax, dword [esp + 0x24]
add eax, ebp
adc edx, ebx
mov ebx, dword [ecx + 0x18]
add ebx, eax
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x1c]
adc eax, edx
mov ebp, dword [ecx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
mov edi, eax
shrd eax, edx, 0x1c
shl edi, 4
shr edx, 0x1c
or edi, edx
mov edx, dword [esp + 0x1c]
xor esi, esi
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x2c], esi
shr edi, 2
shl eax, 0x1e
mov dword [esp + 0x20], ebx
mov ebx, dword [ecx + 0xc]
xor esi, esi
or edi, eax
xor dword [esp + 0x2c], edi
mov eax, dword [esp + 0x10]
or esi, edx
mov edx, dword [esp + 0x1c]
xor dword [esp + 0x34], esi
mov edi, edx
shld edx, eax, 0x19
shl eax, 0x19
shr edi, 7
or edi, eax
xor dword [esp + 0x2c], edi
mov edi, dword [esp + 0x34]
mov eax, ebx
xor eax, dword [esp + 0x1c]
and ebx, dword [esp + 0x1c]
and eax, dword [ecx + 0x14]
xor esi, esi
or esi, edx
mov edx, ebp
xor edx, dword [esp + 0x10]
and ebp, dword [esp + 0x10]
and edx, dword [ecx + 0x10]
xor eax, ebx
mov ebx, dword [esp + 0x2c]
xor edi, esi
xor edx, ebp
add ebx, edx
adc edi, eax
add ebx, dword [esp + 0x24]
adc edi, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x30]
add ebx, 8
sub ecx, 8
mov eax, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], ebx
cmp ebx, 0x101ab818
jl 0x100a4420
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
add esi, edx
mov edx, dword [esp + 0x38]
adc edx, eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 4], edx
mov edx, dword [ecx + 8]
add dword [ebx + 8], edx
mov edx, dword [ecx + 0x10]
mov dword [ebx], esi
adc eax, dword [ebx + 0xc]
add dword [ebx + 0x10], edx
mov edx, dword [ecx + 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [ecx + 0x14]
adc eax, dword [ebx + 0x14]
add dword [ebx + 0x18], edx
mov edx, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
mov eax, dword [ecx + 0x1c]
adc eax, dword [ebx + 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x14]
mov dword [ebx + 0x20], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 0x24], edx
mov edx, dword [ecx + 0x28]
add dword [ebx + 0x28], edx
mov edx, dword [ecx + 0x30]
adc eax, dword [ebx + 0x2c]
add dword [ebx + 0x30], edx
mov edx, dword [ecx + 0x38]
mov dword [ebx + 0x2c], eax
mov eax, dword [ecx + 0x34]
adc eax, dword [ebx + 0x34]
add dword [ebx + 0x38], edx
mov dword [ebx + 0x34], eax
mov eax, dword [ecx + 0x3c]
adc eax, dword [ebx + 0x3c]
mov ecx, dword [esp + 0x324]
mov dword [ebx + 0x3c], eax
test ecx, ecx
jne 0x100a4110
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x308]
pop ebx
xor ecx, esp
call fcn.1016027d
add esp, 0x308
ret