Function at 0x100c3be0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc8
mov eax, dword [0x10119540]
xor eax, esp
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xd8]
push edi
mov edi, dword [esp + 0xe4]
add edi, edx
mov dword [esp + 0x5c], esi
cmp dword [esp + 0xf0], 0
mov eax, dword [esi + 0x74b0]
mov ebx, dword [esi + 0x7578]
mov ebp, dword [esi + 0x7604]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x74b4]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x74b8]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x44], eax
je 0x100c569c
push dword [esp + 0xec]
mov dword [esi + 0x750c], 1
mov eax, dword [esi + 0x682c]
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x6830]
mov dword [esp + 0xd0], eax
mov eax, dword [esi + 0x6834]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xa0]
push ecx
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
jbe 0x100c3cc2
mov esi, 0xffffffec
jmp 0x100c570c
push dword [esi]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.100c63d0
push dword [esi + 8]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.100c63d0
push dword [esi + 4]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.100c63d0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov bl, byte [edx + 2]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xb8]
mov esi, dword [ecx + 4]
mov bh, byte [ecx + 2]
mov byte [esp + 0x2b], bl
mov edi, dword [ebp + eax*8 + 4]
mov bl, byte [ebp + eax*8 + 2]
movzx ebp, word [edx]
mov dword [esp + 0x58], ebp
movzx ebp, word [ecx]
movzx ecx, byte [ecx + 3]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x3c], ecx
mov ecx, edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x68], esi
mov esi, dword [edx + 4]
movzx edx, byte [edx + 3]
mov dword [esp + 0x38], ebp
movzx ebp, word [edi + eax*8]
movzx eax, byte [ecx + eax*8 + 3]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], esi
mov byte [esp + 0x1b], bh
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], eax
cmp bl, 1
jbe 0x100c3f07
cmp dword [esp + 0xf4], 0
je 0x100c3e63
cmp bl, 0x19
jb 0x100c3e63
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
mov edx, ebp
movzx eax, bl
sub eax, 5
lea esi, [ecx + eax]
and ecx, 0x1f
shl edx, cl
neg eax
and eax, 0x1f
mov ecx, eax
mov eax, ebp
shr edx, cl
mov ecx, esi
shl edx, 5
add edx, edi
mov edi, dword [esp + 0xa4]
cmp esi, 0x20
ja 0x100c3e4d
cmp edi, dword [esp + 0xac]
jb 0x100c3e16
mov eax, ecx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x100c3e3b
mov ebx, dword [esp + 0xa8]
cmp edi, ebx
je 0x100c3e4d
shr esi, 3
mov eax, edi
sub eax, esi
cmp eax, ebx
jae 0x100c3e30
mov esi, edi
sub esi, ebx
lea eax, [esi*8]
sub edi, esi
sub ecx, eax
mov ebp, dword [edi]
mov eax, ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
lea esi, [ecx + 5]
and ecx, 0x1f
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c3ee5
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
mov edx, ebp
movzx eax, bl
lea esi, [eax + ecx]
and ecx, 0x1f
neg eax
shl edx, cl
and eax, 0x1f
mov ecx, eax
shr edx, cl
add edx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x1c], edx
cmp esi, 0x20
ja 0x100c3ee5
cmp edi, dword [esp + 0xac]
jb 0x100c3eae
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x100c3ed5
mov ebx, dword [esp + 0xa8]
cmp edi, ebx
je 0x100c3ee5
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x100c3eca
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov bh, byte [esp + 0x1b]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x40], ecx
jmp 0x100c3fc7
mov ebp, dword [esp + 0x9c]
xor eax, eax
test esi, esi
sete al
test bl, bl
jne 0x100c3f56
mov ecx, dword [esp + eax*4 + 0xc8]
mov eax, esi
mov edi, dword [esp + 0xa4]
neg eax
mov esi, dword [esp + 0xa0]
sbb eax, eax
mov dword [esp + 0x1c], ecx
and eax, 4
mov eax, dword [esp + eax + 0xc8]
mov dword [esp + 0x40], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], ecx
jmp 0x100c3fd5
mov ecx, dword [esp + 0xa0]
mov edi, ebp
lea esi, [ecx + 1]
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0xc8]
shr edi, 0x1f
add edi, eax
mov dword [esp + 0xa0], esi
add edi, dword [esp + 0x4c]
mov dword [esp + 0x40], ecx
cmp edi, 3
jne 0x100c3f99
lea eax, [ecx - 1]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c3fb2
mov eax, dword [esp + edi*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
cmp edi, 1
je 0x100c3fc0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd0], eax
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
test bh, bh
je 0x100c3ffb
movzx edx, bh
mov ecx, esi
mov eax, ebp
lea esi, [ecx + edx]
and ecx, 0x1f
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x68], ecx
mov dl, byte [esp + 0x2b]
movzx ecx, bh
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c406b
cmp esi, 0x20
ja 0x100c406b
mov ebx, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x100c403d
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100c4072
cmp edi, ebx
je 0x100c4072
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x100c4052
mov ecx, edi
sub ecx, ebx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add esi, eax
mov dword [esp + 0x9c], ebp
jmp 0x100c4072
mov ebx, dword [esp + 0xa8]
test dl, dl
je 0x100c409c
movzx edx, dl
mov ecx, esi
mov eax, ebp
lea esi, [ecx + edx]
and ecx, 0x1f
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x64], ecx
cmp esi, 0x20
ja 0x100c40e6
cmp edi, dword [esp + 0xac]
jb 0x100c40b6
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x100c40d6
cmp edi, ebx
je 0x100c40e6
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x100c40cb
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x2c]
lea edx, [esi + eax]
mov esi, ebp
mov ecx, edx
neg ecx
and ecx, 0x1f
shr esi, cl
and esi, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x58]
movzx eax, ax
add esi, eax
mov eax, dword [esp + 0x3c]
add edx, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0xb0], esi
mov ecx, edx
neg ecx
mov esi, ebp
and ecx, 0x1f
shr esi, cl
mov ecx, edx
and esi, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x38]
movzx eax, ax
add esi, eax
mov dword [esp + 0x38], esi
mov dword [esp + 0xc0], esi
mov esi, ebp
cmp edx, 0x20
ja 0x100c4198
cmp edi, dword [esp + 0xac]
jb 0x100c415d
mov eax, ecx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x100c4186
cmp edi, ebx
jne 0x100c416a
cmp edx, 0x20
jb 0x100c4198
mov ecx, edx
jmp 0x100c4198
mov edx, ecx
mov eax, edi
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x100c417b
mov edx, edi
sub edx, ebx
lea eax, [edx*8]
sub edi, edx
sub ecx, eax
mov ebp, dword [edi]
mov esi, ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x34]
movq xmm0, qword [esp + 0x64]
movq qword [esp + 0x78], xmm0
movq qword [esp + 0x64], xmm0
lea ebx, [ecx + eax]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
neg ecx
mov dword [esp + 0xa0], ebx
and ecx, 0x1f
shr esi, cl
and esi, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
movzx eax, ax
add esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], esi
add eax, ecx
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x5c]
cmp eax, dword [esi + 0x7604]
ja 0x100c4a2d
nop word [eax + eax]
mov esi, dword [esp + 0x64]
movq qword [esp + 0x90], xmm0
lea eax, [esi + ecx]
mov dword [esp + 0x14], eax
lea ecx, [eax - 0x20]
mov eax, dword [esp + 0x20]
add eax, esi
add esi, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x10], eax
sub edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x14], eax
ja 0x100c4482
mov eax, dword [esp + 0x20]
add eax, esi
cmp eax, ecx
ja 0x100c4482
mov ecx, dword [esp + 0x54]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x20]
cmp ecx, eax
jb 0x100c4482
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x64]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c42c3
mov edx, dword [esp + 0x30]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea ebp, [ecx + eax]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x9c]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c42bf
mov eax, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x100c42a7
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], eax
mov eax, ecx
sub eax, dword [esp + 0x48]
cmp dword [esp + 0x1c], eax
jbe 0x100c4347
mov eax, ecx
sub eax, dword [esp + 0x70]
cmp dword [esp + 0x1c], eax
ja 0x100c3cb8
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
add edx, eax
mov eax, dword [esp + 0x68]
add eax, edx
cmp eax, dword [esp + 0x44]
ja 0x100c431c
push dword [esp + 0x68]
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov ecx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x100c44c6
mov esi, dword [esp + 0x44]
sub esi, edx
push esi
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x68]
add ecx, esi
mov edx, dword [esp + 0x48]
sub eax, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
jmp 0x100c434e
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x1c], 0x10
mov dword [esp + 0x14], eax
jb 0x100c43a1
lea ebp, [eax + ecx]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x9c]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c4398
lea eax, [ecx + 0x10]
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x24]
nop dword [eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x100c4380
mov ecx, dword [esp + 0x30]
jmp 0x100c44c6
cmp dword [esp + 0x1c], 8
jae 0x100c43df
movzx eax, byte [edx]
mov byte [ecx], al
movzx eax, byte [edx + 1]
mov byte [ecx + 1], al
movzx eax, byte [edx + 2]
mov byte [ecx + 2], al
movzx eax, byte [edx + 3]
mov byte [ecx + 3], al
mov eax, dword [esp + 0x1c]
add edx, dword [eax*4 + 0x1000e1a8]
mov eax, dword [edx]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
sub edx, dword [eax*4 + 0x1000e1c8]
jmp 0x100c43fb
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, eax
mov eax, dword [esp + 0x14]
cmp eax, 8
jbe 0x100c447c
add eax, 0xfffffff8
lea esi, [edx + 8]
lea edx, [ecx + 8]
mov dword [esp + 0x14], eax
lea ecx, [edx + eax]
mov eax, edx
sub eax, esi
mov dword [esp + 0x24], ecx
cmp eax, 0x10
jge 0x100c444c
sub esi, edx
mov ebp, ecx
mov eax, dword [edx + esi]
mov ecx, dword [edx + esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebp
jb 0x100c4425
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x100c44c6
cmp dword [esp + 0x14], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x100c4478
add edx, 0x10
lea eax, [esi + 0x10]
nop
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x100c4460
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x100c44c6
push dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x54]
push dword [esp + 0x74]
push dword [esp + 0x50]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x34]
add eax, 0xffffffe0
push eax
push dword [esp + 0x78]
push dword [esp + 0x48]
call fcn.100c6270
mov ecx, dword [esp + 0x50]
mov esi, eax
mov dword [esp + 0x30], ecx
cmp esi, 0xffffff88
ja 0x100c570c
mov edx, dword [esp + 0x20]
add edx, esi
mov esi, dword [esp + 0xf0]
sub esi, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0xf0], esi
je 0x100c4a3a
cmp ebx, 0x20
ja 0x100c4544
cmp edi, dword [esp + 0xac]
jb 0x100c450a
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c452d
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100c4544
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c4526
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + ebp*8 + 4]
mov al, byte [eax + ebp*8 + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xbc]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x38]
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0xc4]
mov al, byte [ecx + eax*8 + 2]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0xbc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0xb4]
movzx edx, word [edx + ebp*8]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x34], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
cmp al, 1
jbe 0x100c4751
cmp dword [esp + 0xf4], 0
je 0x100c46c0
cmp al, 0x19
jb 0x100c46c0
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, esi
cmp ebx, 0x20
ja 0x100c46a9
cmp edi, dword [esp + 0xac]
jb 0x100c4672
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c4699
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x100c46a9
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c468e
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c472f
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
lea edx, [eax + esi]
mov dword [esp + 0x1c], edx
cmp ebx, 0x20
ja 0x100c472f
cmp edi, dword [esp + 0xac]
jb 0x100c46f8
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c471f
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x100c472f
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c4714
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0xcc], esi
jmp 0x100c47fb
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100c478d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + edx*4 + 0xc8]
neg eax
mov dword [esp + 0x1c], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xc8]
mov dword [esp + 0x40], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ecx
jmp 0x100c4802
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xa0], ebx
lea ecx, [eax + edx]
add ecx, esi
cmp ecx, 3
jne 0x100c47c5
mov ecx, dword [esp + 0xc8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c47de
mov eax, dword [esp + ecx*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
cmp ecx, 1
je 0x100c47e9
mov eax, dword [esp + 0x40]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x40], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], edx
mov al, byte [esp + 0x1b]
test al, al
je 0x100c4832
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x24]
add ecx, eax
mov al, byte [esp + 0x1b]
mov dword [esp + 0x84], ecx
mov dl, byte [esp + 0x2b]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c48a2
cmp ebx, 0x20
ja 0x100c48a2
mov esi, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x100c4874
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100c48a9
cmp edi, esi
je 0x100c48a9
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c4889
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
jmp 0x100c48a9
mov esi, dword [esp + 0xa8]
test dl, dl
je 0x100c48d5
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
cmp ebx, 0x20
ja 0x100c491b
cmp edi, dword [esp + 0xac]
jb 0x100c48ef
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c490b
cmp edi, esi
je 0x100c491b
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c4904
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x4c]
lea edx, [eax + ebx]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xa0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x2c]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], ebx
lea ecx, [edx + eax]
lea ebx, [eax + edx]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x34]
movzx eax, ax
add edx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0xc0], edx
cmp ebx, 0x20
ja 0x100c49c7
cmp edi, dword [esp + 0xac]
jb 0x100c4997
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c49b7
cmp edi, esi
je 0x100c49c7
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c49ac
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x3c]
mov esi, ebp
mov edx, dword [esp + 0x5c]
add ebx, eax
movq xmm0, qword [esp + 0x80]
mov ecx, ebx
neg ecx
mov dword [esp + 0x4c], ebx
and ecx, 0x1f
mov dword [esp + 0xa0], ebx
shr esi, cl
and esi, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
movzx eax, ax
add esi, eax
movq qword [esp + 0x78], xmm0
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xb8], esi
movq qword [esp + 0x64], xmm0
cmp eax, dword [edx + 0x7604]
jbe 0x100c4200
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0xf0]
jmp 0x100c4a40
movq xmm0, qword [esp + 0x78]
test esi, esi
jle 0x100c5636
mov eax, dword [esp + 0x5c]
mov esi, dword [eax + 0x7604]
sub esi, ecx
je 0x100c4a8e
mov eax, dword [esp + 0x54]
sub eax, edx
cmp esi, eax
jbe 0x100c4a6a
mov esi, 0xffffffba
jmp 0x100c570c
push esi
push ecx
push edx
call fcn.100c6610
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
sub eax, esi
add edx, esi
mov dword [esp + 0x64], eax
movq xmm0, qword [esp + 0x64]
mov dword [esp + 0x20], edx
jmp 0x100c4a92
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x5c]
add eax, edx
mov edx, eax
movq qword [esp + 0x90], xmm0
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
lea ecx, [esi + 0x760c]
mov dword [esp + 0x14], edx
add esi, 0x1760c
mov dword [esp + 0x50], ecx
add ecx, dword [esp + 0x64]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x30], ecx
mov dword [esi + 0x7608], 0
mov esi, dword [esp + 0x64]
add esi, dword [esp + 0x68]
mov dword [esp + 0x34], esi
cmp ecx, dword [esp + 0x60]
ja 0x100c4d4a
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c4d4a
mov ecx, dword [esp + 0x54]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x20]
cmp ecx, eax
jb 0x100c4d4a
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
movups xmm0, xmmword [eax + 0x760c]
mov eax, dword [esp + 0x64]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c4b82
mov edx, dword [esp + 0x5c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x761c]
lea ebp, [ecx + eax]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x9c]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c4b7e
mov eax, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x762c
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x100c4b66
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x100c4c0a
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x70]
cmp ecx, eax
ja 0x100c3cb8
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x68]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x44]
ja 0x100c4bd4
push ecx
push edx
push dword [esp + 0x18]
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
jmp 0x100c4d86
mov esi, dword [esp + 0x44]
sub esi, edx
push esi
push edx
push dword [esp + 0x18]
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x68]
add eax, esi
mov edx, dword [esp + 0x48]
sub ecx, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
jmp 0x100c4c19
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
cmp ecx, 0x10
jb 0x100c4c60
mov ecx, dword [esp + 0x2c]
movups xmm0, xmmword [edx]
add ecx, eax
cmp dword [esp + 0x2c], 0x10
mov dword [esp + 0x24], ecx
movups xmmword [eax], xmm0
jle 0x100c4d86
lea ecx, [edx + 0x10]
add eax, 0x10
mov edx, dword [esp + 0x24]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x100c4c43
jmp 0x100c4d86
mov ebp, dword [esp + 0x10]
cmp ecx, 8
jae 0x100c4c9b
movzx eax, byte [edx]
mov byte [ebp], al
movzx eax, byte [edx + 1]
mov byte [ebp + 1], al
movzx eax, byte [edx + 2]
mov byte [ebp + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x1000e1a8]
mov byte [ebp + 3], al
mov eax, dword [edx]
sub edx, dword [ecx*4 + 0x1000e1c8]
mov dword [ebp + 4], eax
mov eax, ebp
jmp 0x100c4caa
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 4], ecx
cmp dword [esp + 0x2c], 8
mov ebp, dword [esp + 0x9c]
jbe 0x100c4d86
lea ecx, [edx + 8]
lea edx, [eax + 8]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff8
add eax, edx
mov dword [esp + 0x14], eax
mov eax, edx
sub eax, ecx
cmp eax, 0x10
jge 0x100c4d07
mov ebx, dword [esp + 0x14]
mov ebp, ecx
sub ebp, edx
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebx
jb 0x100c4ce4
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x9c]
jmp 0x100c4d86
mov eax, dword [esp + 0x2c]
movups xmm0, xmmword [ecx]
mov ebp, dword [esp + 0x9c]
add eax, 0xfffffff8
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x100c4d86
lea eax, [ecx + 0x10]
add edx, 0x10
mov ecx, dword [esp + 0x14]
nop word [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x100c4d30
jmp 0x100c4d86
push dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x54]
push dword [esp + 0x74]
push dword [esp + 0x50]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x74]
movq qword [eax], xmm0
push dword [esp + 0x44]
mov dword [eax + 8], ecx
call fcn.100c6160
mov esi, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
cmp esi, 0xffffff88
ja 0x100c570c
add dword [esp + 0x20], esi
mov esi, dword [esp + 0xf0]
sub esi, 1
mov dword [esp + 0xf0], esi
je 0x100c4dfa
cmp ebx, 0x20
ja 0x100c4dfa
cmp edi, dword [esp + 0xac]
jb 0x100c4dc0
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c4de3
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100c4dfa
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c4ddc
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
test esi, esi
jle 0x100c5636
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + eax*8 + 4]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xbc]
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xb4]
mov al, byte [ecx + eax*8 + 2]
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0xc4]
mov al, byte [eax + ecx*8 + 2]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0xbc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0x58]
movzx edx, word [esi + edx*8]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x14], edx
movzx edx, word [esi + ecx*8]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x34], edx
movzx edx, word [esi + ecx*8]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0xb4]
movzx edx, byte [edx + ecx*8 + 3]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], edx
movzx edx, byte [esi + ecx*8 + 3]
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], edx
cmp al, 1
jbe 0x100c5033
cmp dword [esp + 0xf4], 0
je 0x100c4fa2
cmp al, 0x19
jb 0x100c4fa2
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, esi
cmp ebx, 0x20
ja 0x100c4f8b
cmp edi, dword [esp + 0xac]
jb 0x100c4f54
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c4f7b
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x100c4f8b
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c4f70
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c5011
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
lea edx, [eax + esi]
mov dword [esp + 0x1c], edx
cmp ebx, 0x20
ja 0x100c5011
cmp edi, dword [esp + 0xac]
jb 0x100c4fda
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c5001
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x100c5011
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c4ff6
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0xcc], esi
jmp 0x100c50dd
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100c506f
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + edx*4 + 0xc8]
neg eax
mov dword [esp + 0x1c], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xc8]
mov dword [esp + 0x40], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ecx
jmp 0x100c50e4
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xa0], ebx
lea ecx, [eax + edx]
add ecx, esi
cmp ecx, 3
jne 0x100c50a7
mov ecx, dword [esp + 0xc8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x100c50c0
mov eax, dword [esp + ecx*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
cmp ecx, 1
je 0x100c50cb
mov eax, dword [esp + 0x40]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x40], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], edx
mov al, byte [esp + 0x1b]
test al, al
je 0x100c5118
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x10]
add ecx, eax
mov al, byte [esp + 0x1b]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x84], ecx
mov dl, byte [esp + 0x2b]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c5188
cmp ebx, 0x20
ja 0x100c5188
mov esi, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x100c515a
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100c518f
cmp edi, esi
je 0x100c518f
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c516f
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
jmp 0x100c518f
mov esi, dword [esp + 0xa8]
test dl, dl
je 0x100c51bb
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x80], ecx
cmp ebx, 0x20
ja 0x100c5201
cmp edi, dword [esp + 0xac]
jb 0x100c51d5
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c51f1
cmp edi, esi
je 0x100c5201
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c51ea
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x4c]
lea edx, [ebx + eax]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xa0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x14]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], ebx
lea ecx, [edx + eax]
lea esi, [edx + eax]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x34]
movzx eax, ax
add edx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0xc0], edx
cmp esi, 0x20
ja 0x100c52b4
cmp edi, dword [esp + 0xac]
jb 0x100c527d
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x100c52a4
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100c52b4
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c5299
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov edx, dword [esp + 0x3c]
mov eax, ebp
movq xmm0, qword [esp + 0x80]
movq qword [esp + 0x90], xmm0
lea ebx, [esi + edx]
mov esi, dword [esp + 0x20]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
neg ecx
mov dword [esp + 0xa0], ebx
and ecx, 0x1f
shr eax, cl
and eax, dword [edx*4 + 0x1000d870]
mov ecx, dword [esp + 0x74]
movzx ecx, cx
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x2c]
add esi, ecx
add eax, ecx
mov dword [esp + 0x14], esi
add ecx, dword [esp + 0x30]
mov edx, esi
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], edx
cmp ecx, dword [esp + 0x60]
ja 0x100c555e
mov ecx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x54]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c555e
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x34]
sub ecx, dword [esp + 0x20]
add eax, 0x20
cmp ecx, eax
jb 0x100c555e
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x2c]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c53bc
mov edx, dword [esp + 0x30]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c53b8
mov eax, dword [esp + 0x74]
add ecx, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x100c53a0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], eax
mov eax, esi
sub eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x100c543c
mov eax, esi
sub eax, dword [esp + 0x70]
cmp ecx, eax
ja 0x100c3cb8
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
add edx, eax
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x44]
ja 0x100c540f
push ecx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x40]
add esp, 0xc
jmp 0x100c559a
mov esi, dword [esp + 0x44]
sub esi, edx
push esi
push edx
mov edx, dword [esp + 0x1c]
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add dword [esp + 0x20], esi
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
sub eax, esi
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x100c5443
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], eax
cmp ecx, 0x10
jb 0x100c5491
movups xmm0, xmmword [edx]
add eax, esi
cmp dword [esp + 0x10], 0x10
mov dword [esp + 0x78], eax
movups xmmword [esi], xmm0
jle 0x100c5488
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x78]
lea eax, [esi + 0x10]
nop dword [eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x100c5470
mov esi, dword [esp + 0x34]
jmp 0x100c559a
cmp ecx, 8
jae 0x100c54c5
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x1000e1a8]
mov byte [esi + 3], al
mov eax, dword [edx]
sub edx, dword [ecx*4 + 0x1000e1c8]
mov dword [esi + 4], eax
jmp 0x100c54cf
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, dword [esp + 0x10]
cmp eax, 8
jbe 0x100c5488
lea esi, [edx + 8]
mov edx, dword [esp + 0x14]
add edx, 8
lea ecx, [eax - 8]
mov eax, edx
add ecx, edx
sub eax, esi
mov dword [esp + 0x24], ecx
cmp eax, 0x10
jge 0x100c551d
sub esi, edx
mov ebx, ecx
nop dword [eax + eax]
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebx
jb 0x100c5500
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
jmp 0x100c559a
mov eax, dword [esp + 0x10]
movups xmm0, xmmword [esi]
mov ecx, dword [esp + 0x24]
add eax, 0xfffffff8
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x100c5488
add edx, 0x10
lea eax, [esi + 0x10]
nop dword [eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x100c5540
mov esi, dword [esp + 0x34]
jmp 0x100c559a
push dword [esp + 0x44]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x54]
push dword [esp + 0x74]
push dword [esp + 0x50]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x74]
movq qword [eax], xmm0
push dword [esp + 0x44]
mov dword [eax + 8], edx
call fcn.100c6160
mov esi, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
cmp esi, 0xffffff88
ja 0x100c570c
mov edx, dword [esp + 0x20]
add edx, esi
sub dword [esp + 0xf0], 1
mov dword [esp + 0x20], edx
je 0x100c5640
cmp ebx, 0x20
ja 0x100c4e10
cmp edi, dword [esp + 0xac]
jb 0x100c55f3
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100c4e10
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100c4e10
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c5613
mov ecx, edi
sub ecx, edx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
jmp 0x100c4e10
jne 0x100c3cb8
mov edx, dword [esp + 0x20]
cmp ebx, 0x20
ja 0x100c5668
cmp edi, dword [esp + 0xac]
jae 0x100c3cb8
cmp edi, dword [esp + 0xa8]
jne 0x100c3cb8
cmp ebx, 0x20
jb 0x100c3cb8
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x54]
mov dword [esi + 0x682c], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x6830], eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x6834], eax
cmp dword [esi + 0x7608], 2
jne 0x100c56e2
mov eax, edi
sub ebp, ebx
sub eax, edx
cmp ebp, eax
ja 0x100c4a60
test edx, edx
je 0x100c56cc
push ebp
push ebx
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, ebp
mov dword [esp + 0x20], edx
lea ebx, [esi + 0x760c]
mov dword [esi + 0x7608], 0
lea ebp, [esi + 0x1760c]
sub ebp, ebx
sub edi, edx
cmp ebp, edi
ja 0x100c4a60
test edx, edx
je 0x100c5703
push ebp
push ebx
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, ebp
mov esi, edx
sub esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0xd4]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100913c0
add esp, 0xc8
ret 0x20