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

Disassembly:
push esi
push edi
push ebx
sub esp, 0x40
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x50], 0
je 0x100a8cc9
cmp dword ss:[esp + 0x54], 0
je 0x100a8cc9
cmp dword [esp + 0x58], 0
je 0x100a8cc9
cmp dword [esp + 0x5c], 0
je 0x100a8cc9
cmp dword [esp + 0x64], 0
je 0x100a8cc9
cmp dword [esp + 0x6c], 0
je 0x100a8cc9
cmp dword [esp + 0x70], 0
je 0x100a8cc9
nop dword [eax]
test edx, edx
je 0x100a8cc9
cmp dword [esp + 0x7c], 0
je 0x100a8cc9
mov eax, dword [esp + 0x50]
mov eax, dword ds:[eax]
test eax, eax
je 0x100a8cc9
mov ecx, dword [esp + 0x60]
lea ebx, [ecx - 0x100]
cmp ebx, 0x7f00
ja 0x100a8ac7
mov ecx, dword [esp + 0x68]
lea ebx, [ecx - 0x100]
cmp ebx, 0xff00
ja 0x100a8ac7
mov ecx, dword [esp + 0x7c]
mov ebx, dword [ecx]
mov dword ss:[esp + 0x3c], ebx
cmp ebx, dword [esp + 0x78]
jae 0x100a8ac7
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov esi, dword [esi]
mov edi, dword [ecx]
mov dword [esp + 4], edi
lea ecx, [ebx + esi]
add ecx, edi
neg edi
add edi, 0x7fffffff
cmp ecx, edi
jb 0x100a80e3
cmp esi, dword [esp + 0x60]
jbe 0x100a80e3
mov ecx, dword [esp + 0x58]
mov eax, esi
sub eax, dword [esp + 0x60]
sub esi, eax
mov dword [ecx], esi
cmp dword [esp + 0x68], 0
jbe 0x100a8caa
cmp dword ss:[esp + 0x68], 8
jb 0x100a8c95
cmp dword [esp + 0x68], 0xd1
jb 0x100a8c9c
mov esi, dword [esp + 0x64]
and esi, 0x1f
je 0x100a7fd4
nop dword [eax]
test esi, 3
jne 0x100a8c95
neg esi
add esi, 0x20
shr esi, 2
lea ecx, ds:[esi + 8]
cmp ecx, dword [esp + 0x68]
ja 0x100a8c95
mov ecx, dword [esp + 0x68]
mov ebx, ecx
sub ebx, esi
and ebx, 7
neg ebx
add ebx, ecx
test esi, esi
jbe 0x100a8046
mov dword [esp], ebx
xor ecx, ecx
mov dword [esp + 0x30], edx
mov ebx, 0xffff8000
mov edi, dword [esp + 0x64]
nop dword [eax + eax]
nop dword [eax]
nop
mov edx, dword [edi + ecx*4]
cmp edx, 0xffff8000
cmovle edx, ebx
sub edx, eax
cmp edx, 0xffff8000
cmovle edx, ebx
mov dword [edi + ecx*4], edx
inc ecx
cmp ecx, esi
jb 0x100a8020
mov ebx, dword [esp]
mov edx, dword [esp + 0x30]
vmovd xmm0, eax
vmovdqu ymm1, ymmword [0x102e0dc0]
vpbroadcastd ymm0, xmm0
mov ecx, dword [esp + 0x64]
nop dword [eax + eax]
vpmaxsd ymm2, ymm1, ymmword [ecx + esi*4]
vpsubd ymm3, ymm2, ymm0
vpmaxsd ymm4, ymm3, ymm1
vmovdqu ymmword [ecx + esi*4], ymm4
add esi, 8
cmp esi, ebx
jb 0x100a8060
nop dword [eax + eax]
cmp ebx, dword [esp + 0x68]
jae 0x100a80c3
mov dword [esp + 0x30], edx
mov ecx, 0xffff8000
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
nop word [eax + eax]
mov edx, dword [edi + ebx*4]
cmp edx, 0xffff8000
cmovle edx, ecx
sub edx, eax
cmp edx, 0xffff8000
cmovle edx, ecx
mov dword [edi + ebx*4], edx
inc ebx
cmp ebx, esi
jb 0x100a80a0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esi]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi]
mov eax, dword [eax]
mov esi, dword [ebx]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
sub eax, esi
mov edi, dword [esp + 0x68]
vpxor xmm0, xmm0, xmm0
lea ebx, [esi + ecx - 0x112]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x5c]
lea ecx, [edi - 1]
mov edi, dword [esp + 0x6c]
sub ebx, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], ebx
movzx ecx, word [edi]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x70]
vmovd xmm1, ecx
mov ecx, esi
vmovss xmm2, xmm0, xmm1
lea edi, [edi + 8]
mov ebx, dword [ebx]
cmp edi, dword [esp + 0x78]
ja 0x100a83e9
cmp esi, dword [esp + 0x2c]
jge 0x100a83e9
mov edi, dword [esp + 0x78]
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], edx
lea edi, [edi - 8]
mov dword [esp + 0x20], edi
nop dword [eax]
nop dword [eax]
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x20]
jge 0x100a83dd
mov edx, dword [esp + 0x34]
xor eax, eax
mov edi, dword [esp + 0x64]
lea esi, [edx + ecx]
crc32 eax, dword [esi]
and eax, dword [esp + 0x38]
mov edx, dword [edi + eax*4]
mov dword [edi + eax*4], ecx
mov eax, ecx
sub eax, dword [esp + 0x60]
movzx edi, byte [esi]
cmp eax, edx
jge 0x100a8385
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
cmp edx, dword [esp + 0x18]
mov eax, ebx
cmovl eax, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 8], eax
vmovdqu ymm1, ymmword [eax]
vpcmpeqb ymm3, ymm1, ymmword [ecx + ebx]
xor ebx, ebx
vpmovmskb eax, ymm3
not eax
tzcnt ebx, eax
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x14]
jb 0x100a8ad3
cmp dword ss:[esp + 0xc], 4
jl 0x100a8385
mov edi, dword [esp + 0xc]
neg edx
add edx, ecx
mov dword [esp + 0x14], ebx
movzx ebx, dx
lea eax, [edi - 3]
xor edi, edi
crc32 edi, dword [esi + 1]
mov edx, dword [esp + 0x38]
and edi, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], ebx
lea ebx, [ecx + 1]
mov dword [eax + edi*4], ebx
xor edi, edi
crc32 edi, dword [esi + 2]
lea ebx, [ecx + 2]
and edi, edx
mov dword [eax + edi*4], ebx
xor ebx, ebx
crc32 ebx, dword [esi + 3]
lea esi, [ecx + 3]
and ebx, edx
mov edi, dword [esp + 4]
cmp dword [esp + 0x10], 0
mov dword [eax + ebx*4], esi
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
lea ecx, [ecx + eax - 1]
je 0x100a8385
and edi, 0xff
vmovd xmm5, ebx
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
movzx esi, byte [edi + 0x102e0a40]
movzx edx, word [esi*4 + 0x102e0946]
add ebx, edx
movzx edx, byte [esi + 0x102e0d40]
movzx esi, word [esi*4 + 0x102e0944]
vmovd xmm1, ebx
vmovd xmm3, esi
mov esi, 1
shlx esi, esi, edx
dec esi
and esi, edi
vpunpckldq xmm4, xmm3, xmm0
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, esi
lea esi, [ebx + edx]
vpunpckldq xmm7, xmm2, xmm0
vpsllq xmm1, xmm7, xmm1
vpor xmm2, xmm3, xmm1
cmp eax, 0x100
jge 0x100a8325
mov edi, eax
lea ebx, [ebx + edx + 5]
vmovd xmm5, esi
movzx eax, byte [edi + 0x102e0b40]
vmovd xmm1, ebx
movzx ebx, byte [eax + 0x102e0d5d]
movzx edx, byte [eax + 0x102e0d7b]
mov eax, 1
shlx eax, eax, ebx
dec eax
lea ebx, [esi + ebx + 5]
and eax, edi
vmovd xmm3, edx
cdq
vmovss xmm4, xmm0, xmm3
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a83b1
mov edi, eax
mov eax, edi
sar eax, 7
lea ebx, [ebx + edx + 5]
vmovd xmm5, esi
movzx edx, byte [eax + 0x102e0c40]
vmovd xmm1, ebx
movzx eax, byte [edx + 0x102e0d7b]
movzx ebx, byte [edx + 0x102e0d5d]
mov edx, 1
vmovd xmm3, eax
shlx eax, edx, ebx
vmovss xmm4, xmm0, xmm3
dec eax
vpsllq xmm6, xmm4, xmm5
and eax, edi
vpor xmm3, xmm2, xmm6
cdq
lea ebx, [esi + ebx + 5]
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a83b1
and edi, 0xff
vmovd xmm4, ebx
movzx edx, word [edi*4 + 0x102e0540]
movzx eax, word [edi*4 + 0x102e0542]
add ebx, eax
vmovd xmm1, edx
vpunpckldq xmm3, xmm1, xmm0
vpsllq xmm5, xmm3, xmm4
vpor xmm2, xmm2, xmm5
cmp ebx, 0x20
jb 0x100a83d2
mov eax, dword [esp + 0x30]
add ebx, 0xffffffe0
add dword [esp + 0x3c], 4
vmovd dword [eax], xmm2
add eax, 4
mov dword [esp + 0x30], eax
vpsrlq xmm2, xmm2, 0x20
inc ecx
cmp ecx, dword [esp + 0x2c]
jl 0x100a8160
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
cmp ebx, 8
jb 0x100a8445
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x3c]
mov edi, dword ss:[esp + 0x78]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
nop
cmp esi, edi
jge 0x100a8439
vmovd eax, xmm2
add ebx, 0xfffffff8
vpsrlq xmm2, xmm2, 8
mov byte [edx], al
inc esi
inc edx
cmp ebx, 8
jae 0x100a8420
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
lea edi, [edi + 0x10]
mov dword [esp + 0x20], edi
cmp ecx, edi
jge 0x100a8759
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], edx
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax + eax]
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x78]
jae 0x100a874d
mov eax, dword [esp + 0x34]
xor edi, edi
mov edx, dword [esp + 0x64]
add eax, ecx
crc32 edi, dword [eax]
and edi, dword [esp + 0x38]
mov esi, dword [edx + edi*4]
mov dword [edx + edi*4], ecx
mov edi, ecx
sub edi, dword [esp + 0x60]
movzx edx, byte [eax]
cmp edi, esi
jge 0x100a86cc
mov edi, dword [esp + 0x3c]
lea edi, [edi + 4]
cmp edi, dword [esp + 0x78]
jg 0x100a86cc
mov edi, dword [esp + 0x34]
cmp esi, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov ebx, edi
cmovl ebx, dword [esp + 0x1c]
add ebx, esi
mov edi, dword [ecx + edi]
mov dword [esp + 0xc], ebx
cmp edi, dword [ebx]
mov ebx, dword [esp + 0x14]
jne 0x100a86cc
mov dword [esp + 4], 4
mov dword [esp], esi
mov esi, dword [esp + 4]
mov edi, dword [esp + 0xc]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov dl, byte [esi + eax]
cmp dl, byte [esi + edi]
jne 0x100a8531
inc esi
cmp esi, 0x102
jl 0x100a8520
mov dword [esp + 4], esi
mov esi, dword [esp]
mov edi, dword [esp + 4]
neg esi
mov dword [esp + 0x14], ebx
add esi, ecx
mov ebx, dword [esp + 0x38]
movzx esi, si
lea edx, [edi - 3]
xor edi, edi
crc32 edi, dword [eax + 1]
and edi, ebx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x10], esi
lea esi, [ecx + 1]
mov dword [edx + edi*4], esi
xor edi, edi
crc32 edi, dword [eax + 2]
lea esi, [ecx + 2]
and edi, ebx
mov dword [edx + edi*4], esi
xor esi, esi
crc32 esi, dword [eax + 3]
lea eax, [ecx + 3]
and esi, ebx
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x10], 0
mov dword [edx + esi*4], eax
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
lea ecx, ds:[ecx + eax - 1]
je 0x100a86cc
movzx edi, byte [edx + 0x102e0a40]
vmovd xmm5, ebx
mov eax, dword [esp + 0x10]
dec eax
movzx esi, word [edi*4 + 0x102e0946]
add ebx, esi
movzx esi, byte [edi + 0x102e0d40]
movzx edi, word [edi*4 + 0x102e0944]
mov dword [esp + 0x10], eax
vmovd xmm1, ebx
vmovd xmm3, edi
mov edi, 1
shlx edi, edi, esi
dec edi
and edi, edx
lea edx, [ebx + esi]
vpunpckldq xmm4, xmm3, xmm0
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, edi
vpunpckldq xmm7, xmm2, xmm0
vpsllq xmm1, xmm7, xmm1
vpor xmm2, xmm3, xmm1
cmp eax, 0x100
jge 0x100a866c
vmovd xmm5, edx
lea edi, [ebx + esi + 5]
mov esi, eax
movzx eax, byte [esi + 0x102e0b40]
vmovd xmm1, edi
movzx ebx, byte [eax + 0x102e0d5d]
movzx edi, byte [eax + 0x102e0d7b]
mov eax, 1
shlx eax, eax, ebx
dec eax
lea ebx, [edx + ebx + 5]
and eax, esi
vmovd xmm3, edi
cdq
vmovss xmm4, xmm0, xmm3
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a86f2
vmovd xmm5, edx
lea edi, [ebx + esi + 5]
mov esi, eax
mov ebx, esi
sar ebx, 7
vmovd xmm1, edi
movzx eax, byte [ebx + 0x102e0c40]
movzx ebx, byte [eax + 0x102e0d5d]
movzx edi, byte [eax + 0x102e0d7b]
mov eax, 1
shlx eax, eax, ebx
dec eax
lea ebx, [edx + ebx + 5]
and eax, esi
vmovd xmm3, edi
cdq
vmovss xmm4, xmm0, xmm3
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a86f2
movzx eax, word [edx*4 + 0x102e0542]
vmovd xmm4, ebx
movzx edx, word [edx*4 + 0x102e0540]
add ebx, eax
vmovd xmm1, edx
vpunpckldq xmm3, xmm1, xmm0
vpsllq xmm5, xmm3, xmm4
vpor xmm2, xmm2, xmm5
cmp ebx, 8
jb 0x100a8742
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x78]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
cmp edx, esi
jae 0x100a8739
vmovd eax, xmm2
add ebx, 0xfffffff8
vpsrlq xmm2, xmm2, 8
mov byte [edi], al
inc edx
inc edi
cmp ebx, 8
jae 0x100a8720
nop
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], edi
inc ecx
cmp ecx, dword [esp + 0x20]
jl 0x100a8480
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x80], 2
jl 0x100a8a8a
mov edi, dword [esp + 0x2c]
lea edi, [edi + 0x10f]
mov dword [esp + 0x20], edi
cmp ecx, edi
jge 0x100a8ba8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], edx
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x78]
jge 0x100a8c88
mov eax, dword [esp + 0x34]
xor edi, edi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
lea ecx, [eax + esi]
crc32 edi, dword [ecx]
and edi, dword [esp + 0x38]
mov eax, dword [edx + edi*4]
mov dword [edx + edi*4], esi
mov edi, 0x102
mov edx, dword [esp + 0x20]
sub edx, esi
add edx, 3
cmp edx, 0x102
cmovl edi, edx
sub esi, dword [esp + 0x60]
mov dword [esp + 0x28], edi
movzx edx, byte [ecx]
cmp esi, eax
jge 0x100a8a06
mov esi, dword [esp + 0x3c]
lea edi, ds:[esi + 4]
cmp edi, dword [esp + 0x78]
jg 0x100a8a06
mov edi, dword [esp + 0x34]
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov ebx, edi
cmovl ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
add ebx, eax
mov dword [esp + 0x10], ebx
mov esi, dword [esi + edi]
cmp esi, dword [ebx]
mov ebx, dword [esp + 0x14]
jne 0x100a8a06
mov edx, 4
mov dword [esp + 0xc], edx
cmp dword [esp + 0x28], 4
jle 0x100a8874
mov dword [esp], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
nop dword [eax + eax]
nop dword [eax]
mov al, byte [edx + ecx]
cmp al, byte [edx + esi]
jne 0x100a886d
inc edx
cmp edx, edi
jl 0x100a8860
mov dword [esp + 0xc], edx
mov eax, dword [esp]
mov edi, edx
neg eax
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x24]
add eax, ebx
movzx esi, ax
lea eax, [edi - 3]
xor edi, edi
crc32 edi, dword [ecx + 1]
mov edx, dword [esp + 0x38]
and edi, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], esi
lea esi, [ebx + 1]
mov dword [eax + edi*4], esi
xor edi, edi
crc32 edi, dword [ecx + 2]
lea esi, [ebx + 2]
and edi, edx
mov dword [eax + edi*4], esi
xor esi, esi
crc32 esi, dword [ecx + 3]
lea ecx, [ebx + 3]
and esi, edx
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
lea edx, [ebx + eax - 1]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
test ecx, ecx
je 0x100a8a06
movzx edx, dl
vmovd xmm5, ebx
dec ecx
movzx esi, byte [edx + 0x102e0a40]
movzx edi, word [esi*4 + 0x102e0944]
movzx eax, word [esi*4 + 0x102e0946]
add ebx, eax
movzx eax, byte [esi + 0x102e0d40]
mov esi, 1
vmovd xmm3, edi
shlx edi, esi, eax
dec edi
vmovd xmm1, ebx
and edi, edx
lea edx, [ebx + eax]
vpunpckldq xmm4, xmm3, xmm0
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, edi
vpunpckldq xmm7, xmm2, xmm0
vpsllq xmm1, xmm7, xmm1
vpor xmm2, xmm3, xmm1
cmp ecx, 0x100
jge 0x100a89a8
movzx edi, byte [ecx + 0x102e0b40]
lea esi, [ebx + eax + 5]
vmovd xmm5, edx
movzx eax, byte [edi + 0x102e0d7b]
movzx ebx, byte [edi + 0x102e0d5d]
vmovd xmm1, esi
mov esi, 1
vmovd xmm3, eax
shlx eax, esi, ebx
lea ebx, [edx + ebx + 5]
dec eax
vmovss xmm4, xmm0, xmm3
and eax, ecx
vpsllq xmm6, xmm4, xmm5
cdq
vpor xmm3, xmm2, xmm6
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a8a2f
mov edi, ecx
lea esi, [ebx + eax + 5]
sar edi, 7
vmovd xmm5, edx
vmovd xmm1, esi
movzx eax, byte [edi + 0x102e0c40]
mov edi, 1
movzx ebx, byte [eax + 0x102e0d5d]
movzx esi, byte [eax + 0x102e0d7b]
shlx eax, edi, ebx
dec eax
lea ebx, [edx + ebx + 5]
and eax, ecx
vmovd xmm3, esi
cdq
vmovss xmm4, xmm0, xmm3
vpsllq xmm6, xmm4, xmm5
vpor xmm3, xmm2, xmm6
vmovd xmm2, eax
vmovd xmm7, edx
vpunpckldq xmm2, xmm2, xmm7
vpsllq xmm1, xmm2, xmm1
vpor xmm2, xmm3, xmm1
jmp 0x100a8a2f
movzx edx, dl
vmovd xmm4, ebx
movzx ecx, word [edx*4 + 0x102e0540]
movzx eax, word [edx*4 + 0x102e0542]
add ebx, eax
vmovd xmm1, ecx
vpunpckldq xmm3, xmm1, xmm0
vpsllq xmm5, xmm3, xmm4
vpor xmm2, xmm2, xmm5
cmp ebx, 8
jb 0x100a8b87
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax + eax]
vmovd eax, xmm2
add ebx, 0xfffffff8
vpsrlq xmm2, xmm2, 8
mov byte [esi], al
inc edx
inc esi
cmp ebx, 8
jb 0x100a8b7f
cmp edx, ecx
jl 0x100a8a60
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x6c]
neg esi
mov edi, dword [esp + 0x70]
add esi, ecx
vmovd eax, xmm2
mov word [edx], ax
mov dword [edi], ebx
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add dword [ebx], esi
sub dword [eax], esi
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x7c]
mov dword [esi], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
xor eax, eax
vzeroupper
add esp, 0x40
pop ebx
pop edi
pop esi
ret
mov eax, 0xfffffffa
add esp, 0x40
pop ebx
pop edi
pop esi
ret
mov dword [esp + 4], edi
mov dword [esp], edx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
vmovdqu ymm1, ymmword [esi + edx]
vpcmpeqb ymm3, ymm1, ymmword [edi + edx]
vpmovmskb eax, ymm3
cmp eax, 0xffffffff
jne 0x100a8b72
add edx, 0x20
cmp edx, 0x100
jl 0x100a8b00
mov dword [esp + 0xc], edx
mov edi, dword [esp + 4]
mov edx, dword [esp]
je 0x100a8b3a
not eax
tzcnt eax, eax
add dword [esp + 0xc], eax
jmp 0x100a81d7
mov edi, dword [esp + 8]
mov al, byte [esi + 0x100]
cmp al, byte [edi + 0x100]
jne 0x100a81e6
mov al, byte [esi + 0x101]
cmp al, byte [edi + 0x101]
mov edi, 0x101
mov eax, 0x102
cmove edi, eax
mov dword [esp + 0xc], edi
jmp 0x100a81e6
mov dword [esp + 0xc], edx
mov edi, dword [esp + 4]
mov edx, dword [esp]
jmp 0x100a8b2b
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x20]
jl 0x100a87a0
mov ecx, eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
lea edi, [edi + 0x112]
mov dword [esp], edi
cmp ecx, edi
jge 0x100a8a8a
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x3c]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
cmp edx, dword [esp + 0x78]
jge 0x100a8c71
movzx edi, byte [ecx + eax]
vmovd xmm4, ebx
movzx esi, word [edi*4 + 0x102e0542]
add ebx, esi
movzx esi, word [edi*4 + 0x102e0540]
vmovd xmm1, esi
vpunpckldq xmm3, xmm1, xmm0
vpsllq xmm5, xmm3, xmm4
vpor xmm2, xmm2, xmm5
cmp ebx, 8
jb 0x100a8c67
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x30]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
vmovd eax, xmm2
add ebx, 0xfffffff8
vpsrlq xmm2, xmm2, 8
mov byte [edi], al
inc edx
inc edi
cmp ebx, 8
jb 0x100a8c7e
cmp edx, esi
jl 0x100a8c40
mov dword [esp + 0x3c], edx
inc ecx
mov esi, dword [esp + 0x18]
jmp 0x100a8a8a
inc ecx
cmp ecx, dword [esp]
jl 0x100a8be0
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x18]
jmp 0x100a8a8a
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x34]
jmp 0x100a8c67
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
jmp 0x100a8a8a
xor ebx, ebx
jmp 0x100a807b
mov ebx, dword [esp + 0x68]
xor esi, esi
and ebx, 0xfffffff8
jmp 0x100a8046
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ebx, dword [ecx]
mov ecx, dword [edi]
mov eax, dword [eax]
mov dword [esp + 0x3c], ebx
mov dword [esp + 4], ecx
jmp 0x100a80e3
mov eax, 0xfffffff8
add esp, 0x40
pop ebx
pop edi
pop esi
ret