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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x30c0
call fcn.101e8860
mov eax, dword [ebp + 0xc]
call 0x100c78fb
pop ecx
mov esi, dword [eax]
mov eax, dword [esi + 0x54]
mov dword [esp + 0x20], esi
test byte [eax + 0x1e], 1
jne 0x100c7c66
cmp byte [esi + 0x38], 3
mov dword [esp + 0x10], ecx
lea eax, [esi + 0x30]
mov ecx, 0x10337848
cmovne ecx, eax
xor eax, eax
cmp byte [ecx + 8], 2
cmovne eax, ecx
jne 0x100c7a4d
cmp byte [esi + 0x40], 0
je 0x100c7c66
movzx eax, byte [esi + 0x3e]
movaps xmm0, xmmword [0x10335da0]
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x1a20], 4
mov dword [esp + 0x1a24], 0
mov dword [esp + 0x1a28], 0
movups xmmword [esp + 0xcd0], xmm0
mov byte [esp + 0x4c], al
mov byte [esp + 0xce0], 0
je 0x100c7a70
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x1a20]
lea edi, [esp + 0x638]
mov dword [esp + 0x18], edx
lea ecx, [eax + ecx*4]
mov ebx, eax
mov dword [esp + 0x30], ecx
jmp 0x100c79ba
cmp ebx, dword [esp + 0x30]
je 0x100c7a70
push dword [ebx]
lea eax, [esp + 0xcd4]
push eax
push edi
call fcn.1010f4c0
add esp, 0xc
lea ecx, [esp + 0x1a20]
mov edx, edi
call fcn.100a7180
mov esi, dword [esp + 0x638]
add ebx, 4
test esi, esi
je 0x100c79b0
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x640]
test ebx, ebx
je 0x100c7a20
lea edi, [esi + 4]
jmp 0x100c7a06
add edi, 0x10
dec ebx
je 0x100c7a20
cmp dword [edi], 0
je 0x100c7a00
push dword [edi - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c7a00
cmp dword [esp + 0x63c], 0
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x638]
je 0x100c79b0
push esi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c79b0
mov ecx, dword [eax]
lock inc dword [ecx]
jle 0x100cc442
mov edx, dword [eax + 4]
movzx eax, byte [eax + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov byte [esp + 0x68], al
jmp 0x100c7c6b
cmp byte [esp + 0x4c], 0
je 0x100c7ae9
lea eax, [esp + 0x1a20]
push 1
push eax
call fcn.10111e70
add esp, 8
movsd xmm0, qword [esp + 0x1a20]
mov eax, dword [esp + 0x1a28]
movsd qword [esp + 0x27e8], xmm0
mov dword [esp + 0x27f0], eax
mov edi, dword [esp + 0x27e8]
test edi, edi
je 0x100c7bf1
mov ecx, dword [esp + 0x20]
mov edx, eax
mov esi, edi
shl edx, 4
movzx ecx, byte [ecx + 0x3e]
nop word [eax + eax]
test edx, edx
je 0x100c7bd4
add edx, 0xfffffff0
cmp byte [esi + 0xc], 0
lea esi, [esi + 0x10]
jne 0x100c7ad0
jmp 0x100c7bf1
mov ecx, dword [esp + 0x1a20]
test ecx, ecx
je 0x100c7a89
mov esi, dword [esp + 0x1a28]
mov edx, esi
mov dword [esp + 0x18], ecx
call fcn.100af6e0
mov edx, dword [esp + 0x18]
mov ecx, esi
cmp esi, 2
jb 0x100c7a89
lea ebx, [edx + 0x1c]
dec ecx
mov esi, 1
jmp 0x100c7b48
mov esi, dword [esp + 0xc]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov eax, esi
inc esi
shl eax, 4
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
add ebx, 0x10
dec ecx
je 0x100c7bc8
mov eax, dword [ebx - 4]
mov dword [esp + 0xc], esi
dec esi
lea edi, [ebx - 0xc]
shl esi, 4
cmp eax, dword [edx + esi + 8]
jne 0x100c7b20
mov dword [esp + 0x30], ecx
lea ecx, [edx + esi]
mov edx, dword [edi]
push eax
push dword [ecx]
mov dword [esp + 0x34], edx
push edx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jne 0x100c7b20
cmp byte [ebx], 0
mov edi, dword [esp + 0x2c]
setne al
cmp byte [edx + esi + 0xc], 0
setne cl
cmp al, cl
je 0x100c7ba1
lea eax, [edx + esi + 0xc]
mov byte [ebx], 0
mov byte [eax], 0
cmp dword [ebx - 8], 0
je 0x100c7bba
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
add ebx, 0x10
dec ecx
jne 0x100c7b48
mov dword [esp + 0x1a28], esi
jmp 0x100c7a89
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x50], 1
jne 0x100c7bf1
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x48]
mov edx, dword [edx]
cmp dword [edx + 0x18], 0
je 0x100c922b
mov esi, dword [esp + 0x20]
cmp dword [ebp + 0x14], 1
jne 0x100c7c1b
cmp dword [esi + 0x50], 0
je 0x100cb683
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
cmp word [eax + 0x1c], 0
jne 0x100c7c1b
cmp dword [eax + 0x18], 0
je 0x100c900e
mov edi, dword [esp + 0x27e8]
test edi, edi
je 0x100c7c66
xor edx, edx
cmp byte [esp + 0x4c], 0
mov ebx, dword [esp + 0x27f0]
setne dl
lea esi, [esp + 0x638]
mov ecx, esi
push ebx
push edi
call fcn.100f0a40
add esp, 8
cmp byte [esp + 0x638], 7
mov dword [esp + 0xc], edi
jne 0x100c83fa
mov byte [esp + 0x68], 2
jmp 0x100c841e
mov byte [esp + 0x68], 2
lock inc dword [esi]
jle 0x100cc442
mov bh, byte [esp + 0x68]
cmp bh, 2
jne 0x100c7c84
mov byte [esp + 0x78], 2
jmp 0x100c7ca1
mov edi, dword [esp + 0x60]
lock inc dword [edi]
jle 0x100cc442
mov eax, dword [esp + 0x64]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov byte [esp + 0x78], bh
mov dword [esp + 0x80], esi
mov ecx, 0xa
mov dword [esp + 0xc], 0xa00000
cmp byte [esi + 0x3c], 0
movzx eax, byte [esi + 0x3d]
cmovne ecx, eax
cmp byte [esi + 0x3f], 0
mov eax, esi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x30], ecx
setne byte [esp + 0x10]
cmp esi, 2
je 0x100c7cde
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
mov bl, byte [eax + 0x46]
lea eax, [esp + 0x638]
push eax
call fcn.100de800
add esp, 4
xor ecx, ecx
cmp bl, 3
movzx eax, bl
cmove eax, ecx
xor ecx, ecx
test esi, esi
setne cl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x638], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x63c], ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x640], 1
mov byte [esp + 0x641], cl
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x642], cl
mov byte [esp + 0x644], 0
mov byte [esp + 0x645], al
lea edx, [esp + 0x638]
lea ecx, [esp + 0x1a20]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.100deab0
add esp, 8
cmp dword [esp + 0x1a20], 0x27
jne 0x100c7ee6
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x6c], eax
lea esi, [esp + 0x638]
mov ecx, esi
call fcn.100adb00
cmp bh, 2
je 0x100c7d9c
lock inc dword [edi]
jle 0x100cc442
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x3e], 0
mov dword [esp + 0x220], edi
mov dword [esp + 0x224], eax
mov byte [esp + 0x228], bh
mov byte [esp + 0x2064], 2
mov byte [esp + 0x2060], 3
setne bl
setne byte [esp + 0x22c]
lea edi, [esp + 0x1a20]
push edi
call fcn.100de800
add esp, 4
movsd xmm0, qword [esp + 0x2058]
movsd xmm1, qword [esp + 0x2060]
movsd qword [esp + 0x730], xmm1
movsd qword [esp + 0x728], xmm0
push 0xf0
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x730]
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x224]
cmp al, 3
je 0x100c7e4d
cmp al, 2
je 0x100c7e4d
mov ecx, dword [esp + 0x728]
lock dec dword [ecx]
jne 0x100c7e4d
mov edx, dword [esp + 0x72c]
call fcn.100af620
movzx eax, word [esp + 0x1a20]
mov dword [esp + 0x728], esi
mov dword [esp + 0x72c], edi
mov byte [esp + 0x730], bh
mov word [esp + 0x731], ax
movzx eax, byte [esp + 0x1a22]
mov byte [esp + 0x733], al
movzx eax, word [esp + 0x2058]
mov byte [esp + 0x734], bl
mov word [esp + 0x735], ax
movzx eax, byte [esp + 0x205a]
mov byte [esp + 0x737], al
mov eax, dword [esp + 0x6c]
lock inc dword [eax]
jle 0x100cc442
cmp bh, 2
jne 0x100c7fb6
mov dword [esp + 0x1a20], eax
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a28], edi
mov byte [esp + 0x1a2c], 2
mov byte [esp + 0x1a30], bl
jmp 0x100c7ff5
movsd xmm1, qword [esp + 0x1a50]
movsd xmm2, qword [esp + 0x1a48]
movsd xmm0, qword [esp + 0x1a58]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x1a40]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x1a38]
movsd qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x1a30]
movsd qword [esp + 0x158], xmm2
movsd xmm2, qword [esp + 0x1a20]
movsd qword [esp + 0x150], xmm1
movsd xmm1, qword [esp + 0x1a28]
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x148], xmm1
lea ecx, [esp + 0x638]
call fcn.100adb00
cmp byte [esp + 0x78], 2
je 0x100c7f9b
mov ecx, dword [esp + 0x70]
lock dec dword [ecx]
jne 0x100c7f9b
mov edx, dword [esp + 0x74]
call fcn.100af620
mov ecx, dword [esp + 0x80]
lock dec dword [ecx]
jne 0x100c7fac
call fcn.100af6b0
mov ebx, 1
jmp 0x100c9526
lock inc dword [esi]
jle 0x100cc442
mov dword [esp + 0x1a20], eax
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a28], edi
mov byte [esp + 0x1a2c], bh
mov byte [esp + 0x1a30], bl
lock dec dword [esi]
jne 0x100c7ff5
mov edx, dword [esp + 0x72c]
mov ecx, esi
call fcn.100af620
lea edi, [esp + 0x638]
mov ecx, edi
call fcn.100adb00
movsd xmm0, qword [esp + 0x1a20]
movsd xmm1, qword [esp + 0x1a28]
mov eax, dword [esp + 0x1a30]
cmp bh, 2
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0xa0], xmm1
mov dword [esp + 0xa8], eax
jne 0x100c8052
mov al, 2
mov esi, dword [esp + 0x80]
mov byte [esp + 0x24], bh
cmp byte [esi + 0x44], 0
jne 0x100c807d
jmp 0x100c8172
mov ecx, dword [esp + 0x70]
lock inc dword [ecx]
jle 0x100cc442
mov edx, dword [esp + 0x74]
movzx eax, byte [esp + 0x78]
mov esi, dword [esp + 0x80]
mov byte [esp + 0x24], bh
cmp byte [esi + 0x44], 0
je 0x100c8172
cmp byte [esi + 0x3e], 0
je 0x100c8172
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x220], 0
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], edx
mov byte [esp + 0x2068], 3
mov byte [esp + 0x230], al
mov dword [esp + 0x2058], 0
lea esi, [esp + 0x1a20]
push esi
call fcn.100de800
add esp, 4
mov eax, dword [esp + 0x2068]
movsd xmm0, qword [esp + 0x2058]
movsd xmm1, qword [esp + 0x2060]
mov dword [esp + 0x648], eax
lea eax, [esp + 0x64c]
movsd qword [esp + 0x640], xmm1
movsd qword [esp + 0x638], xmm0
push 0xf0
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x230]
movsd xmm0, qword [esp + 0x220]
movsd xmm1, qword [esp + 0x228]
mov dword [esp + 0x1a30], eax
movsd qword [esp + 0x1a28], xmm1
movsd qword [esp + 0x1a20], xmm0
push esi
lea eax, [esp + 0x63c]
push eax
call fcn.100d9fe0
add esp, 8
lock inc dword [edi]
jle 0x100cc442
movzx eax, byte [esp + 0x648]
cmp al, 3
jne 0x100c8192
mov cl, 3
jmp 0x100c81b9
mov esi, 2
cmp al, 2
je 0x100c825d
lock dec dword [ecx]
jne 0x100c825d
call fcn.100af620
jmp 0x100c825d
cmp al, 2
jne 0x100c819a
mov cl, 2
jmp 0x100c81b9
mov edx, dword [esp + 0x640]
lock inc dword [edx]
jle 0x100cc442
mov ebx, dword [esp + 0x644]
movzx ecx, byte [esp + 0x648]
mov esi, dword [esp + 0x638]
cmp cl, 3
mov dword [esp + 0x1a20], esi
mov esi, dword [esp + 0x63c]
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a2c], ebx
mov dword [esp + 0x1a28], edx
mov byte [esp + 0x1a30], al
mov dword [esp + 0x1a34], edi
je 0x100c8213
cmp cl, 2
je 0x100c8213
mov ecx, dword [esp + 0x640]
lock dec dword [ecx]
jne 0x100c8213
mov edx, dword [esp + 0x644]
call fcn.100af620
lea ecx, [esp + 0x64c]
call fcn.100adb00
mov bh, byte [esp + 0x24]
lea edi, [esp + 0x638]
lea eax, [esp + 0x1a24]
mov esi, dword [esp + 0x1a20]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
movsd qword [esp + 0x638], xmm0
movsd qword [esp + 0x640], xmm1
mov dword [esp + 0x648], eax
mov eax, dword [esp + 0x648]
movsd xmm0, qword [esp + 0x638]
movsd xmm1, qword [esp + 0x640]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb0], esi
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x2c], 3
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xbc], xmm1
mov dword [esp + 0xc4], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ecx
cmp byte [ecx + 0x43], 0
je 0x100c84c6
mov eax, dword [ecx + 0x54]
cmp dword [eax + 0x18], 0
jne 0x100c82ce
test byte [eax + 0x1d], 3
je 0x100c84c6
mov dword [esp + 0x1c], esi
mov bh, byte [ecx + 0x3e]
mov bl, byte [ecx + 0x45]
mov esi, dword [ecx + 0x18]
mov edi, dword [ecx + 0x1c]
lea eax, [esp + 0x1a2c]
push eax
call fcn.100de800
add esp, 4
cmp esi, 2
mov eax, 1
mov ecx, 0x100000
cmovne eax, esi
cmove edi, ecx
test bh, bh
setne byte [esp + 0x1a28]
mov dword [esp + 0x1a20], eax
mov eax, dword [esp + 0x4c]
test bl, bl
mov dword [esp + 0x1a24], edi
mov byte [esp + 0x1a29], 1
setne byte [esp + 0x1a2a]
lock inc dword [eax]
jle 0x100cc442
push eax
lea eax, [esp + 0x1a24]
push eax
lea edi, [esp + 0x640]
push edi
call fcn.100b3cf0
add esp, 0xc
mov bh, byte [esp + 0x24]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x1a2c]
call fcn.100adb00
cmp dword [esp + 0x638], 0
je 0x100c83cd
mov ecx, dword [esp + 0x640]
cmp ecx, 0x26
ja 0x100c84c6
mov eax, dword [esp + 0x648]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x100c8482
mov esi, dword [esp + 0x1c]
test edx, edx
lea edi, [esp + 0x638]
jne 0x100c84c6
cmp ecx, 0x1f
jne 0x100c84a5
test eax, eax
je 0x100c84c6
mov eax, dword [esp + 0x644]
jmp 0x100c84b6
mov eax, dword [esp + 0x63c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x640]
push 0x138
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x100c84c6
lea edi, [esp + 0xcd0]
push 0x1a8
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x60]
push edi
push eax
call fcn.100f05e0
add esp, 8
test ebx, ebx
je 0x100c8459
mov eax, dword [esp + 0xc]
mov edi, dword [0x1044eff8]
lea esi, [eax + 4]
jmp 0x100c8446
add esi, 0x10
dec ebx
je 0x100c8459
cmp dword [esi], 0
je 0x100c8440
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c8440
cmp dword [esp + 0x27ec], 0
mov esi, dword [esp + 0x20]
je 0x100c7c6b
mov eax, dword [0x1044eff8]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c7c6b
mov esi, dword [esp + 0x1c]
cmp eax, 4
lea edi, [esp + 0x638]
jb 0x100c84c6
cmp dword [esp + 0x654], 0
je 0x100c84c6
mov eax, dword [esp + 0x650]
jmp 0x100c84b6
cmp dword [esp + 0x660], 0
je 0x100c84c6
mov eax, dword [esp + 0x65c]
mov ecx, dword [0x1044eff8]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1658], eax
lea eax, [esp + 0x165c]
push 0x138
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x41], 0
je 0x100c85bc
push edi
call fcn.100de800
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x63c], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x640], 1
mov byte [esp + 0x641], al
mov ah, byte [esp + 0x10]
mov byte [esp + 0x642], ah
mov word [esp + 0x643], 1
mov byte [esp + 0x645], 2
lea edx, [esp + 0x638]
lea ecx, [esp + 0x1a20]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.100deab0
add esp, 8
cmp dword [esp + 0x1a20], 0x27
jne 0x100c85d6
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x638]
call fcn.100adb00
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x41], 0
je 0x100c8756
cmp bh, 2
jne 0x100c8772
mov edx, dword [esp + 0x20]
mov byte [esp + 0x8c], 2
mov ah, 2
mov al, byte [edx + 0x3e]
jmp 0x100c87b6
mov dword [esp + 0xc], 0
mov ebx, 2
mov dword [esp + 0x2c], 0
jmp 0x100c9442
movsd xmm1, qword [esp + 0x1a50]
movsd xmm2, qword [esp + 0x1a48]
movsd xmm0, qword [esp + 0x1a58]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x1a40]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x1a38]
movsd qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x1a30]
movsd qword [esp + 0x158], xmm2
movsd xmm2, qword [esp + 0x1a20]
movsd qword [esp + 0x150], xmm1
movsd xmm1, qword [esp + 0x1a28]
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x148], xmm1
lea ecx, [esp + 0x638]
call fcn.100adb00
cmp dword [esp + 0x2c], 3
je 0x100c86c8
mov ecx, dword [esp + 0x1664]
lock dec dword [ecx]
jne 0x100c868a
call fcn.100af560
cmp dword [esp + 0x166c], 0
je 0x100c86a9
mov eax, dword [0x1044eff8]
push dword [esp + 0x1668]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1678], 0
je 0x100c86c8
mov eax, dword [0x1044eff8]
push dword [esp + 0x1674]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp esi, 2
je 0x100c8706
movzx eax, byte [esp + 0xc0]
cmp al, 3
je 0x100c86f5
cmp al, 2
je 0x100c86f5
mov ecx, dword [esp + 0xb8]
lock dec dword [ecx]
jne 0x100c86f5
mov edx, dword [esp + 0xbc]
call fcn.100af620
mov ecx, dword [esp + 0xc4]
lock dec dword [ecx]
jne 0x100c8706
call fcn.100af560
movzx eax, byte [esp + 0xa4]
cmp al, 3
je 0x100c872e
cmp al, 2
je 0x100c872e
mov ecx, dword [esp + 0x9c]
lock dec dword [ecx]
jne 0x100c872e
mov edx, dword [esp + 0xa0]
call fcn.100af620
mov ecx, dword [esp + 0x98]
lock dec dword [ecx]
jne 0x100c873f
call fcn.100af560
mov ecx, dword [esp + 0x6c]
lock dec dword [ecx]
jne 0x100c7f82
call fcn.100af560
jmp 0x100c7f82
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], 2
lea ebx, [esp + 0x638]
jmp 0x100c9413
mov ecx, dword [esp + 0x70]
lock inc dword [ecx]
jle 0x100cc442
mov esi, dword [esp + 0x74]
mov ah, byte [esp + 0x78]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov byte [esp + 0x8c], ah
cmp byte [edx + 0x41], 0
je 0x100c93c0
mov al, byte [edx + 0x3e]
lock inc dword [ecx]
jle 0x100cc442
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov edi, 0x200000
cmp dword [edx + 8], 0
je 0x100c87da
mov edi, dword [edx + 0xc]
cmp byte [edx + 0x45], 0
movaps xmm0, xmmword [0x10335db0]
mov byte [esp + 0x25a8], 3
mov dword [esp + 0x25ac], 0x2020202
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov byte [esp + 0x30], ah
mov dword [esp + 0x18], edi
mov dword [esp + 0x2564], 0
mov dword [esp + 0x2560], 0
mov word [esp + 0x25b0], 0x202
mov dword [esp + 0x2588], 0
mov dword [esp + 0x2590], 2
mov dword [esp + 0x2598], 2
setne byte [esp + 0x1c]
setne byte [esp + 0x116]
test al, al
setne byte [esp + 0x114]
setne byte [esp + 0x58]
cmp ah, 2
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], esi
mov byte [esp + 0x110], ah
mov dword [esp + 0xf0], 1
mov dword [esp + 0xf4], edi
movups xmmword [esp + 0xf8], xmm0
mov byte [esp + 0x115], 1
mov byte [esp + 0x117], 1
setne byte [esp + 0x118]
setne byte [esp + 0x28]
mov byte [esp + 0x119], 0
lea ebx, [esp + 0x220]
push ebx
call fcn.100de800
add esp, 4
lea edi, [esp + 0x638]
lea esi, [esp + 0x2560]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x690]
push 0xf0
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x24], 2
mov eax, dword [esp + 0xc]
je 0x100c890b
lock inc dword [eax]
jle 0x100cc442
movzx ecx, byte [esp + 0x58]
movaps xmm0, xmmword [0x10335db0]
mov byte [esp + 0x26c], cl
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x264], eax
movzx eax, byte [esp + 0x30]
mov byte [esp + 0x268], al
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x26d], 1
mov byte [esp + 0x26e], al
movzx eax, byte [esp + 0x28]
mov byte [esp + 0x26f], 1
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 0
mov byte [esp + 0x270], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x248], 1
mov dword [esp + 0x24c], eax
mov byte [esp + 0x271], 0
movups xmmword [esp + 0x250], xmm0
lea eax, [esp + 0x220]
push eax
lea ebx, [esp + 0x63c]
push ebx
call fcn.100bcb20
add esp, 8
mov eax, dword [esp + 0x4c]
lock inc dword [eax]
jle 0x100cc442
lea esi, [esp + 0x1798]
push eax
push ebx
push esi
call fcn.100bb940
add esp, 0xc
movzx eax, byte [esp + 0x680]
cmp al, 3
je 0x100c89ff
cmp al, 2
je 0x100c89ff
mov ecx, dword [esp + 0x678]
lock dec dword [ecx]
jne 0x100c89ff
mov edx, dword [esp + 0x67c]
call fcn.100af620
mov bl, 1
mov ecx, edi
call fcn.100adb00
mov eax, dword [esp + 0x1798]
xor eax, 2
or eax, dword [esp + 0x179c]
jne 0x100c8a6e
mov ecx, dword [esp + 0x17a0]
cmp ecx, 0x26
ja 0x100c9375
mov eax, dword [esp + 0x17a8]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x100c92ba
test edx, edx
jne 0x100c9375
cmp ecx, 0x1f
jne 0x100c92da
test eax, eax
je 0x100c9375
mov eax, dword [esp + 0x17a4]
jmp 0x100c92ef
lea eax, [esp + 0x27e8]
push 0x288
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esp + 0x4f0], 3
mov dword [esp + 0x4f4], 0x2020202
mov dword [esp + 0x4ac], 0
mov dword [esp + 0x4a8], 0
mov word [esp + 0x4f8], 0x202
mov dword [esp + 0x4d0], 0
mov dword [esp + 0x4d8], 2
mov dword [esp + 0x4e0], 2
lea ebx, [esp + 0x220]
push ebx
call fcn.100de800
add esp, 4
lea edi, [esp + 0x638]
lea esi, [esp + 0x4a8]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
push 0xf0
push ebx
lea eax, [esp + 0x698]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx ebx, byte [esp + 0x110]
cmp bl, 3
je 0x100c8b44
cmp bl, 2
je 0x100c8b44
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
lock inc dword [eax]
jle 0x100cc442
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
movzx ecx, byte [esp + 0x116]
movzx edx, byte [esp + 0x117]
xor edi, edi
mov bh, byte [esp + 0x115]
or eax, dword [esp + 0xcc]
mov byte [esp + 0xc], cl
mov byte [esp + 0x30], dl
je 0x100c8bba
lea eax, [esp + 0xd0]
mov esi, 1
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0x4b8], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x4c0], xmm0
movsd qword [esp + 0x4a8], xmm2
movsd qword [esp + 0x4b0], xmm1
jmp 0x100c8bbc
xor esi, esi
movsd xmm0, qword [esp + 0x4a8]
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
xor eax, eax
movsd xmm1, qword [esp + 0x4b0]
test edx, edx
movsd qword [esp + 0x228], xmm0
movsd xmm0, qword [esp + 0x4b8]
movsd qword [esp + 0x230], xmm1
setne al
cmp edx, 2
cmove eax, edx
xor edx, edx
test ecx, ecx
setne dl
cmp ecx, 2
cmove edx, ecx
movsd qword [esp + 0x238], xmm0
movsd xmm0, qword [esp + 0x4c0]
mov ecx, dword [esp + 0xf0]
cmp bl, 3
movsd qword [esp + 0x240], xmm0
mov dword [esp + 0x220], esi
mov dword [esp + 0x224], edi
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x24c], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], edx
mov esi, dword [esp + 0x18]
movzx edx, byte [esp + 0xc]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], esi
mov byte [esp + 0x268], bl
mov byte [esp + 0x26c], 0
mov byte [esp + 0x26d], bh
mov byte [esp + 0x26e], dl
mov bh, byte [esp + 0x30]
movzx edx, word [esp + 0x118]
lea esi, [esp + 0x269]
mov byte [esp + 0x26f], bh
mov word [esp + 0x270], dx
je 0x100c8cf5
cmp bl, 2
je 0x100c8cf5
lock dec dword [ecx]
jne 0x100c8cf5
mov edx, dword [esp + 0x264]
call fcn.100af620
movzx ecx, byte [esp + 0x4aa]
mov byte [esp + 0x268], 2
xor edx, edx
lea ebx, [esp + 0x220]
lea eax, [esp + 0x271]
mov byte [esi + 2], cl
movzx ecx, word [esp + 0x4a8]
mov word [esi], cx
mov esi, ebx
mov ecx, dword [esp + 0x270]
cmp cl, 2
cmovne edx, ecx
mov ecx, 0x14
mov byte [esp + 0x270], dl
lea edx, [esp + 0x4a8]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x4f8], 0
mov ecx, dword [eax]
mov eax, dword [eax + 3]
mov dword [esp + 0x183], eax
mov dword [esp + 0x180], ecx
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x183]
mov dword [esp + 0x4f9], eax
mov dword [esp + 0x4fc], ecx
push edx
lea eax, [esp + 0x63c]
push eax
call fcn.100bcb20
add esp, 8
lea esi, [esp + 0x2560]
lea edi, [esp + 0x690]
mov eax, dword [esp + 0xac]
lock inc dword [eax]
jle 0x100cc442
push eax
lea eax, [esp + 0x63c]
push eax
push esi
call fcn.100bb940
add esp, 0xc
movzx eax, byte [esp + 0x680]
cmp al, 3
je 0x100c8de9
cmp al, 2
je 0x100c8de9
mov ecx, dword [esp + 0x678]
lock dec dword [ecx]
jne 0x100c8de9
mov edx, dword [esp + 0x67c]
call fcn.100af620
mov ecx, edi
call fcn.100adb00
mov eax, dword [esp + 0x2560]
xor eax, 2
or eax, dword [esp + 0x2564]
jne 0x100c8e56
mov ecx, dword [esp + 0x2568]
cmp ecx, 0x26
ja 0x100c933a
mov eax, dword [esp + 0x2570]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x100c9301
test edx, edx
jne 0x100c933a
cmp ecx, 0x1f
jne 0x100c9319
test eax, eax
je 0x100c933a
mov eax, dword [esp + 0x256c]
jmp 0x100c932a
push 0x288
push esi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esp + 0x1c8], 3
mov dword [esp + 0x1cc], 0x2020202
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov word [esp + 0x1d0], 0x202
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1b0], 2
mov dword [esp + 0x1b8], 2
lea eax, [esp + 0x4a8]
push eax
call fcn.100de800
add esp, 4
lea ebx, [esp + 0x638]
lea esi, [esp + 0x180]
mov ecx, 0x16
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push 0xf0
lea esi, [esp + 0x4ac]
push esi
lea eax, [esp + 0x698]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x148
push ebx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x288
lea eax, [esp + 0x27ec]
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x8c0]
push 0x288
lea ecx, [esp + 0x2564]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x4f0]
cmp al, 3
je 0x100c8f67
cmp al, 2
je 0x100c8f67
mov ecx, dword [esp + 0x4e8]
lock dec dword [ecx]
jne 0x100c8f67
mov edx, dword [esp + 0x4ec]
call fcn.100af620
lea ecx, [esp + 0x500]
call fcn.100adb00
mov eax, dword [esp + 0x638]
mov ebx, dword [esp + 0x640]
lea esi, [esp + 0x644]
lea edi, [esp + 0x5f4]
mov ecx, 0x11
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x688]
rep movsd dword es:[edi], dword [esi]
push 0x4c0
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x110]
cmp al, 3
je 0x100c8fea
cmp al, 2
je 0x100c8fea
mov ecx, dword [esp + 0x108]
lock dec dword [ecx]
jne 0x100c8fea
mov edx, dword [esp + 0x10c]
call fcn.100af620
cmp byte [esp + 0x24], 2
mov dword [esp + 0x1c], ebx
je 0x100c93e1
mov ecx, dword [esp + 0x84]
lock dec dword [ecx]
je 0x100c93d5
jmp 0x100c93e1
cmp byte [eax + 0x28], 0
je 0x100c7c1b
cmp byte [esi + 0x3e], 0
je 0x100c7c1b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp word [eax], 7
jne 0x100c7c1b
mov dword [esp + 0x1a20], 4
mov dword [esp + 0x1a24], 0
mov dword [esp + 0x1a28], 0
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x100ca058
mov edi, dword [eax + 4]
lea eax, [ecx + ecx*8]
xor edx, edx
lea eax, [eax + eax*2]
add ecx, edi
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, 4
jmp 0x100c90ae
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
lea eax, [edx + edx*2]
inc edx
mov dword [ecx + eax*4], ebx
mov ebx, dword [esp + 0xc]
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1a28], edx
add edi, 0x1c
cmp edi, dword [esp + 0x1c]
je 0x100ca04c
mov dword [esp + 0x638], 1
mov dword [esp + 0x63c], 0
mov dword [esp + 0x220], edi
mov dword [esp + 0x640], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
movzx eax, word [edi]
cmp eax, 1
je 0x100c919a
cmp eax, 6
jne 0x100ccb5f
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x100c91e2
mov ebx, dword [edi + 4]
lea eax, [ecx + ecx*8]
xor edi, edi
mov dword [esp + 0x30], 1
lea eax, [eax + eax*2]
add ecx, ebx
add ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x100c9150
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
add eax, edi
push esi
push dword [esp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x10]
add ebx, 0x1c
add edi, esi
mov dword [esp + 0x640], edi
cmp ebx, ecx
je 0x100c91ec
mov dword [esp + 0x2058], ebx
cmp word [ebx], 1
jne 0x100cc997
mov ecx, dword [esp + 0x63c]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 4]
sub ecx, edi
mov dword [esp + 0xc], eax
cmp ecx, esi
jae 0x100c9120
mov edx, edi
lea ecx, [esp + 0x638]
push esi
call fcn.100b0d10
add esp, 4
mov eax, dword [esp + 0x638]
mov edi, dword [esp + 0x640]
jmp 0x100c9124
mov esi, dword [edi + 8]
mov ebx, dword [edi + 4]
test esi, esi
je 0x100c91c6
xor edx, edx
lea ecx, [esp + 0x638]
push esi
call fcn.100b0d10
add esp, 4
mov eax, dword [esp + 0x638]
mov edi, dword [esp + 0x640]
jmp 0x100c91cd
xor edi, edi
mov eax, 1
mov dword [esp + 0x30], eax
add eax, edi
push esi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, esi
jmp 0x100c91ec
mov dword [esp + 0x30], 1
xor edi, edi
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x63c]
cmp edx, dword [esp + 0x1a24]
mov dword [esp + 0xc], ebx
jne 0x100c9077
lea ecx, [esp + 0x1a20]
call fcn.100b0180
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1a20]
mov edx, dword [esp + 0x1a28]
jmp 0x100c907f
test cl, cl
je 0x100c7bf1
cmp word [edx + 0x1c], 0
jne 0x100c7bf1
mov edx, 1
lea ecx, [esp + 0xcd0]
push eax
push edi
call fcn.100f0a40
add esp, 8
movzx esi, byte [esp + 0xcd0]
cmp esi, 7
je 0x100c7bf1
movzx eax, byte [esp + 0xcd3]
movzx ebx, word [esp + 0xcd1]
shl eax, 0x10
or eax, ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0xcd4]
lea ecx, [esp + 0x1a20]
push 0x1a4
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
add eax, dword [esi*4 + 0x100cd66c]
jmp eax
cmp eax, 4
jb 0x100c9375
cmp dword [esp + 0x17b4], 0
je 0x100c9375
mov eax, dword [esp + 0x17b0]
jmp 0x100c92ef
cmp dword [esp + 0x17c0], 0
je 0x100c9375
mov eax, dword [esp + 0x17bc]
mov ecx, dword [0x1044eff8]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c9375
cmp eax, 4
jb 0x100c933a
cmp dword [esp + 0x257c], 0
je 0x100c933a
mov eax, dword [esp + 0x2578]
jmp 0x100c932a
cmp dword [esp + 0x2588], 0
je 0x100c933a
mov eax, dword [esp + 0x2584]
mov ecx, dword [0x1044eff8]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
movzx eax, byte [esp + 0x2830]
cmp al, 3
je 0x100c9362
cmp al, 2
je 0x100c9362
mov ecx, dword [esp + 0x2828]
lock dec dword [ecx]
jne 0x100c9362
mov edx, dword [esp + 0x282c]
call fcn.100af620
mov ecx, dword [esp + 0x2a60]
lock dec dword [ecx]
jne 0x100c9375
xor ebx, ebx
call fcn.100af560
movzx eax, byte [esp + 0x110]
cmp al, 3
je 0x100c939d
cmp al, 2
je 0x100c939d
mov ecx, dword [esp + 0x108]
lock dec dword [ecx]
jne 0x100c939d
mov edx, dword [esp + 0x10c]
call fcn.100af620
cmp byte [esp + 0x8c], 2
jne 0x100c93b9
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], 2
jmp 0x100c93e1
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], 0
lock dec dword [ecx]
mov dword [esp + 0x30], 2
jne 0x100c93e1
mov edx, dword [esp + 0x88]
call fcn.100af620
lea edi, [esp + 0x220]
lea esi, [esp + 0x5f4]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x4c0
lea eax, [esp + 0x1a24]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1610]
lea esi, [esp + 0x220]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2058]
push 0x4c0
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x30]
lea esi, [esp + 0x1610]
lea edi, [esp + 0x13c]
mov ecx, 0x11
mov dword [esp + 0x24], esi
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xcd0]
lea eax, [esp + 0x2058]
push 0x4c0
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x78]
movsd xmm1, qword [esp + 0xa0]
movsd xmm3, qword [esp + 0x98]
movsd xmm2, qword [esp + 0xb0]
mov dword [esp + 0x12ec], eax
movsd qword [esp + 0x12e4], xmm0
movsd qword [esp + 0x12f8], xmm1
mov eax, dword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb8]
movsd qword [esp + 0x12f0], xmm3
mov dword [esp + 0x1300], eax
movsd qword [esp + 0x1198], xmm1
movsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0x1190], xmm2
lea eax, [esp + 0x11a8]
movsd qword [esp + 0x11a0], xmm1
lea ecx, [esp + 0x1658]
push 0x13c
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, ebx
xor eax, 3
or eax, dword [esp + 0xc]
jne 0x100c9579
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
lea eax, [esp + 0x251c]
lea esi, [esp + 0x13c]
mov ecx, 0x11
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, 0x11
lea edi, [edx + 4]
mov eax, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx], ebx
cmp byte [esp + 0x68], 2
je 0x100ca044
mov ecx, dword [esp + 0x60]
lock dec dword [ecx]
jne 0x100ca044
mov edx, dword [esp + 0x64]
call fcn.100af620
mov eax, dword [ebp + 8]
jmp 0x100ca044
mov dword [esp + 0x30], ebx
lea ebx, [esp + 0x251c]
mov eax, esi
lea esi, [esp + 0x13c]
mov ecx, 0x11
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2a70]
push 0x634
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1dc]
mov ecx, 0x11
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ebx, dword [eax + 0x54]
test byte [ebx + 0x20], 2
jne 0x100c9797
mov eax, dword [esp + 0x30]
mov dword [esp + 0x63c], ecx
lea edi, [esp + 0x644]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x640], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x688]
push 0x634
lea eax, [esp + 0x2a74]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xcbc], eax
mov dword [esp + 0xcc4], ecx
mov dword [esp + 0xcc0], edx
mov byte [esp + 0xcc8], 0
cmp byte [eax + 0x40], 0
je 0x100c98b5
test byte [ebx + 0x1e], 1
jne 0x100c9864
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, dword [esp + 0xc]
je 0x100c9864
movzx eax, byte [esp + 0xca4]
lea ebx, [esp + 0xcd0]
lea esi, [esp + 0x2058]
test al, 1
jne 0x100c9864
mov eax, dword [esp + 0x20]
cmp dword [ebp + 0x14], 0
movaps xmm0, xmmword [0x10335da0]
movzx eax, byte [eax + 0x3e]
movups xmmword [esp + 0xcd0], xmm0
mov dword [esp + 0x220], 4
mov dword [esp + 0x224], 0
mov byte [esp + 0xce0], 1
mov dword [esp + 0x228], 0
mov byte [esp + 0x51], al
je 0x100c9956
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
lea ecx, [eax + ecx*4]
mov edi, eax
mov dword [esp + 0x18], ecx
jmp 0x100c9705
mov edi, dword [esp + 0x10]
lea esi, [esp + 0x2058]
cmp edi, dword [esp + 0x18]
je 0x100c9956
push dword [edi]
push ebx
push esi
call fcn.1010f4c0
add esp, 0xc
lea ecx, [esp + 0x220]
mov edx, esi
call fcn.100a7180
add edi, 4
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x2058]
test edi, edi
je 0x100c96f0
mov esi, dword [esp + 0x2060]
test esi, esi
je 0x100c976e
lea ebx, [edi + 4]
jmp 0x100c9756
add ebx, 0x10
dec esi
je 0x100c976e
cmp dword [ebx], 0
je 0x100c9750
push dword [ebx - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c9750
cmp dword [esp + 0x205c], 0
lea ebx, [esp + 0xcd0]
je 0x100c96f0
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c96f0
test byte [ebx + 0x1e], 1
jne 0x100c95d1
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, ecx
je 0x100c95d1
mov ebx, ecx
lea edi, [esp + 0xce4]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x2a74]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcdc], ebx
mov esi, dword [0x1044eff8]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1360], eax
mov eax, dword [0x1044f00c]
mov byte [esp + 0x1368], 0
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
je 0x100c9908
lea edi, [esp + 0xcd0]
jmp 0x100c991e
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea esi, [esp + 0x1a28]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xccc]
mov ebx, dword [esp + 0xcc8]
mov dword [esp + 0x18], eax
mov al, 1
mov dword [esp + 0x28], eax
mov eax, esi
jmp 0x100c9c7e
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea esi, [esp + 0x1a28]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xccc]
mov ebx, dword [esp + 0xcc8]
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], eax
mov eax, esi
jmp 0x100c9c7e
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
lea edi, [esp + 0xcd0]
je 0x100ccb32
mov dword [esi], eax
push 0x6a0
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100ccb32
mov esi, eax
push 0x6a0
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x10337f0c
jmp 0x100ca033
cmp byte [esp + 0x51], 0
je 0x100c9aa2
lea eax, [esp + 0x220]
push 0
push eax
call fcn.10111e70
add esp, 8
movsd xmm0, qword [esp + 0x220]
mov ecx, dword [esp + 0x228]
movsd qword [esp + 0x1610], xmm0
mov dword [esp + 0x1618], ecx
mov eax, dword [esp + 0x1610]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x100c9bc9
test ecx, ecx
je 0x100c9bc9
mov ebx, dword [esp + 0x5c]
shl ecx, 4
mov edi, 1
mov esi, dword [ebx + 8]
mov eax, dword [ebx]
add ecx, ebx
mov dword [esp + 0x120], ecx
xor ecx, ecx
mov dword [esp + 0x54], eax
add eax, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x18], eax
jmp 0x100c9a00
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
xor edi, edi
test esi, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x94]
mov cl, 1
je 0x100c9bc9
test cl, 1
je 0x100c9a13
cmp ebx, dword [esp + 0x120]
jne 0x100c9a2c
jmp 0x100c9b91
mov eax, dword [esp + 0x120]
sub eax, ebx
shr eax, 4
cmp eax, edi
jbe 0x100c9b91
shl edi, 4
add ebx, edi
mov eax, esi
sub eax, dword [esp + 0x10]
jb 0x100ccb1d
mov edx, dword [ebx + 8]
test edx, edx
je 0x100c9bc9
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx]
add ebx, 0x10
xor esi, esi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x28], ebx
sub ecx, eax
mov eax, edx
add edi, edx
mov dword [esp + 0x58], ecx
neg eax
mov ecx, 0xffffffff
nop dword [eax + eax]
mov edx, dword [esp + 0x10]
lea ebx, [edx + ecx]
cmp ebx, 0xffffffff
je 0x100c99e1
movzx ebx, byte [edi + ecx]
mov edx, dword [esp + 0x18]
cmp bl, byte [edx + ecx]
jne 0x100c9a99
inc esi
mov ebx, eax
dec ecx
add ebx, esi
jne 0x100c9a70
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x28]
jmp 0x100c99e9
mov ecx, dword [esp + 0x220]
test ecx, ecx
je 0x100c9973
mov esi, dword [esp + 0x228]
mov edx, esi
mov dword [esp + 0x28], ecx
call fcn.100af6e0
mov edx, dword [esp + 0x28]
mov ecx, esi
cmp esi, 2
jb 0x100c9973
dec ecx
lea esi, [edx + 0x1c]
mov ebx, 1
jmp 0x100c9b05
mov ebx, dword [esp + 0x10]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov eax, ebx
inc ebx
shl eax, 4
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
add esi, 0x10
dec ecx
je 0x100c9b85
mov eax, dword [esi - 4]
mov dword [esp + 0x10], ebx
dec ebx
lea edi, [esi - 0xc]
shl ebx, 4
cmp eax, dword [edx + ebx + 8]
jne 0x100c9add
mov dword [esp + 0x18], ecx
lea ecx, [edx + ebx]
mov edx, dword [edi]
push eax
push dword [ecx]
mov dword [esp + 0x60], edx
push edx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x100c9add
cmp byte [esi], 0
mov edi, dword [esp + 0x58]
setne al
cmp byte [edx + ebx + 0xc], 0
setne cl
cmp al, cl
je 0x100c9b5e
lea eax, [edx + ebx + 0xc]
mov byte [esi], 0
mov byte [eax], 0
cmp dword [esi - 8], 0
je 0x100c9b77
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
add esi, 0x10
dec ecx
jne 0x100c9b05
mov dword [esp + 0x228], ebx
jmp 0x100c9973
mov eax, esi
sub eax, dword [esp + 0x10]
jb 0x100ccb82
cmp dword [esp + 0x10], 0
je 0x100c9bc9
mov edi, dword [esp + 0x54]
add edi, eax
cmp dword [esp + 0x10], 1
jne 0x100ca142
movzx eax, byte [edi]
mov dword [esp + 0x18], 0
mov byte [esp + 0x28], al
jmp 0x100cb745
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xcc8]
mov ecx, dword [esp + 0xccc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x5c], 0
je 0x100c9c67
mov esi, dword [esp + 0x1618]
test esi, esi
je 0x100c9c4b
mov eax, dword [esp + 0x5c]
mov ebx, dword [0x1044eff8]
lea edi, [eax + 4]
jmp 0x100c9c38
add edi, 0x10
dec esi
je 0x100c9c4b
cmp dword [edi], 0
je 0x100c9c32
push dword [edi - 4]
push 0
push dword [ebx]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c9c32
cmp dword [esp + 0x1614], 0
je 0x100c9c67
mov eax, dword [0x1044eff8]
push dword [esp + 0x5c]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
movzx eax, byte [eax + 0x40]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1a20]
lea edi, [esp + 0x1dc]
lea esi, [esp + 0x4a8]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x2a78]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, ebx
lea edi, [esp + 0xcdc]
mov ecx, 0x11
lea esi, [esp + 0x1dc]
shr eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xcd8], eax
lea eax, [esp + 0xd20]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x2a74]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1354], ecx
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1358], eax
mov byte [esp + 0x1360], bl
shr ebx, 0x18
mov eax, dword [esp + 0x10]
cmp byte [esp + 0x28], 0
mov byte [esp + 0x1363], bl
mov word [esp + 0x1361], ax
mov dword [esp + 0x1364], edx
je 0x100c9ebf
cmp byte [ecx + 0x3e], 0
je 0x100c9ebf
mov eax, dword [ecx + 0x54]
test byte [eax + 0x1e], 1
jne 0x100c9ebf
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jne 0x100c9dd8
test al, al
jne 0x100c9dd8
lea edi, [esp + 0x2560]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], 0
jmp 0x100c9ef1
movzx eax, byte [esp + 0x133c]
test al, 1
jne 0x100c9ebf
cmp dword [ebp + 0x14], 1
jne 0x100c9e19
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x4b1]
mov dword [esp + 0x30], eax
mov ecx, dword [ecx]
movzx eax, word [ecx]
cmp eax, 5
jne 0x100c9e13
add ecx, 4
mov ecx, dword [ecx]
movzx eax, word [ecx]
cmp eax, 5
je 0x100c9e06
jae 0x100ca069
mov eax, dword [esp + 0xcd0]
lea edi, [esp + 0x2560]
mov ecx, 0x11
lea esi, [esp + 0xcdc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcd4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xcd8]
mov dword [esp + 0x1c], eax
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0xd24]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1354]
movzx ecx, word [esp + 0x1361]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1358]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x135c]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1363]
shl eax, 0x10
or ecx, eax
movzx eax, byte [esp + 0x1360]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1364]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
jmp 0x100c9ef1
lea edi, [esp + 0x2560]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1dc]
lea esi, [esp + 0x2560]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
push ebx
lea ebx, [esp + 0x2a78]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0xce4]
mov ecx, 0x11
lea esi, [esp + 0x1dc]
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [0x1044eff8]
mov dword [esp + 0xcdc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1360], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1368], al
mov eax, ecx
mov word [esp + 0x1369], cx
shr eax, 0x10
mov byte [esp + 0x136b], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x136c], eax
mov eax, dword [0x1044f00c]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
je 0x100c9fea
lea edi, [esp + 0xcd0]
jmp 0x100ca000
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
lea edi, [esp + 0xcd0]
je 0x100ccaf4
mov dword [esi], eax
push 0x6a0
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100ccaf4
mov esi, eax
push 0x6a0
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x10338008
mov dword [eax], 2
cmp byte [esp + 0x68], 2
jne 0x100c955b
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edx, 0xbb8
jae 0x100ca256
lea ecx, [esp + 0x1a20]
call fcn.100ad9b0
jmp 0x100c7c1b
cmp eax, 6
jne 0x100c9e19
mov edx, dword [ecx + 0xc]
test edx, edx
mov dword [esp + 0xc], edx
je 0x100ca5ab
lea eax, [edx + edx*8]
xor ebx, ebx
lea edi, [eax + eax*2]
add edi, edx
cmp edi, 0x8000000c
setb al
test edx, edx
js 0x100ccb9d
cmp edi, 0x8000000c
jae 0x100ccb9d
mov bl, al
mov eax, dword [0x1044f00c]
mov esi, dword [ecx + 4]
shl ebx, 2
movzx eax, byte [eax]
push ebx
mov dword [esp + 0x14], edi
push edi
call fcn.10001510
add esp, 8
test eax, eax
je 0x100ccba9
mov ecx, dword [esp + 0xc]
mov edi, eax
xor ebx, ebx
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], 0
lea ecx, [esp + 0x1a20]
mov edx, esi
call fcn.100c65b0
mov eax, dword [esp + 0x1a38]
inc ebx
add esi, 0x1c
mov dword [edi + 0x18], eax
movsd xmm0, qword [esp + 0x1a30]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x1a20]
movsd xmm1, qword [esp + 0x1a28]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x1c
cmp dword [esp + 0xc], ebx
jne 0x100ca0ef
jmp 0x100ca5c1
push dword [esp + 0x10]
push edi
push 1
lea ebx, [esp + 0xcdc]
push ebx
call fcn.1007a280
add esp, 0x10
lea esi, [esp + 0x2058]
push ebx
push esi
call fcn.1007a920
add esp, 8
movzx eax, byte [esp + 0x205c]
movsd xmm1, qword [esp + 0x2068]
mov edx, dword [esp + 0x2080]
movsd xmm0, qword [esp + 0x2060]
movsd xmm2, qword [esp + 0x2070]
mov esi, dword [esp + 0x2058]
movzx ecx, word [esp + 0x205e]
mov dword [esp + 0x90], eax
movzx eax, byte [esp + 0x205d]
movsd qword [esp + 0x228], xmm1
movsd xmm1, qword [esp + 0x2078]
cmp edx, 2
movsd qword [esp + 0x220], xmm0
movsd qword [esp + 0x230], xmm2
mov byte [esp + 0x1c], al
movsd qword [esp + 0x238], xmm1
jne 0x100ca34d
cmp byte [esp + 0x51], 0
je 0x100cb1a3
mov dword [esp + 0x220], 0x2020200
lea eax, [esp + 0x220]
push eax
lea esi, [esp + 0x205c]
push esi
call fcn.100151b0
add esp, 8
cmp byte [esp + 0x2080], 0
lea eax, [esp + 0x205c]
jne 0x100cae2e
cmp dword [esp + 0x2064], 0x80
jb 0x100cae20
mov byte [esp + 0x2080], 1
push eax
call fcn.100172a0
add esp, 4
jmp 0x100cae2e
mov ecx, dword [esp + 0x1a20]
test ecx, ecx
je 0x100c7c1b
mov esi, dword [esp + 0x1a28]
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x2560], ecx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov byte [esp + 0x2069], 1
mov dword [esp + 0x205c], 0x1010000
mov dword [esp + 0x2058], 2
mov byte [esp + 0x2064], 1
mov word [esp + 0x2062], 0
mov dword [esp + 0x2065], 1
cmp esi, 0x1f5
mov dword [esp + 0x2564], eax
lea eax, [esp + 0x2067]
mov dword [esp + 0x2568], esi
mov dword [esp + 0x30], esi
adc cl, 1
mov byte [esp + 0x2060], cl
mov byte [esp + 0x2061], 0
push eax
lea eax, [esp + 0x63c]
push eax
call fcn.10012470
add esp, 8
mov bh, byte [esp + 0x7d5]
mov esi, dword [esp + 0x640]
mov edx, dword [esp + 0x638]
mov ecx, dword [esp + 0x63c]
movzx eax, byte [esp + 0x644]
mov bl, byte [esp + 0x645]
movzx edi, word [esp + 0x646]
cmp bh, 2
mov dword [esp + 0xc], esi
jne 0x100ca701
mov word [esp + 0x10], di
mov dword [esp + 0x30], eax
mov esi, edx
jmp 0x100cb53e
movsd xmm2, qword [esp + 0x238]
movsd xmm1, qword [esp + 0x230]
mov eax, edx
mov edx, dword [esp + 0x2084]
movsd xmm0, qword [esp + 0x2088]
mov ebx, dword [esp + 0x90]
mov edi, ecx
mov dword [esp + 0x58], eax
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xd8], xmm1
movsd xmm2, qword [esp + 0x220]
movsd xmm1, qword [esp + 0x228]
mov dword [esp + 0x7c], edx
mov dl, 3
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x18], edx
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm2
jmp 0x100cb745
mov esi, dword [esp + 0x27f0]
test esi, esi
je 0x100ca589
lea ebx, [edi + 4]
jmp 0x100ca56e
add ebx, 0x10
dec esi
je 0x100ca589
cmp dword [ebx], 0
je 0x100ca568
push dword [ebx - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
jmp 0x100ca568
cmp dword [esp + 0x27ec], 0
je 0x100ca044
mov eax, dword [0x1044eff8]
push edi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c9571
mov dword [esp + 0x220], 4
mov dword [esp + 0x224], 0
movsd xmm0, qword [esp + 0x220]
mov eax, dword [esp + 0xc]
mov bl, 1
movsd qword [esp + 0x1798], xmm0
mov dword [esp + 0x17a0], eax
lea eax, [esp + 0x1798]
push eax
lea esi, [esp + 0x1a24]
push esi
call fcn.1011c650
add esp, 8
lea eax, [esp + 0x220]
push esi
push eax
call fcn.1011bfd0
add esp, 8
cmp word [esp + 0x220], 6
jne 0x100ca6f0
mov esi, dword [esp + 0x224]
test esi, esi
je 0x100c9e19
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x228]
mov dword [esp + 0x1658], esi
cmp edx, 2
mov dword [esp + 0x165c], eax
mov dword [esp + 0x1660], edx
jb 0x100cadf7
mov eax, 1
mov ebx, 0x1c
mov dword [esp + 0x10], edx
jmp 0x100ca677
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
add ebx, 0x1c
inc eax
cmp edx, eax
je 0x100cade9
mov esi, dword [esp + 0x1660]
mov dword [esp + 0xc], eax
cmp esi, eax
jbe 0x100cc876
mov edi, dword [esp + 0x1658]
add edi, ebx
lea ecx, [esp + 0x1a20]
mov edx, edi
call fcn.100c6480
cmp byte [esp + 0x1a28], 2
je 0x100ca663
mov eax, dword [esp + 0x1a28]
movsd xmm0, qword [esp + 0x1a20]
test al, al
mov dword [esp + 0x4b0], eax
movsd qword [esp + 0x4a8], xmm0
jne 0x100cb699
mov ecx, dword [esp + 0x4a8]
lock dec dword [ecx]
jne 0x100ca663
mov edx, dword [esp + 0x4ac]
call fcn.100af620
jmp 0x100ca663
lea ecx, [esp + 0x220]
call fcn.100ab7e0
jmp 0x100c9e19
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x648]
mov esi, eax
lea eax, [esp + 0xce8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x650]
push 0x185
push ecx
push eax
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x7d6]
lea ecx, [esp + 0xe6e]
push 0x14a
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xcd0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd8], eax
mov eax, esi
mov byte [esp + 0xcdc], al
mov eax, dword [esp + 0x24]
mov byte [esp + 0xcdd], bl
mov word [esp + 0xcde], di
mov dword [esp + 0xce4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xce0], eax
mov byte [esp + 0xe6d], bh
lea eax, [esp + 0xcd0]
push 0
push eax
lea eax, [esp + 0x640]
push eax
call fcn.100140b0
add esp, 0xc
mov esi, dword [esp + 0x638]
cmp esi, 3
jne 0x100cb4ed
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.100140b0
add esp, 0xc
mov esi, dword [esp + 0x638]
cmp esi, 3
jne 0x100cb4ed
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.100140b0
add esp, 0xc
mov eax, dword [esp + 0x638]
cmp eax, 3
jne 0x100cb4eb
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xfa8], eax
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.100140b0
add esp, 0xc
mov eax, dword [esp + 0x638]
cmp eax, 3
jne 0x100cb4eb
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xfac], eax
lea eax, [esp + 0xcd0]
push eax
call fcn.100137e0
add esp, 4
cmp dword [esp + 0x30], 0
je 0x100cabc0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], 0
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
cmp eax, 0x7fffffff
mov dword [esp + 0xc], eax
jae 0x100cc864
mov ecx, dword [esp + 0xf98]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
cmp ecx, edx
mov edi, dword [eax]
mov eax, dword [esp + 0xe88]
cmovae ecx, edx
mov dword [esp + 0xf98], ecx
mov ecx, dword [esp + 0xf9c]
mov dword [esp + 0x2a70], eax
cmp ecx, edx
cmovbe ecx, edx
cmp dword [esp + 0x18], eax
mov dword [esp + 0xf9c], ecx
jne 0x100ccbbd
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0xe84]
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
jne 0x100ca941
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xe80]
call fcn.100b0230
mov ecx, dword [esp + 0xe88]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xe80]
mov esi, dword [esp + 0xc]
mov dword [edx + ecx*4], esi
mov dword [esp + 0xe88], eax
mov eax, dword [esp + 0xe70]
cmp byte [eax], 0
je 0x100ca974
push esi
push edi
lea eax, [esp + 0xcf8]
push eax
call fcn.100189c0
add esp, 0xc
mov eax, dword [esp + 0xfa8]
test esi, esi
mov dword [esp + 0x30], eax
je 0x100cab61
add dword [esp + 0xc], edi
mov esi, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
jmp 0x100ca9d0
or bl, 0x20
mov eax, ebx
add esi, dword [esp + 0xe74]
movzx eax, al
push edi
push eax
push esi
call fcn.10012110
add esp, 0xc
mov esi, dword [esp + 0x24]
inc dword [esp + 0x1c]
mov dword [esp + 0x30], edi
inc esi
cmp esi, dword [esp + 0xc]
je 0x100cab65
movzx ebx, byte [esi]
test byte [esp + 0x10], 1
mov edi, dword [esp + 0x30]
mov al, 1
jne 0x100caa03
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x100ccb16
mov eax, dword [esp + 0xe74]
mov ecx, edi
shl ecx, 5
cmp dword [eax + ecx + 0x14], 0
setne al
test al, al
mov dword [esp + 0x10], eax
je 0x100caa1c
mov eax, dword [esp + 0xe70]
cmp byte [eax + 2], 1
je 0x100caba3
push ebx
push ebx
lea eax, [esp + 0xcd8]
push eax
call fcn.100179c0
add esp, 0xc
mov eax, dword [esp + 0xe70]
cmp byte [eax + 1], 0
je 0x100caa6f
mov eax, ebx
add al, 0xbf
cmp al, 0x1a
jae 0x100caa49
mov eax, ebx
or al, 0x20
jmp 0x100caa5a
mov eax, ebx
mov ecx, ebx
add al, 0x9f
xor cl, 0x20
cmp al, 0x1a
movzx eax, cl
cmovae eax, ebx
movzx eax, al
push eax
push eax
lea eax, [esp + 0xcd8]
push eax
call fcn.100179c0
add esp, 0xc
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x100ccb08
mov ecx, dword [esp + 0xe74]
mov dword [esp + 0x24], esi
mov esi, edi
shl esi, 5
mov eax, dword [ecx + esi]
mov ecx, dword [ecx + esi + 8]
cmp ecx, 0x100
jne 0x100caaa3
lea edx, [eax + ebx*8 + 4]
jmp 0x100caaba
add eax, 0xfffffffc
shl ecx, 3
test ecx, ecx
je 0x100caac5
add ecx, 0xfffffff8
cmp byte [eax + 4], bl
lea edx, [eax + 8]
mov eax, edx
jne 0x100caaa9
mov edi, dword [edx]
cmp edi, 1
jne 0x100ca9b9
push dword [esp + 0x1c]
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.100140b0
add esp, 0xc
mov ecx, dword [esp + 0x638]
mov edi, dword [esp + 0x63c]
cmp ecx, 3
jne 0x100cc413
mov eax, dword [esp + 0xe7c]
cmp dword [esp + 0x30], eax
jae 0x100ccb0f
mov eax, dword [esp + 0xe74]
add eax, esi
push edi
push ebx
push eax
call fcn.10012110
add esp, 0xc
mov eax, dword [esp + 0xe70]
cmp byte [eax + 1], 0
je 0x100ca9b9
mov eax, dword [esp + 0xe7c]
cmp dword [esp + 0x30], eax
jae 0x100ccb46
mov eax, ebx
add al, 0xbf
cmp al, 0x1a
jb 0x100ca99f
mov eax, ebx
mov ecx, ebx
add al, 0x9f
xor cl, 0x20
cmp al, 0x1a
movzx eax, cl
cmovae eax, ebx
jmp 0x100ca9a4
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x100ccb7b
mov eax, dword [esp + 0xe74]
shl edi, 5
mov edx, dword [eax + edi + 0x14]
lea esi, [eax + edi + 0xc]
cmp edx, dword [eax + edi + 0x10]
jne 0x100cab96
mov ecx, esi
call fcn.100b0230
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esp + 0x18]
mov dword [eax + edx*4], ecx
inc edx
mov dword [esi + 8], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add eax, 0xc
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
jne 0x100ca8aa
lea eax, [esp + 0xcd0]
push eax
call fcn.10013940
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.10013ad0
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.10013e30
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.10012850
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.10013c70
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.10012f50
add esp, 4
lea eax, [esp + 0xcd0]
push eax
lea eax, [esp + 0x63c]
push eax
call fcn.10017b20
add esp, 8
lea eax, [esp + 0xe98]
push 0x100
lea esi, [esp + 0x63c]
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0xcf0]
push eax
push esi
call fcn.10018010
add esp, 8
mov ecx, dword [esp + 0xe8c]
lea esi, [esp + 0xe8c]
test ecx, ecx
je 0x100cac89
lock dec dword [ecx]
jne 0x100cac89
mov edx, dword [esp + 0xe90]
call fcn.100af590
mov eax, dword [esp + 0x640]
movsd xmm0, qword [esp + 0x638]
mov dword [esi + 8], eax
movsd qword [esi], xmm0
lea eax, [esp + 0xcd0]
push eax
call fcn.100141f0
add esp, 4
mov esi, dword [esp + 0xe8c]
xor eax, eax
test esi, esi
setne al
mov eax, dword [esp + eax*8 + 0xfa4]
mov dword [esp + 0xfa0], eax
mov eax, dword [esp + 0xe7c]
mov edi, dword [esp + 0xe80]
mov ebx, dword [esp + 0xe84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe88]
mov dword [esp + 0x30], eax
lea eax, [esp + 0xe90]
push 0x128
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0xe74]
movsd qword [esp + 0x10], xmm0
lea ecx, [esp + 0xcf0]
call fcn.100acbb0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1a2c], edi
mov dword [esp + 0x1a30], ebx
movsd xmm0, qword [esp + 0x10]
mov dword [esp + 0x1a38], esi
mov dword [esp + 0x1a34], eax
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x1a20], xmm0
mov dword [esp + 0x1a28], eax
lea eax, [esp + 0x1a3c]
push 0x128
lea ecx, [esp + 0x63c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x2060]
cmp eax, 3
jne 0x100cc446
push 0x144
lea eax, [esp + 0x1a24]
push eax
lea esi, [esp + 0xcd8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x2058]
lea ecx, [esp + 0x220]
push esi
push eax
push ecx
call fcn.100075c0
add esp, 0xc
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x220]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x228]
mov dword [esp + 0x30], eax
jmp 0x100cc90b
mov esi, dword [esp + 0x1658]
mov edx, dword [esp + 0x1660]
mov ecx, esi
call fcn.100abd10
cmp dword [esp + 0x165c], 0
je 0x100c9e19
mov eax, dword [0x1044eff8]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c9e19
push dword [esp + 0x10]
push edi
push eax
call fcn.10017160
add esp, 0xc
push esi
push ebx
call fcn.10015260
add esp, 8
movzx ecx, byte [esp + 0xd10]
mov dword [esp + 0x54], edi
cmp cl, 2
jne 0x100cae8f
mov edi, dword [esp + 0x2064]
mov eax, dword [esp + 0x205c]
test edi, edi
mov dword [esp + 0x18], eax
je 0x100caf8a
mov eax, dword [esp + 0x18]
mov esi, dword [0x1044eff8]
lea ebx, [eax + 4]
jmp 0x100cae7c
add ebx, 0xc
dec edi
je 0x100caf8a
cmp dword [ebx], 0
je 0x100cae72
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100cae72
movsd xmm1, qword [esp + 0xd00]
movsd xmm2, qword [esp + 0xcf8]
movsd xmm0, qword [esp + 0xd08]
movzx eax, word [esp + 0xd11]
movzx edx, byte [esp + 0xd13]
mov edi, dword [esp + 0x2064]
mov byte [esp + 0x94], cl
movsd qword [esp + 0x17c8], xmm1
movsd xmm1, qword [esp + 0xcf0]
movsd qword [esp + 0x17c0], xmm2
movsd xmm2, qword [esp + 0xce8]
movsd qword [esp + 0x17d0], xmm0
test edi, edi
movsd qword [esp + 0x17b8], xmm1
movsd xmm1, qword [esp + 0xce0]
movsd qword [esp + 0x17b0], xmm2
movsd xmm2, qword [esp + 0xcd0]
movsd qword [esp + 0x17a8], xmm1
movsd xmm1, qword [esp + 0xcd8]
movsd qword [esp + 0x1798], xmm2
movsd qword [esp + 0x17a0], xmm1
mov word [esp + 0x17d9], ax
mov byte [esp + 0x17db], dl
mov byte [esp + 0x17d8], cl
mov ecx, dword [esp + 0x205c]
mov dword [esp + 0x18], ecx
je 0x100cafce
mov eax, dword [esp + 0x18]
mov esi, dword [0x1044eff8]
lea ebx, [eax + 4]
jmp 0x100caf77
add ebx, 0xc
dec edi
je 0x100cafce
cmp dword [ebx], 0
je 0x100caf71
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100caf71
cmp dword [esp + 0x2060], 0
je 0x100cafa6
mov eax, dword [0x1044eff8]
push dword [esp + 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x206c], 0
je 0x100cb19f
mov eax, dword [0x1044eff8]
push dword [esp + 0x2068]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100cb19f
cmp dword [esp + 0x2060], 0
je 0x100cafea
mov eax, dword [0x1044eff8]
push dword [esp + 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x206c], 0
je 0x100cb009
mov eax, dword [0x1044eff8]
push dword [esp + 0x2068]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov byte [esp + 0x13e], 1
mov word [esp + 0x13c], 0
mov word [esp + 0x13f], 0x201
lea edi, [esp + 0x13c]
lea ecx, [esp + 0x2058]
mov edx, edi
push dword [esp + 0x10]
push dword [esp + 0x58]
call fcn.100a0e70
add esp, 8
cmp dword [esp + 0x2058], 0
jne 0x100cb18f
push 0x144
lea eax, [esp + 0x2060]
push eax
lea esi, [esp + 0x228]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push esi
push edi
lea eax, [esp + 0xcd8]
push eax
call fcn.1000d7d0
add esp, 0xc
lea eax, [esp + 0x220]
push eax
call fcn.100acac0
add esp, 4
cmp dword [esp + 0xcd0], 0
jne 0x100cb18f
movzx eax, byte [esp + 0xcd8]
movsd xmm2, qword [esp + 0xce4]
movsd xmm1, qword [esp + 0xcec]
mov esi, dword [esp + 0xcd4]
movsd xmm0, qword [esp + 0xcdc]
mov dword [esp + 0x90], eax
movzx eax, byte [esp + 0xcd9]
movsd qword [esp + 0x188], xmm2
movsd qword [esp + 0x190], xmm1
movsd xmm2, qword [esp + 0xcf4]
movsd xmm1, qword [esp + 0xd04]
movsd qword [esp + 0x180], xmm0
mov byte [esp + 0x1c], al
movzx eax, word [esp + 0xcda]
movsd qword [esp + 0x198], xmm2
movaps xmmword [esp + 0x120], xmm1
mov word [esp + 0x52], ax
mov eax, dword [esp + 0xcfc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd00]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xd0c]
lea edi, [esp + 0x2560]
push 0x120
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx ecx, byte [esp + 0xe2c]
movzx eax, word [esp + 0xe2d]
movzx edx, byte [esp + 0xe2f]
cmp cl, 3
mov word [esp + 0x251c], ax
mov byte [esp + 0x251e], dl
mov byte [esp + 0x5c], cl
jne 0x100cbd77
lea eax, [esp + 0x1798]
push eax
call fcn.100ac3d0
add esp, 4
mov edi, dword [esp + 0x54]
cmp byte [esp + 0x51], 0
lea edx, [esp + 0x17a7]
mov dword [esp + 0x179c], 0x1000000
mov dword [esp + 0x1798], 2
mov dword [esp + 0x17a5], 1
mov dword [esp + 0x17a0], 2
setne byte [esp + 0x17a9]
setne byte [esp + 0x179e]
setne byte [esp + 0x17a4]
lea ecx, [esp + 0xcd0]
push dword [esp + 0x10]
push edi
call fcn.100a0e70
add esp, 8
cmp dword [esp + 0xcd0], 0
je 0x100cb277
mov eax, dword [esp + 0xce0]
movzx edx, byte [esp + 0xce5]
movzx ecx, word [esp + 0xce6]
mov esi, dword [esp + 0xcd8]
mov edi, dword [esp + 0xcdc]
movzx ebx, byte [esp + 0xce4]
mov dword [esp + 0x54], eax
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
cmp esi, 3
jne 0x100cb921
cmp byte [esp + 0x1c], 3
je 0x100cb921
mov esi, dword [esp + 0x54]
mov al, 6
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
movzx edi, word [esp + 0x52]
jmp 0x100cb745
mov esi, dword [esp + 0xcec]
mov ebx, dword [esp + 0xce4]
mov edi, dword [esp + 0xce8]
lea eax, [esp + 0x23c]
lea ecx, [esp + 0xcf0]
push 0x128
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x17a0]
movsd xmm0, qword [esp + 0xcd4]
movsd xmm1, qword [esp + 0xcdc]
cmp eax, 3
movsd qword [esp + 0x220], xmm0
movsd qword [esp + 0x228], xmm1
mov dword [esp + 0x230], ebx
mov dword [esp + 0x238], esi
mov dword [esp + 0x234], edi
jne 0x100cb344
lea eax, [esp + 0x220]
push 0x144
push eax
lea esi, [esp + 0xcd8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1798]
lea ecx, [esp + 0x180]
push esi
push eax
push ecx
call fcn.100075c0
add esp, 0xc
mov eax, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
movzx ebx, byte [esp + 0x188]
mov dword [esp + 0x10], eax
jmp 0x100cb733
test eax, eax
je 0x100cb6bd
cmp eax, 1
jne 0x100cbbc9
lea eax, [esp + 0x220]
lea ecx, [esp + 0x1798]
push eax
push ecx
lea eax, [esp + 0x2060]
push eax
call fcn.10010d70
add esp, 0xc
movzx eax, byte [esp + 0x219c]
movzx edx, byte [esp + 0x2065]
movzx ecx, word [esp + 0x2066]
mov esi, dword [esp + 0x2058]
mov edi, dword [esp + 0x205c]
movzx ebx, byte [esp + 0x2064]
cmp al, 3
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x2060]
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
mov dword [esp + 0x54], eax
je 0x100cbc31
mov eax, dword [esp + 0x2068]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x206c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x2070]
lea ecx, [esp + 0x2560]
push 0x12c
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x219d]
mov word [esp + 0xe1d], ax
movzx eax, byte [esp + 0x219f]
mov byte [esp + 0xe1f], al
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcd8], esi
mov dword [esp + 0xcdc], edi
mov dword [esp + 0xce0], eax
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0xce4], bl
mov byte [esp + 0xce5], al
movzx eax, word [esp + 0x52]
mov word [esp + 0xce6], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xcec], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xce8], eax
push 0x12c
lea eax, [esp + 0x2564]
push eax
lea eax, [esp + 0xcf8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x10]
mov byte [esp + 0xe1c], al
mov eax, dword [0x1044f00c]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x150
call fcn.10001510
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x100ccc58
push 0x150
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x1033602c
mov bl, 1
jmp 0x100cbd56
mov esi, eax
mov eax, dword [esp + 0x640]
movzx ecx, word [esp + 0x646]
mov edi, dword [esp + 0x63c]
movzx ebx, byte [esp + 0x645]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
lea ecx, [esp + 0xcf0]
call fcn.100acbb0
lea eax, [esp + 0xe74]
push eax
call fcn.100acac0
add esp, 4
mov ecx, edi
cmp esi, 3
jne 0x100cb61c
cmp bl, 3
je 0x100cb61c
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd0], ecx
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0xcd8], al
movzx eax, word [esp + 0x10]
mov byte [esp + 0xcd9], bl
mov word [esp + 0xcda], ax
lea ecx, [esp + 0xcd0]
call fcn.100cd8c0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2560]
mov ebx, dword [esp + 0x2568]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x100cb5d5
mov ecx, dword [esp + 0xc]
mov edi, dword [0x1044eff8]
lea esi, [ecx + 4]
jmp 0x100cb5bf
add esi, 0xc
dec ebx
je 0x100cb5d5
cmp dword [esi], 0
je 0x100cb5b9
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
jmp 0x100cb5b9
cmp dword [esp + 0x2564], 0
je 0x100cb5f4
mov eax, dword [0x1044eff8]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x27e8]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x10338170
test edi, edi
mov dword [eax], 2
jne 0x100ca558
jmp 0x100ca044
mov edi, dword [esp + 0x2568]
mov eax, dword [esp + 0x2560]
test edi, edi
mov dword [esp + 0xc], eax
je 0x100cb65a
mov eax, dword [esp + 0xc]
mov esi, dword [0x1044eff8]
lea ebx, [eax + 4]
jmp 0x100cb647
add ebx, 0xc
dec edi
je 0x100cb65a
cmp dword [ebx], 0
je 0x100cb641
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100cb641
cmp dword [esp + 0x2564], 0
mov esi, dword [esp + 0x20]
je 0x100c7c1b
mov eax, dword [0x1044eff8]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c7c1b
push 0x10337d24
push 0
push 0
call fcn.100273d0
add esp, 0xc
jmp 0x100cccbc
mov ebx, esi
sub ebx, dword [esp + 0xc]
jb 0x100ccc1f
jne 0x100cbc46
lea eax, [ebx + ebx*8]
mov ecx, 4
lea esi, [eax + eax*2]
add esi, ebx
jmp 0x100cbebf
lea eax, [esp + 0xcd8]
lea ecx, [esp + 0x220]
push 0x144
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x1044f00c]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x14c
call fcn.10001510
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x100ccc31
push 0x14c
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x10335fa8
xor ebx, ebx
movzx eax, byte [esp + 0x17a1]
mov byte [esp + 0x1c], al
mov al, 6
mov dword [esp + 0x18], eax
movsd xmm1, qword [esp + 0xd8]
movsd xmm0, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xc8]
lea eax, [esp + 0xd10]
movsd qword [esp + 0xcf0], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0xcf8], xmm0
movsd qword [esp + 0xce0], xmm2
movsd qword [esp + 0xce8], xmm1
lea ecx, [esp + 0x27e8]
push 0x120
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x5c]
movsd xmm0, qword [esp + 0x1658]
movsd xmm1, qword [esp + 0x1660]
mov byte [esp + 0xe30], al
movzx eax, word [esp + 0xb0]
mov word [esp + 0xe31], ax
movzx eax, byte [esp + 0xb2]
mov byte [esp + 0xe33], al
movsd qword [esp + 0xe34], xmm0
movsd xmm0, qword [esp + 0x1668]
movzx eax, byte [esp + 0x94]
movsd qword [esp + 0xe3c], xmm1
movsd qword [esp + 0xe44], xmm0
movsd xmm0, qword [esp + 0x1670]
movsd qword [esp + 0xe4c], xmm0
movsd xmm0, qword [esp + 0x1678]
movsd qword [esp + 0xe54], xmm0
movsd xmm0, qword [esp + 0x1680]
movsd qword [esp + 0xe5c], xmm0
movsd xmm0, qword [esp + 0x1688]
movsd qword [esp + 0xe64], xmm0
movsd xmm0, qword [esp + 0x1690]
movsd qword [esp + 0xe6c], xmm0
mov byte [esp + 0xe74], al
movzx eax, word [esp + 0x98]
movaps xmm0, xmmword [esp + 0x120]
mov word [esp + 0xe75], ax
movzx eax, byte [esp + 0x9a]
mov byte [esp + 0xe77], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xcd0], al
movzx eax, byte [esp + 0x28]
mov byte [esp + 0xcd1], al
mov eax, dword [esp + 0x10]
mov dword [esp + 0xcd4], eax
movzx eax, byte [esp + 0x1c]
mov dword [esp + 0xcd8], esi
mov byte [esp + 0xcdc], bl
mov byte [esp + 0xcdd], al
mov eax, dword [esp + 0x58]
mov word [esp + 0xcde], di
mov dword [esp + 0xd00], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xd04], eax
movlps qword [esp + 0xd08], xmm0
lea eax, [esp + 0x5f4]
lea ecx, [esp + 0xcd0]
push ecx
push eax
call fcn.100f05e0
add esp, 8
movzx eax, byte [esp + 0x5fc]
cmp al, 2
jne 0x100cb98f
mov eax, dword [esp + 0x640]
lea edi, [esp + 0x4a8]
mov ecx, 0x11
lea esi, [esp + 0x644]
mov dword [esp + 0x1c], eax
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x68c]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0xcc8]
mov esi, dword [esp + 0xccc]
mov eax, dword [esp + 0x1610]
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], 0
jne 0x100c9c18
jmp 0x100c9c67
mov ecx, dword [esp + 0x5f4]
movzx esi, word [esp + 0x5fd]
movzx edx, byte [esp + 0x5ff]
mov ebx, dword [esp + 0x5f8]
test al, al
mov dword [esp + 0x10], ecx
mov word [esp + 0x84], si
mov byte [esp + 0x86], dl
je 0x100cbb5f
mov eax, dword [esp + 0x640]
lea esi, [esp + 0x64c]
lea edi, [esp + 0x4a8]
mov ecx, 0x11
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x644]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x648]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x690]
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xcc8]
movzx edx, word [esp + 0x84]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xccc]
mov word [esp + 0x1379], dx
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x86]
mov byte [esp + 0x137b], al
lea ecx, [esp + 0x1610]
call fcn.100abca0
lea edi, [esp + 0xcec]
mov ecx, 0x11
lea esi, [esp + 0x4a8]
lea eax, [esp + 0xd30]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcdc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xce4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x136c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1368], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1370], eax
mov eax, dword [0x1044f00c]
mov dword [esp + 0x1374], ebx
mov byte [esp + 0x1378], 1
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 8
push 0x6b0
call fcn.10001510
add esp, 8
test eax, eax
je 0x100ccb89
mov esi, eax
push 0x6b0
lea eax, [esp + 0xcd4]
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x10337f60
jmp 0x100ca033
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x4a8]
mov ecx, 0x11
lea esi, [esp + 0x644]
mov ebx, dword [esp + 0x640]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x68c]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xcc8]
mov esi, dword [esp + 0xccc]
lock dec dword [ecx]
mov dword [esp + 0x1c], ebx
jne 0x100cb96c
mov edx, dword [esp + 0x18]
call fcn.100af620
jmp 0x100cb96c
lea eax, [esp + 0x17a2]
lea ecx, [esp + 0x220]
push ecx
push eax
lea eax, [esp + 0x2060]
push eax
call fcn.1000d7d0
add esp, 0xc
cmp dword [esp + 0x2058], 0
je 0x100cbc92
mov eax, dword [esp + 0x2068]
movzx edx, byte [esp + 0x206d]
movzx ecx, word [esp + 0x206e]
mov esi, dword [esp + 0x2060]
mov edi, dword [esp + 0x2064]
movzx ebx, byte [esp + 0x206c]
mov dword [esp + 0x54], eax
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
lea eax, [esp + 0x220]
push eax
call fcn.100acac0
add esp, 4
jmp 0x100cb24b
cmp ebx, 0x4924925
setb al
jae 0x100ccc42
lea ecx, [ebx + ebx*8]
lea esi, [ecx + ecx*2]
xor ecx, ecx
mov cl, al
add esi, ebx
shl ecx, 2
test esi, esi
mov dword [esp + 0x10], ecx
js 0x100ccc42
je 0x100cbeb3
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push dword [esp + 0x10]
push esi
call fcn.10001510
add esp, 8
mov ecx, eax
jmp 0x100cbeb7
mov esi, dword [esp + 0x2074]
mov ebx, dword [esp + 0x206c]
mov edi, dword [esp + 0x2070]
lea eax, [esp + 0x2078]
lea ecx, [esp + 0xcf4]
push 0x140
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x205c]
movsd xmm1, qword [esp + 0x2064]
mov eax, dword [0x1044f00c]
movsd qword [esp + 0xcd8], xmm0
movsd qword [esp + 0xce0], xmm1
mov dword [esp + 0xce8], ebx
mov dword [esp + 0xcf0], esi
mov dword [esp + 0xcec], edi
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x164
call fcn.10001510
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x100ccc69
push 0x164
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x103360b0
mov bl, 2
movzx eax, byte [esp + 0x17a1]
mov byte [esp + 0x1c], al
lea eax, [esp + 0x220]
push eax
call fcn.100acac0
add esp, 4
jmp 0x100cb73f
movsd xmm1, qword [esp + 0x190]
movsd xmm0, qword [esp + 0x198]
movsd xmm2, qword [esp + 0x180]
lea ebx, [esp + 0x17d9]
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0x188]
movsd qword [esp + 0xe0], xmm0
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xd0], xmm1
lea eax, [esp + 0x27e8]
push 0x120
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x251c]
movsd xmm1, qword [esp + 0x17c8]
movsd xmm2, qword [esp + 0x17c0]
movsd xmm0, qword [esp + 0x17d0]
mov word [esp + 0xb0], ax
movzx eax, byte [esp + 0x251e]
movsd qword [esp + 0x1688], xmm1
movsd xmm1, qword [esp + 0x17b8]
movsd qword [esp + 0x1680], xmm2
movsd xmm2, qword [esp + 0x17b0]
movsd qword [esp + 0x1690], xmm0
mov byte [esp + 0xb2], al
movzx eax, byte [ebx + 2]
movsd qword [esp + 0x1678], xmm1
movsd xmm1, qword [esp + 0x17a8]
movsd qword [esp + 0x1670], xmm2
movsd xmm2, qword [esp + 0x1798]
mov byte [esp + 0x9a], al
movzx eax, word [ebx]
movsd qword [esp + 0x1668], xmm1
movsd xmm1, qword [esp + 0x17a0]
mov ebx, dword [esp + 0x90]
movsd qword [esp + 0x1658], xmm2
mov word [esp + 0x98], ax
mov al, 4
movsd qword [esp + 0x1660], xmm1
mov dword [esp + 0x18], eax
jmp 0x100cb26d
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x100ccc49
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1660], eax
push esi
push edi
mov esi, ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x1a20], esi
mov dword [esp + 0x1a24], ebx
mov dword [esp + 0x1a28], ebx
lea eax, [esp + 0x1a20]
push eax
lea eax, [esp + 0x224]
push eax
call fcn.1011c650
add esp, 8
mov eax, dword [esp + 0x1660]
movsd xmm0, qword [esp + 0x1658]
mov dword [esp + 0x17a0], eax
movsd qword [esp + 0x1798], xmm0
lea eax, [esp + 0x1798]
push eax
lea eax, [esp + 0x1a24]
push eax
call fcn.1011c650
add esp, 8
mov al, 1
mov dword [esp + 0xc], eax
lea edi, [esp + 0x220]
lea ecx, [esp + 0x1798]
mov edx, edi
call fcn.100c6480
movzx eax, byte [esp + 0x17a0]
cmp al, 2
sete byte [esp + 0x10]
jne 0x100cbf80
mov ecx, dword [esp + 0x4a8]
mov edx, dword [esp + 0x4ac]
mov dword [esp + 0xc], 0
jmp 0x100cbfa7
mov ecx, dword [esp + 0x1798]
mov edx, dword [esp + 0x179c]
mov bl, 1
test al, al
mov dword [esp + 0xc], ebx
je 0x100cc3c1
lea eax, [esp + 0x17a1]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edx
movzx eax, byte [esi + 2]
movzx esi, word [esi]
mov byte [esp + 0xca], al
mov word [esp + 0xc8], si
movzx eax, word [esp + 0x1a3a]
movsd xmm0, qword [esp + 0x1a22]
movsd xmm2, qword [esp + 0x1a2a]
movsd xmm1, qword [esp + 0x1a32]
movzx esi, word [esp + 0x1a20]
mov word [esp + 0x2800], ax
movzx eax, word [esp + 0xc8]
movsd qword [esp + 0x27e8], xmm0
movsd qword [esp + 0x27f0], xmm2
movsd qword [esp + 0x27f8], xmm1
mov word [esp + 0x5f4], ax
movzx eax, byte [esp + 0xca]
mov byte [esp + 0x5f6], al
push edi
call fcn.10120c70
add esp, 4
lea ecx, [esp + 0x220]
call fcn.100ab7e0
mov eax, dword [0x1044eff8]
push dword [esp + 0x238]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp byte [esp + 0x10], 0
jne 0x100cc081
mov ecx, dword [esp + 0x4a8]
lock dec dword [ecx]
jne 0x100cc081
mov edx, dword [esp + 0x4ac]
xor ebx, ebx
call fcn.100af620
cmp si, 8
je 0x100c9e19
movzx eax, word [esp + 0x2800]
movsd xmm0, qword [esp + 0x27f8]
movsd xmm1, qword [esp + 0x27f0]
mov word [esp + 0x17b2], ax
movzx eax, byte [esp + 0x5f6]
movsd qword [esp + 0x17aa], xmm0
movsd xmm0, qword [esp + 0x27e8]
movsd qword [esp + 0x17a2], xmm1
mov byte [esp + 0x4b3], al
movzx eax, word [esp + 0x5f4]
movsd qword [esp + 0x179a], xmm0
mov word [esp + 0x1798], si
mov word [esp + 0x4b1], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4a8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4ac], eax
mov eax, dword [esp + 0x20]
mov byte [esp + 0x4b0], 1
movzx ecx, byte [eax + 0x3f]
mov bh, byte [eax + 0x3c]
mov bl, byte [eax + 0x3d]
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
mov byte [esp + 0xc], cl
lea eax, [esp + 0x1a20]
push eax
call fcn.100de800
add esp, 4
cmp edi, 2
mov eax, 1
mov ecx, 0xa00000
movzx edx, bl
cmovne eax, edi
cmove esi, ecx
test bh, bh
mov ecx, 0xa
cmovne ecx, edx
cmp byte [esp + 0xc], 0
mov dword [esp + 0x1a20], eax
lea eax, [esp + 0x1798]
mov dword [esp + 0x1a24], esi
mov byte [esp + 0x1a28], 1
mov byte [esp + 0x1a29], cl
mov dword [esp + 0x220], eax
setne byte [esp + 0x1a2a]
mov word [esp + 0x1a2b], 1
mov byte [esp + 0x1a2d], 2
lea edx, [esp + 0x1a20]
lea ecx, [esp + 0x27e8]
push 1
lea eax, [esp + 0x224]
push eax
call fcn.100deab0
add esp, 8
lea ebx, [esp + 0x1a20]
mov ecx, ebx
call fcn.100adb00
cmp dword [esp + 0x27e8], 0x27
jne 0x100cc24c
mov eax, dword [esp + 0x27ec]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1658], eax
mov dword [esp + 0xc], eax
cmp byte [ecx + 0x41], 0
je 0x100cc5ed
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x220]
push dword [esp + 0xc]
call fcn.100d9c40
add esp, 4
movzx edx, byte [esp + 0x223]
movzx ecx, word [esp + 0x221]
movzx eax, byte [esp + 0x220]
shl edx, 0x10
mov dword [esp + 0x24], eax
or ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x224]
mov dword [esp + 0x18], ecx
jmp 0x100cc619
movsd xmm1, qword [esp + 0x2818]
movsd xmm2, qword [esp + 0x2810]
mov eax, dword [esp + 0xcd0]
movsd xmm0, qword [esp + 0x2820]
lea edi, [esp + 0x2560]
mov ecx, 0x11
lea esi, [esp + 0xcdc]
movsd qword [esp + 0x1a50], xmm1
movsd xmm1, qword [esp + 0x2808]
movsd qword [esp + 0x1a48], xmm2
movsd xmm2, qword [esp + 0x2800]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcd4]
movsd qword [esp + 0x1a58], xmm0
movsd qword [esp + 0x1a40], xmm1
movsd xmm1, qword [esp + 0x27f8]
movsd qword [esp + 0x1a38], xmm2
movsd xmm2, qword [esp + 0x27e8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xcd8]
movsd qword [esp + 0x1a30], xmm1
movsd xmm1, qword [esp + 0x27f0]
movsd qword [esp + 0x1a20], xmm2
mov dword [esp + 0x1c], eax
movsd qword [esp + 0x1a28], xmm1
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0xd24]
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1354]
movzx esi, byte [esp + 0x1363]
movzx edi, word [esp + 0x1361]
mov edx, dword [esp + 0x1364]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1358]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x135c]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1360]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x1a20]
call fcn.100ada50
mov eax, dword [esp + 0x28]
lock dec dword [eax]
jne 0x100cc3a0
mov edx, dword [esp + 0x4ac]
mov ecx, dword [esp + 0x28]
call fcn.100af620
xor ebx, ebx
lea ecx, [esp + 0x1798]
call fcn.100ab580
shl esi, 0x10
lea ebx, [esp + 0x638]
add dword [esp + 0x10], esi
jmp 0x100c9ef1
mov eax, dword [esp + 0x4a8]
lea esi, [esp + 0x4b1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x18], eax
movzx eax, word [esi]
mov word [esp + 0xc8], ax
mov ah, byte [esi + 2]
mov byte [esp + 0xca], ah
lock dec dword [ecx]
mov byte [esp + 0x10], 1
jne 0x100cc5e0
mov dword [esp + 0xc], 0
call fcn.100af620
jmp 0x100cbfc9
mov eax, dword [esp + 0x640]
movzx edx, word [esp + 0x646]
movzx ebx, byte [esp + 0x645]
mov esi, ecx
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
mov word [esp + 0x10], dx
jmp 0x100cb51c
ud2
test eax, eax
je 0x100cc88f
cmp eax, 1
jne 0x100cc918
lea eax, [esp + 0x2058]
lea ecx, [esp + 0x1a20]
push ecx
push eax
lea eax, [esp + 0x640]
push eax
call fcn.10010d70
add esp, 0xc
mov eax, dword [esp + 0x640]
mov bh, byte [esp + 0x77c]
movzx ecx, word [esp + 0x646]
mov esi, dword [esp + 0x638]
mov edi, dword [esp + 0x63c]
mov bl, byte [esp + 0x645]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
cmp bh, 3
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
je 0x100cc980
mov eax, dword [esp + 0x648]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64c]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x2a70]
push 0x12c
lea eax, [esp + 0x654]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x77d]
mov word [esp + 0xe1d], ax
movzx eax, byte [esp + 0x77f]
mov byte [esp + 0xe1f], al
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd8], esi
mov dword [esp + 0xcdc], edi
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0xce4], al
movzx eax, word [esp + 0x10]
mov byte [esp + 0xce5], bl
mov word [esp + 0xce6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xcec], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xce8], eax
push 0x12c
lea eax, [esp + 0x2a74]
push eax
lea eax, [esp + 0xcf8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x1044f00c]
mov byte [esp + 0xe1c], bh
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x150
call fcn.10001510
add esp, 8
test eax, eax
je 0x100ccc9c
mov edi, eax
push 0x150
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, 1
mov dword [esp + 0xc], 0x1033602c
jmp 0x100ccad1
mov dword [esp + 0xc], 0
jmp 0x100cbfc9
mov al, 2
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], eax
movups xmm0, xmmword [esp + 0xcd0]
mov eax, dword [esp + 0xce0]
lea esi, [esp + 0xce4]
lea edi, [esp + 0x2560]
mov ecx, 0x11
mov dword [esp + 0x1c], eax
movaps xmmword [esp + 0x30], xmm0
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x135c]
movsd xmm0, qword [esp + 0x4a8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1360]
movsd qword [esp + 0x1ca0], xmm0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1364]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4b0]
mov dword [esp + 0x1ca8], eax
lea eax, [esp + 0x228]
push 0x280
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x28c
push ebx
lea eax, [esp + 0x2060]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor ebx, ebx
lea ecx, [esp + 0x1798]
call fcn.100ab580
movdqa xmm1, xmmword [esp + 0x30]
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 3
or ecx, eax
jne 0x100cc720
movdqa xmm1, xmmword [esp + 0x30]
lea ebx, [esp + 0x638]
pshufd xmm0, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
movd dword [esp + 0xc], xmm0
movd dword [esp + 0x30], xmm1
jmp 0x100c9ef1
lea edi, [esp + 0xcec]
lea esi, [esp + 0x2560]
mov ecx, 0x11
lea eax, [esp + 0xd30]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x63c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1378]
push 0x28c
lea ecx, [esp + 0x205c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x180]
movaps xmm0, xmmword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1609], eax
mov eax, dword [esp + 0x183]
mov dword [esp + 0x160c], eax
mov eax, dword [esp + 0x1c]
movups xmmword [esp + 0xcd8], xmm0
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x136c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1368], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1370], al
mov eax, ecx
mov word [esp + 0x1371], cx
shr eax, 0x10
mov byte [esp + 0x1373], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1374], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1604], eax
mov eax, dword [0x1044f00c]
mov byte [esp + 0x1608], 0
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 8
push 0x940
call fcn.10001510
add esp, 8
test eax, eax
je 0x100ccc7a
mov esi, eax
push 0x940
lea eax, [esp + 0xcd4]
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x10337fb4
jmp 0x100ca033
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov esi, 2
jmp 0x100cb520
mov bl, 1
push 0x10337e78
push esi
push dword [esp + 0x14]
call fcn.100273d0
add esp, 0xc
jmp 0x100cccbc
lea eax, [esp + 0xcd8]
push 0x144
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x1044f00c]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x14c
call fcn.10001510
add esp, 8
test eax, eax
je 0x100ccc8b
mov edi, eax
push 0x14c
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
mov ecx, edi
add esp, 0xc
mov dword [esp + 0xc], 0x10335fa8
mov dword [esp + 0x30], 0
movzx ebx, byte [esp + 0x2061]
jmp 0x100cb550
lea eax, [esp + 0x2062]
lea ecx, [esp + 0x1a20]
push ecx
push eax
lea eax, [esp + 0x640]
push eax
call fcn.1000d7d0
add esp, 0xc
cmp dword [esp + 0x638], 0
je 0x100cc9f5
mov eax, dword [esp + 0x648]
movzx ecx, word [esp + 0x64e]
mov esi, dword [esp + 0x640]
mov edi, dword [esp + 0x644]
movzx ebx, byte [esp + 0x64d]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x64c]
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1a20]
push eax
call fcn.100acac0
add esp, 4
mov ecx, edi
jmp 0x100cb53e
lea eax, [esp + 0x2058]
mov ecx, 0x10337d7c
mov dword [esp + 0xcd0], 0x10337d74
mov dword [esp + 0x2a70], eax
mov dword [esp + 0x2a74], 0x100a7c90
lea esi, [esp + 0xcd0]
lea edi, [esp + 0x2a70]
mov dword [esi + 4], 1
mov dword [esi + 0x10], 0
mov dword [esi + 8], edi
mov dword [esi + 0xc], 1
push ecx
push esi
call fcn.100272b0
add esp, 8
jmp 0x100cccbc
mov eax, dword [esp + 0x64c]
mov edi, dword [esp + 0x644]
mov ebx, dword [esp + 0x648]
mov esi, dword [esp + 0x654]
lea ecx, [esp + 0xcf4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x650]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x658]
push 0x140
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x63c]
mov eax, dword [esp + 0x30]
movsd qword [esp + 0xcd8], xmm0
mov dword [esp + 0xce0], edi
mov dword [esp + 0xce4], ebx
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcf0], esi
mov dword [esp + 0xcec], eax
mov eax, dword [0x1044f00c]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x164
call fcn.10001510
add esp, 8
test eax, eax
je 0x100cccad
mov edi, eax
push 0x164
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xc], 0x103360b0
mov al, 2
movzx ebx, byte [esp + 0x2061]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1a20]
push eax
call fcn.100acac0
add esp, 4
mov ecx, edi
jmp 0x100cc913
push 0x6a0
push 8
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
mov ecx, 0x10336270
jmp 0x100ccb4f
mov ecx, 0x10336284
jmp 0x100ccb4b
mov ecx, 0x10336260
jmp 0x100ccb4f
mov ecx, 0x1033656c
push ecx
push esi
push eax
call fcn.1002abd0
add esp, 0xc
jmp 0x100cccbc
push 0x6a0
push 8
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
mov ecx, 0x10336294
mov edi, dword [esp + 0x30]
push ecx
push eax
push edi
call fcn.100273d0
add esp, 0xc
jmp 0x100cccbc
lea eax, [esp + 0x220]
mov dword [esp + 0xcd0], 0x10337dd8
mov ecx, 0x10337de0
jmp 0x100cc9ae
mov ecx, 0x10336250
jmp 0x100ccb4f
mov ecx, 0x1033655c
jmp 0x100ccb22
push 0x6b0
push 8
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
mov bl, 1
call fcn.1001ac40
jmp 0x100cccbc
push dword [esp + 0x10]
push ebx
mov bl, 1
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
mov dword [esp + 0x638], 0x103362d4
mov dword [esp + 0x63c], 1
mov dword [esp + 0x640], 0x10335f70
mov dword [esp + 0x644], 0
mov dword [esp + 0x648], 0
lea eax, [esp + 0x2a70]
lea edx, [esp + 0x220]
xor ecx, ecx
push 0x103362dc
lea esi, [esp + 0x63c]
push esi
push eax
call fcn.100af130
add esp, 0xc
jmp 0x100cccbc
push esi
push dword [esp + 0x10]
call fcn.1001bfe0
add esp, 8
jmp 0x100cccbc
push 0x14c
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
call fcn.1001ac40
jmp 0x100cccbc
push esi
push dword [esp + 0x14]
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x150
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x164
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x940
push 8
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x14c
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x150
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100cccbc
push 0x164
push 4
call fcn.1001ac80
add esp, 8
ud2