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

Disassembly:
sub esp, 0x138
mov eax, dword [0x10119540]
xor eax, esp
mov dword [esp + 0x134], eax
mov edx, dword [esp + 0x140]
mov ecx, dword [esp + 0x148]
push ebx
push ebp
mov ebp, dword [esp + 0x144]
push esi
push edi
mov edi, dword [esp + 0x160]
cmp dword [ebp + 0x7608], 1
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x84], edx
jne 0x100c1e24
mov ebx, dword [ebp + 0x7600]
mov dword [esp + 0x2c], ebx
jmp 0x100c1e31
mov eax, dword [esp + 0x154]
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x74b0]
mov esi, edx
mov edx, dword [ebp + 0x7578]
mov ebx, dword [ebp + 0x7604]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x74b4]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x74b8]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x38], eax
test edi, edi
je 0x100c3b57
push dword [esp + 0x15c]
mov eax, 8
mov dword [ebp + 0x750c], 1
cmp edi, eax
push ecx
cmovl eax, edi
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x682c]
mov dword [esp + 0xe0], eax
mov eax, dword [ebp + 0x6830]
mov dword [esp + 0xe4], eax
mov eax, dword [ebp + 0x6834]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xb4]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
jbe 0x100c1ed8
mov ebp, 0xffffffec
jmp 0x100c3bb7
push dword [ebp]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.100c63d0
push dword [ebp + 8]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.100c63d0
push dword [ebp + 4]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.100c63d0
mov ebp, dword [esp + 0xd0]
lea eax, [esp + 0xe4]
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x48], 0
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x4c], esi
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
cmp ebx, 0x20
jbe 0x100c1f7c
mov edx, 3
jmp 0x100c1fe4
cmp edi, ecx
jb 0x100c1f8e
mov eax, ebx
and ebx, 7
shr eax, 3
sub edi, eax
xor edx, edx
jmp 0x100c1fcd
cmp edi, edx
jne 0x100c1f9c
cmp ebx, 0x20
sbb edx, edx
add edx, 2
jmp 0x100c1fe4
mov esi, dword [esp + 0xb8]
mov ecx, ebx
shr ecx, 3
mov eax, edi
sub eax, ecx
xor edx, edx
cmp eax, esi
jae 0x100c1fbb
mov ecx, edi
mov edx, 1
sub ecx, esi
mov esi, dword [esp + 0x4c]
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov ecx, dword [esp + 0xbc]
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x58]
jge 0x100c2507
cmp edx, 2
ja 0x100c1ece
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x70]
mov eax, dword [eax + ebp*8 + 4]
mov dword [esp + 0x64], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov esi, dword [eax + esi*8 + 4]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0xcc]
mov al, byte [eax + edx*8 + 2]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0xd4]
mov al, byte [eax + ebp*8 + 2]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x4c]
mov al, byte [esi + eax*8 + 2]
mov esi, dword [esp + 0xc4]
movzx edx, word [esi + edx*8]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
movzx edx, word [esi + ebp*8]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x50], edx
movzx edx, word [esi + ebp*8]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x70]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xd4]
movzx edx, byte [edx + ebp*8 + 3]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x4c]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x4c], edx
cmp al, 1
jbe 0x100c2288
cmp dword [esp + 0x164], 0
je 0x100c217b
cmp al, 0x19
jb 0x100c217b
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 0x100c2164
cmp edi, dword [esp + 0xbc]
jb 0x100c212d
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c2154
mov esi, dword [esp + 0xb8]
cmp edi, esi
je 0x100c2164
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c2149
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], 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 + 0x14], edx
jmp 0x100c21ea
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 + 0x14], edx
cmp ebx, 0x20
ja 0x100c21ea
cmp edi, dword [esp + 0xbc]
jb 0x100c21b3
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c21da
mov esi, dword [esp + 0xb8]
cmp edi, esi
je 0x100c21ea
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c21cf
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xd8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xd8], edx
mov al, byte [esp + 0x23]
mov dword [esp + 0xdc], ecx
test al, al
je 0x100c223e
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 + 0x64]
add ecx, eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x7c], ecx
mov dl, byte [esp + 0x43]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c2368
cmp ebx, 0x20
ja 0x100c2368
cmp edi, dword [esp + 0xbc]
jb 0x100c2333
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x100c236f
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100c22b6
mov esi, dword [esp + edx*4 + 0xd8]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 4
mov ecx, dword [esp + eax + 0xd8]
mov dword [esp + 0xd8], esi
jmp 0x100c220a
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xb0], ebx
lea ecx, [eax + edx]
xor edx, edx
add ecx, esi
cmp ecx, 3
jne 0x100c22fe
mov ecx, dword [esp + 0xd8]
lea eax, [ecx - 1]
test eax, eax
sete dl
add edx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], edx
mov dword [esp + 0xe0], eax
jmp 0x100c21ff
mov eax, dword [esp + ecx*4 + 0xd8]
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x14], edx
cmp ecx, 1
je 0x100c21f8
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xe0], eax
jmp 0x100c21ff
mov ebp, dword [esp + 0xb8]
cmp edi, ebp
je 0x100c2368
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x100c234f
mov ecx, edi
sub ecx, ebp
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0xac], ebp
jmp 0x100c236f
mov ebp, dword [esp + 0xac]
test dl, dl
je 0x100c2394
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 + 0x74]
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ebx, 0x20
ja 0x100c23f3
cmp edi, dword [esp + 0xbc]
jb 0x100c23be
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x100c23fa
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x100c23f3
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c23da
mov ecx, edi
sub ecx, edx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0xac], ebp
jmp 0x100c23fa
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x60]
lea edx, [eax + ebx]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xb0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x30]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc0], ebx
lea ecx, [edx + eax]
lea ebx, [edx + eax]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x50]
movzx eax, ax
add edx, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xd0], edx
cmp ebx, 0x20
ja 0x100c24ad
cmp edi, dword [esp + 0xbc]
jb 0x100c2476
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c249d
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x100c24ad
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c2492
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x4c]
add ebx, eax
movq xmm0, qword [esp + 0x78]
mov ecx, ebx
inc dword [esp + 0x48]
neg ecx
and ecx, 0x1f
mov dword [esp + 0xb0], ebx
shr ebp, cl
mov ecx, ebp
mov dword [esp + 0x4c], ebp
and ecx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x3c]
movzx eax, ax
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xc8], ecx
movq qword [eax], xmm0
mov dword [eax + 8], esi
add eax, 0xc
mov dword [esp + 0x24], eax
mov esi, ecx
jmp 0x100c1f62
mov esi, dword [esp + 0x10]
nop dword [eax + eax]
cmp ebx, 0x20
jbe 0x100c251c
mov edx, 3
jmp 0x100c257d
cmp edi, ecx
jb 0x100c252e
mov eax, ebx
and ebx, 7
shr eax, 3
sub edi, eax
xor edx, edx
jmp 0x100c2562
mov ebp, dword [esp + 0xb8]
cmp edi, ebp
jne 0x100c2543
cmp ebx, 0x20
sbb edx, edx
add edx, 2
jmp 0x100c257d
mov ecx, ebx
mov eax, edi
shr ecx, 3
xor edx, edx
sub eax, ecx
cmp eax, ebp
jae 0x100c255b
mov ecx, edi
mov edx, 1
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov ecx, dword [esp + 0x160]
cmp eax, ecx
jge 0x100c338a
cmp edx, 2
ja 0x100c1ece
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc4]
mov eax, dword [eax + ebp*8 + 4]
mov esi, dword [esi + edx*8 + 4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0xc4]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x64], ecx
mov al, byte [esi + eax*8 + 2]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x78], ecx
mov al, byte [eax + ebp*8 + 2]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0xcc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0x70]
movzx edx, word [esi + edx*8]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x74], edx
movzx edx, word [esi + ebp*8]
mov esi, dword [esp + 0xcc]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
movzx edx, word [esi + ebp*8]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x70]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xd4]
movzx edx, byte [edx + ebp*8 + 3]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x4c]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
cmp al, 1
jbe 0x100c2851
cmp dword [esp + 0x164], 0
je 0x100c272d
cmp al, 0x19
jb 0x100c272d
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
mov dword [esp + 0x50], edx
cmp ebx, 0x20
ja 0x100c2713
cmp edi, dword [esp + 0xbc]
jb 0x100c26d8
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x100c2713
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x100c270f
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c26f4
mov ecx, edi
sub ecx, edx
sub edi, ecx
lea eax, [ecx*8]
mov dword [esp + 0xb4], edi
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov edx, dword [esp + 0x50]
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x50], edx
jmp 0x100c27b0
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 + 0x50], edx
cmp ebx, 0x20
ja 0x100c27b0
cmp edi, dword [esp + 0xbc]
jb 0x100c2775
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x100c27b0
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x100c27ac
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c2791
mov ecx, edi
sub ecx, edx
sub edi, ecx
lea eax, [ecx*8]
mov dword [esp + 0xb4], edi
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xd8]
mov al, byte [esp + 0x23]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], edx
test al, al
je 0x100c2800
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 + 0x68]
add ecx, eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x7c], ecx
mov dl, byte [esp + 0x43]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c2927
cmp ebx, 0x20
ja 0x100c2927
mov esi, dword [esp + 0xb8]
cmp edi, dword [esp + 0xbc]
jb 0x100c28f9
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x100c2935
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100c287c
mov edx, dword [esp + edx*4 + 0xd8]
mov eax, ecx
neg eax
mov dword [esp + 0x50], edx
sbb eax, eax
and eax, 4
mov ecx, dword [esp + eax + 0xd8]
jmp 0x100c27c5
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xb0], ebx
lea ecx, [eax + edx]
xor edx, edx
add ecx, esi
cmp ecx, 3
jne 0x100c28c4
mov ecx, dword [esp + 0xd8]
lea eax, [ecx - 1]
test eax, eax
sete dl
add edx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x50], edx
mov dword [esp + 0xe0], eax
jmp 0x100c27c5
mov eax, dword [esp + ecx*4 + 0xd8]
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x50], edx
cmp ecx, 1
je 0x100c27be
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xe0], eax
jmp 0x100c27c5
cmp edi, esi
je 0x100c292e
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c290e
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0xac], ebp
jmp 0x100c2935
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0xac]
test dl, dl
je 0x100c295a
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 + 0x64]
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ebx, 0x20
ja 0x100c29a0
cmp edi, dword [esp + 0xbc]
jb 0x100c2974
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c2990
cmp edi, esi
je 0x100c29a0
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c2989
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x24]
lea edx, [eax + ebx]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xb0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x74]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc0], ebx
lea ecx, [eax + edx]
lea ebx, [edx + eax]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x30]
movzx eax, ax
add edx, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xd0], edx
cmp ebx, 0x20
ja 0x100c2a4c
cmp edi, dword [esp + 0xbc]
jb 0x100c2a1c
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c2a3c
cmp edi, esi
je 0x100c2a4c
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c2a31
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x14]
mov edx, ebp
add ebx, eax
mov ecx, ebx
mov dword [esp + 0x74], ebx
neg ecx
mov dword [esp + 0xb0], ebx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x1c]
movzx eax, ax
add edx, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 0x7608]
cmp ecx, 2
jne 0x100c2daf
mov eax, dword [esp + 0x48]
lea ebp, [esp + 0xe4]
mov esi, dword [edx + 0x7604]
and eax, 7
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*2]
lea ebp, [ebp + eax*4]
mov eax, dword [ebp]
add eax, edx
mov dword [esp + 0x3c], ebp
cmp eax, esi
jbe 0x100c2db3
sub esi, edx
je 0x100c2aeb
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sub eax, ecx
cmp esi, eax
ja 0x100c3380
push esi
push edx
push ecx
call fcn.100c6610
sub dword [ebp], esi
add dword [esp + 0x10], esi
mov ecx, dword [esp + 0x5c]
movq xmm0, qword [ebp]
mov esi, dword [esp + 0x10]
movq qword [esp + 0x88], xmm0
mov edx, dword [esp + 0x88]
lea eax, [ecx + 0x760c]
mov dword [esp + 0x34], eax
add esi, edx
lea eax, [ecx + 0x1760c]
mov dword [ecx + 0x7608], 0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x14], esi
lea ebp, [eax + edx]
mov eax, dword [esp + 0x5c]
add edx, 0x760c
add eax, edx
mov edx, esi
sub edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
cmp eax, dword [esp + 0x44]
ja 0x100c2d91
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c2d91
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c2d91
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax + 0x760c]
mov eax, dword [esp + 0x88]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c2bfc
mov edx, dword [esp + 0x5c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x761c]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c2bf8
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add edx, 0x762c
nop word [eax + eax]
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 0x100c2be0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x100c2c7c
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x100c2c4b
push ecx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100c3338
mov esi, dword [esp + 0x38]
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
mov eax, dword [esp + 0x3c]
add esp, 0xc
add dword [esp + 0x14], esi
sub eax, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], eax
jmp 0x100c2c80
mov eax, dword [esp + 0x30]
cmp ecx, 0x10
jb 0x100c2cc6
lea ecx, [eax + esi]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jle 0x100c322d
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
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 0x100c2ca5
mov esi, dword [esp + 0x10]
jmp 0x100c3338
cmp ecx, 8
jae 0x100c2cfa
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 0x100c2d04
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
jbe 0x100c322d
lea esi, [edx + 8]
mov edx, dword [esp + 0x14]
add edx, 8
lea eax, [ecx - 8]
mov dword [esp + 0x3c], eax
lea ecx, [edx + eax]
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jge 0x100c2d56
sub esi, edx
mov ebx, ecx
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 0x100c2d36
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x10]
jmp 0x100c3338
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x100c322d
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 0x100c2d70
mov esi, dword [esp + 0x10]
jmp 0x100c3338
push dword [esp + 0x38]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x50]
jmp 0x100c330d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x10]
and eax, 7
cmp ecx, 2
lea eax, [eax + eax*2]
movq xmm0, qword [esp + eax*4 + 0xe4]
lea eax, [esp + eax*4 + 0xe4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], eax
jne 0x100c309e
mov eax, dword [eax]
add eax, 0xffffffe0
movq qword [esp + 0x94], xmm0
add eax, edx
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x94]
add esi, edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], esi
lea ebp, [eax + edx]
mov eax, dword [esp + 0x18]
add eax, edx
mov edx, esi
sub edx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], edx
cmp eax, dword [esp + 0x44]
ja 0x100c3058
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, dword [esp + 0x68]
ja 0x100c3058
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c3058
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x94]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c2ebc
mov edx, dword [esp + 0x18]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c2eb8
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add edx, 0x20
nop dword [eax + eax]
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 0x100c2ea0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x100c2f3c
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x100c2f0f
push ecx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100c3338
mov esi, dword [esp + 0x38]
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
mov ecx, dword [esp + 0x3c]
add esp, 0xc
add dword [esp + 0x14], esi
sub ecx, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
jmp 0x100c2f40
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x60], 0x10
jb 0x100c2f88
lea eax, [ecx + esi]
mov dword [esp + 0x1c], eax
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x100c322d
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
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 0x100c2f67
mov esi, dword [esp + 0x10]
jmp 0x100c3338
mov ecx, dword [esp + 0x60]
cmp ecx, 8
jae 0x100c2fc0
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 0x100c2fca
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
jbe 0x100c322d
lea esi, [edx + 8]
mov edx, dword [esp + 0x14]
add edx, 8
lea eax, [ecx - 8]
mov dword [esp + 0x3c], eax
lea ecx, [edx + eax]
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jge 0x100c3020
sub esi, edx
mov ebx, ecx
nop dword [eax]
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, ebx
jb 0x100c3000
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x10]
jmp 0x100c3338
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x100c322d
add edx, 0x10
lea eax, [esi + 0x10]
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 0x100c3037
mov esi, dword [esp + 0x10]
jmp 0x100c3338
push dword [esp + 0x38]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x38]
sub esp, 0xc
mov ecx, esp
push dword [esp + 0x88]
movq xmm0, qword [eax]
push dword [esp + 0x50]
mov eax, dword [eax + 8]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.100c6270
jmp 0x100c332e
mov dword [esp + 0x64], ecx
movq qword [esp + 0xa0], xmm0
mov edx, dword [esp + 0xa0]
add esi, edx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], esi
lea ebp, [ecx + edx]
mov ecx, dword [esp + 0x18]
add ecx, edx
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x68], edx
cmp ecx, dword [esp + 0x44]
ja 0x100c32f8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c32f4
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c32f4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0xa0]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c316c
mov edx, dword [esp + 0x18]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [eax + ecx]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c3168
mov eax, dword [esp + 0x1c]
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 0x100c3150
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x100c31f0
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x100c31bf
push ecx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100c3338
mov esi, dword [esp + 0x38]
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
mov eax, dword [esp + 0x3c]
add esp, 0xc
add dword [esp + 0x14], esi
sub eax, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x30], eax
jmp 0x100c31f4
mov eax, dword [esp + 0x30]
cmp ecx, 0x10
jb 0x100c3236
lea ecx, [eax + esi]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jle 0x100c322d
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
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 0x100c3215
mov esi, dword [esp + 0x10]
jmp 0x100c3338
cmp ecx, 8
jae 0x100c326a
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 0x100c3274
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
jbe 0x100c322d
lea esi, [edx + 8]
mov edx, dword [esp + 0x14]
add edx, 8
lea eax, [ecx - 8]
mov dword [esp + 0x3c], eax
lea ecx, [edx + eax]
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jge 0x100c32bf
sub esi, edx
mov ebx, ecx
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 0x100c32a2
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x10]
jmp 0x100c3338
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x100c322d
add edx, 0x10
lea eax, [esi + 0x10]
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 0x100c32d6
mov esi, dword [esp + 0x10]
jmp 0x100c3338
mov eax, dword [esp + 0x24]
push dword [esp + 0x38]
lea ecx, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x50]
push ecx
movq xmm0, qword [eax]
sub esp, 0xc
mov eax, dword [eax + 8]
mov ecx, esp
mov esi, dword [esp + 0x30]
push dword [esp + 0x4c]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.100c6160
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
cmp ebp, 0xffffff88
ja 0x100c3bb7
mov eax, dword [esp + 0x48]
add esi, ebp
movq xmm0, qword [esp + 0x78]
and eax, 7
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], esi
lea eax, [eax + eax*2]
movq qword [esp + eax*4 + 0xe4], xmm0
mov dword [esp + eax*4 + 0xec], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xbc]
inc eax
mov dword [esp + 0x48], eax
jmp 0x100c2510
mov ebp, 0xffffffba
jmp 0x100c3bb7
sub eax, dword [esp + 0x58]
mov dword [esp + 0x48], eax
cmp eax, ecx
jge 0x100c3b24
nop word [eax + eax]
and eax, 7
lea esi, [esp + 0xe4]
lea eax, [eax + eax*2]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x5c]
cmp dword [eax + 0x7608], 2
jne 0x100c38a7
mov ebx, dword [esi]
mov edx, dword [esp + 0x18]
mov edi, dword [eax + 0x7604]
lea ecx, [ebx + edx]
cmp ecx, edi
jbe 0x100c3644
mov ebp, dword [esp + 0x10]
sub edi, edx
je 0x100c3400
mov eax, dword [esp + 0x2c]
sub eax, ebp
cmp edi, eax
ja 0x100c3380
push edi
push edx
push ebp
call fcn.100c6610
mov eax, dword [esp + 0x5c]
sub ebx, edi
add ebp, edi
mov dword [esi], ebx
mov dword [esp + 0x10], ebp
movq xmm0, qword [esi]
lea ecx, [eax + 0x760c]
add eax, 0x1760c
movq qword [esp + 0xa0], xmm0
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
mov dword [eax + 0x7608], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
lea ebx, [eax + ebp]
lea ebp, [edx + eax]
mov edi, ebx
sub edi, dword [esi + 8]
add eax, ecx
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x44]
ja 0x100c3abf
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c3abf
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c3abf
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
movups xmm0, xmmword [esi + 0x760c]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c34ec
movups xmm0, xmmword [esi + 0x761c]
lea edx, [esi + 0x761c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x100c34e8
add ecx, 0x10
add edx, 0x10
nop dword [eax]
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, esi
jb 0x100c34d0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x100c3556
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x100c3537
push edx
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100c3aff
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x58]
sub edx, esi
cmp ecx, 0x10
jb 0x100c3594
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x100c3a0b
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
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, esi
jb 0x100c3573
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
cmp ecx, 8
jae 0x100c35c8
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x1000e1a8]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x1000e1c8]
mov dword [ebx + 4], eax
jmp 0x100c35d2
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x100c3a0b
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x100c360e
sub edi, edx
mov eax, dword [edi + edx]
mov ecx, dword [edi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x100c35f2
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x100c3a0b
add edx, 0x10
lea eax, [edi + 0x10]
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, esi
jb 0x100c3623
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
movq xmm0, qword [esi]
add ecx, 0xffffffe0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x10]
movq qword [esp + 0x94], xmm0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x94]
add ebx, eax
mov edi, ebx
mov dword [esp + 0x3c], ecx
sub edi, dword [esi + 8]
mov dword [esp + 0x24], edx
lea ebp, [edx + eax]
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x44]
ja 0x100c3868
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, ecx
ja 0x100c3868
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c3868
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c370c
movups xmm0, xmmword [esi + 0x10]
lea edx, [esi + 0x10]
add ecx, 0x10
add eax, 0xfffffff0
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x100c3708
add ecx, 0x10
add edx, 0x10
nop word [eax + eax]
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, esi
jb 0x100c36f0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x100c377a
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x100c375b
push edx
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100c3aff
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x58]
sub edx, esi
cmp ecx, 0x10
jb 0x100c37b8
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x100c3a0b
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
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, esi
jb 0x100c3797
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
cmp ecx, 8
jae 0x100c37ec
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x1000e1a8]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x1000e1c8]
mov dword [ebx + 4], eax
jmp 0x100c37f6
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x100c3a0b
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x100c3832
sub edi, edx
mov eax, dword [edi + edx]
mov ecx, dword [edi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x100c3816
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x100c3a0b
add edx, 0x10
lea eax, [edi + 0x10]
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, esi
jb 0x100c3847
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x50]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x5c]
movq qword [ecx], xmm0
push dword [esp + 0x50]
mov dword [ecx + 8], eax
push esi
call fcn.100c6270
jmp 0x100c3af5
movq xmm0, qword [esi]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
movq qword [esp + 0x88], xmm0
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x24], edx
lea ebx, [eax + ecx]
lea ebp, [edx + eax]
mov edi, ebx
add eax, dword [esp + 0x18]
sub edi, dword [esi + 8]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x44]
ja 0x100c3abf
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c3abf
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x100c3abf
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x100c3970
movups xmm0, xmmword [ecx + 0x10]
lea edx, [ecx + 0x10]
add eax, 0xfffffff0
lea ecx, [esi + 0x10]
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x100c3968
add ecx, 0x10
add edx, 0x10
nop word [eax + eax]
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, esi
jb 0x100c3950
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x100c39da
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x100c1ece
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, dword [esp + 0x28]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x100c39bb
push edx
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
jmp 0x100c3aff
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x58]
sub edx, esi
cmp ecx, 0x10
jb 0x100c3a14
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x100c3a0b
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
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, esi
jb 0x100c39f3
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
cmp ecx, 8
jae 0x100c3a48
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x1000e1a8]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x1000e1c8]
mov dword [ebx + 4], eax
jmp 0x100c3a52
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x100c3a0b
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x100c3a8c
sub edi, edx
nop
mov eax, dword [edi + edx]
mov ecx, dword [edi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x100c3a70
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x100c3a0b
add edx, 0x10
lea eax, [edi + 0x10]
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, esi
jb 0x100c3aa1
mov esi, dword [esp + 0x10]
jmp 0x100c3aff
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x50]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x4c]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.100c6160
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
cmp ebp, 0xffffff88
ja 0x100c3bb7
mov eax, dword [esp + 0x48]
add esi, ebp
inc eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x48], eax
cmp eax, dword [esp + 0x160]
jl 0x100c33a0
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
mov dword [ebp + 0x6830], eax
mov eax, dword [esp + 0xe0]
mov dword [ebp + 0x682c], ecx
mov dword [ebp + 0x6834], eax
cmp dword [ebp + 0x7608], 2
jne 0x100c3b8d
mov eax, dword [esp + 0x2c]
sub ebx, edx
sub eax, esi
cmp ebx, eax
ja 0x100c3380
test esi, esi
je 0x100c3b81
push ebx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add esi, ebx
lea edx, [ebp + 0x760c]
lea ebx, [ebp + 0x1760c]
mov eax, dword [esp + 0x2c]
sub ebx, edx
sub eax, esi
cmp ebx, eax
ja 0x100c3380
test esi, esi
je 0x100c3bae
push ebx
push edx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add esi, ebx
mov ebp, esi
sub ebp, dword [esp + 0x84]
mov ecx, dword [esp + 0x144]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100913c0
add esp, 0x138
ret 0x20