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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x1670
call fcn.100ff570
mov esi, dword [edx]
call 0x100c0a9a
pop eax
mov dword [esp + 0x7c], ecx
mov edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100c16fd
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 8], ecx
jne 0x100c16fd
movzx eax, byte [esi + 0x10]
mov ecx, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
test ecx, ecx
je 0x100c0ad8
lock inc dword [ecx]
jle 0x100c3748
lock inc dword [ebx]
jle 0x100c3748
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c17cb
mov esi, dword [ebp + 8]
test ecx, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
je 0x100c0bb8
mov eax, dword [ecx + 0x16c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x78], eax
lea ecx, [eax + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], ebx
cmp eax, 0x3ffffffd
ja 0x100c17b9
lea edx, [eax + 1]
lock cmpxchg dword [ecx], edx
jne 0x100c17b9
mov eax, dword [esp + 0x78]
movzx edx, byte [eax + 0x10]
add eax, 0x14
test dl, dl
jne 0x100c374a
cmp dword [eax], 0
mov dword [esp + 0x5c], ecx
je 0x100c0be2
lea eax, [esp + 0x368]
push 0x2b8
push esi
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x4d4]
or ecx, dword [esp + 0x4dc]
or eax, dword [esp + 0x4d8]
or eax, ecx
je 0x100c0c1b
cmp dword [esp + 0x4a0], 0x80000001
lea esi, [esp + 0x4a0]
je 0x100c0d07
jmp 0x100c0d84
mov eax, dword [esp + 0x7c]
xorps xmm0, xmm0
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
lock dec dword [ebx]
jne 0x100c0bd6
lea ecx, [esp + 0x68]
call fcn.100c3e50
mov ecx, esi
call fcn.100c06d0
jmp 0x100c2622
mov ecx, dword [esp + 0x5c]
mov edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c1b85
pxor xmm0, xmm0
mov ecx, esi
movdqa xmmword [esp + 0x80], xmm0
call fcn.100c06d0
jmp 0x100c255a
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0xc]
cmp eax, 1
jne 0x100c2843
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x10]
inc dword [esi]
je 0x100c3748
lea ecx, [esp + 0xb0]
mov edx, esi
call fcn.100dbe20
dec dword [esi]
jne 0x100c0c7c
dec dword [esi + 4]
jne 0x100c0c7c
push esi
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, word [esp + 0xb4]
lea ecx, [esp + 0x368]
mov esi, dword [esp + 0xb9]
movzx edx, byte [esp + 0xb8]
mov word [ecx + 0x16c], ax
mov eax, dword [esp + 0xb0]
and dl, 0x3f
or dl, 0x80
mov dword [ecx + 0x168], eax
mov ah, byte [esp + 0xb6]
mov dword [esp + 0x4d9], esi
mov esi, dword [esp + 0xbc]
movzx ecx, byte [esp + 0xb7]
and ah, 0xf
mov dword [esp + 0x4dc], esi
or ah, 0x40
mov byte [esp + 0x4d6], ah
mov byte [esp + 0x4d7], cl
mov byte [esp + 0x4d8], dl
cmp dword [esp + 0x4a0], 0x80000001
lea esi, [esp + 0x4a0]
jne 0x100c0d84
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xb0]
lea edx, [eax + 0x108]
call fcn.100c8b50
cmp dword [esp + 0x4a0], 0x80000002
jl 0x100c0d31
mov ecx, esi
call fcn.10016490
movsd xmm1, qword [esp + 0xd0]
movsd xmm2, qword [esp + 0xc8]
movsd xmm0, qword [esp + 0xd8]
movsd qword [esi + 0x20], xmm1
movsd xmm1, qword [esp + 0xc0]
movsd qword [esi + 0x18], xmm2
movsd xmm2, qword [esp + 0xb0]
movsd qword [esi + 0x28], xmm0
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0xb8]
movsd qword [esi], xmm2
movsd qword [esi + 8], xmm1
lea ecx, [esp + 0x620]
push 0x2b8
lea eax, [esp + 0x36c]
push eax
push ecx
call fcn.10100490
add esp, 0xc
movzx eax, byte [ebx + 0x3c]
cmp al, 5
je 0x100c0db0
mov byte [esp + 0x8d4], al
cmp dword [esp + 0x860], 0x80000001
mov dword [esp + 0x54], edi
jne 0x100c0e00
mov edx, dword [ebx + 0x38]
test edx, edx
je 0x100c0e00
add edx, 8
lea ecx, [esp + 0xb0]
lea edi, [esp + 0x860]
call fcn.100cda90
cmp dword [esp + 0x860], 0x80000001
je 0x100c0df2
mov ecx, edi
call fcn.100c5170
lea esi, [esp + 0xb0]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 8]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x100c0e2b
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0x10]
xor edi, edi
cmp ecx, edx
mov ebx, edx
cmovb ebx, edi
mov edi, edx
sub ecx, ebx
mov ebx, esi
sub edi, ecx
sub ebx, edi
ja 0x100c0e31
add esi, ecx
mov edx, esi
jmp 0x100c0e2f
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov esi, dword [eax + 0xc]
imul edi, edx, 0x3c
imul ecx, ecx, 0x3c
mov edx, 0x88888889
add edi, esi
add ecx, esi
mov dword [esp + 4], esi
mov eax, edi
sub eax, ecx
mul edx
mov eax, edx
mov edx, dword [esp + 0x7a8]
shr eax, 5
add eax, ebx
imul ebx, ebx, 0x3c
add ebx, esi
mov esi, dword [esp + 0x7a0]
sub esi, edx
cmp eax, esi
lea esi, [esp + 0x7a8]
ja 0x100c1b19
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], edx
lea esi, [esp + 0xb0]
mov edx, edi
add eax, 8
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x7a4]
mov dword [esp + 0xb8], eax
push esi
call fcn.100cb580
add esp, 4
mov ecx, dword [esp + 4]
mov edx, ebx
push esi
call fcn.100cb580
add esp, 4
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov edx, dword [eax + 8]
mov esi, dword [eax + 0x14]
movdqa xmm0, xmmword [edx]
lea ebx, [edx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x100c0f16
test ax, ax
mov dword [esp + 8], esi
jne 0x100c0f4a
test esi, esi
je 0x100c12f4
nop word [eax + eax]
movdqa xmm0, xmmword [ebx]
add edx, 0xfffffd80
add ebx, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x100c0f30
not eax
mov ecx, eax
mov dword [esp + 0xc], ebx
tzcnt eax, ecx
mov dword [esp + 0x10], ecx
neg eax
lea esi, [eax + eax*4]
mov edi, dword [edx + esi*8 - 0x20]
mov eax, dword [edx + esi*8 - 0x24]
test edi, edi
mov dword [esp + 4], eax
je 0x100c0fa0
js 0x100c3705
movzx eax, byte [0x10199148]
mov ebx, edx
xor ecx, ecx
mov edx, edi
call fcn.100ea7d0
test eax, eax
je 0x100c3718
mov edx, ebx
jmp 0x100c0fa5
mov eax, 1
lea esi, [edx + esi*8]
mov dword [esp + 0x1c], edx
push edi
push dword [esp + 8]
mov dword [esp + 0xc], eax
push eax
call fcn.10100490
add esp, 0xc
movzx eax, byte [esi - 0x18]
mov eax, dword [eax*4 + 0x100c3830]
add eax, dword [esp + 0x70]
jmp eax
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
mov ecx, dword [eax + 0x14]
movdqa xmm0, xmmword [edi]
lea ebx, [edi + 0x10]
pmovmskb esi, xmm0
not esi
jmp 0x100c131c
mov ecx, dword [esp + 0x10]
lea eax, [esi - 1]
and eax, esi
mov esi, eax
dec ecx
test si, si
jne 0x100c134b
test ecx, ecx
je 0x100c148f
nop dword [eax]
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe80
add ebx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x100c1330
not esi
tzcnt eax, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], 1
neg eax
lea ecx, [eax + eax*2]
mov edx, dword [edi + ecx*8 - 0x10]
mov eax, dword [edi + ecx*8 - 0x14]
test edx, edx
mov dword [esp + 0xc], edx
je 0x100c13ac
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 4], eax
je 0x100c3724
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x1c], ecx
push edx
push eax
push dword [esp + 0xc]
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov eax, dword [edx - 8]
mov edx, dword [edx - 4]
test edx, edx
mov dword [esp + 4], edx
je 0x100c141c
mov dword [esp + 0xc], eax
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 8], eax
je 0x100c370a
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
push edx
push eax
push dword [esp + 0x10]
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
lea edx, [esp + 0x8bc]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x28]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.100cb7e0
add esp, 8
test dword [esp + 0x28], 0x7fffffff
je 0x100c1310
push dword [esp + 0x2c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x100c1310
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 8]
mov ecx, dword [eax + 0x14]
movdqa xmm0, xmmword [edi]
lea ebx, [edi + 0x10]
pmovmskb esi, xmm0
not esi
jmp 0x100c14bc
mov ecx, dword [esp + 8]
lea eax, [esi - 1]
and eax, esi
mov esi, eax
dec ecx
test si, si
mov dword [esp + 8], ecx
jne 0x100c14eb
test ecx, ecx
je 0x100c15cc
nop dword [eax]
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe40
add ebx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x100c14d0
not esi
tzcnt eax, esi
mov ecx, eax
neg ecx
lea ecx, [ecx + ecx*8]
lea edx, [ecx + ecx*2]
sub edx, eax
mov eax, dword [edi + edx - 0x14]
mov ecx, dword [edi + edx - 0x18]
mov dword [esp + 0xc], edx
test eax, eax
mov dword [esp + 4], eax
je 0x100c1540
mov dword [esp + 0x10], ecx
js 0x100c3705
movzx eax, byte [0x10199148]
mov edx, dword [esp + 4]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100c370a
mov ecx, dword [esp + 0x10]
jmp 0x100c1545
mov eax, 1
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
lea edx, [edi + edx - 0x10]
mov dword [esp + 0xc], edx
push dword [esp + 4]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 0xb8], eax
call fcn.100cc3a0
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x8b0]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.100d7ee0
add esp, 8
cmp dword [esp + 0x28], 8
je 0x100c14b0
lea ecx, [esp + 0x28]
call fcn.100c54b0
jmp 0x100c14b0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x20], eax
movzx eax, byte [eax + 0x10]
cmp al, 3
mov byte [esp + 0x1c], al
jne 0x100c1637
cmp dword [esp + 0x7dc], 0x80000000
jne 0x100c182c
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x100c182c
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x34]
test esi, esi
je 0x100c17e2
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, esi
call fcn.100ea7d0
test eax, eax
je 0x100c1b6f
mov edi, eax
jmp 0x100c17e7
mov ecx, dword [esp + 0x8b0]
test ecx, ecx
je 0x100c170a
mov eax, dword [esp + 0x8b4]
mov dword [esp + 0xc], eax
lea eax, [ecx + 0xb4]
mov dword [esp + 8], ecx
movzx ecx, word [ecx + 0x13a]
mov esi, 0xffffffff
mov dword [esp + 0x10], ecx
lea ecx, [ecx*4]
lea ebx, [ecx + ecx*2]
nop word cs:[eax + eax]
nop
test ebx, ebx
je 0x100c16dc
lea ecx, [eax + 0xc]
mov edx, 5
mov dword [esp + 4], ecx
mov ecx, dword [eax + 8]
mov edi, ecx
sub edi, 5
cmovae ecx, edx
neg edi
push ecx
push dword [eax + 4]
push 0x1018a75f
call fcn.10100b6a
add esp, 0xc
test eax, eax
cmovne edi, eax
xor ecx, ecx
mov eax, 0xff
test edi, edi
setne cl
cmovs ecx, eax
mov eax, dword [esp + 4]
add ebx, 0xfffffff4
inc esi
cmp cl, 1
je 0x100c1680
movzx eax, cl
test eax, eax
je 0x100c15e3
jmp 0x100c16e0
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
sub eax, 1
jb 0x100c170a
mov ecx, dword [ecx + esi*4 + 0x13c]
mov dword [esp + 0xc], eax
jmp 0x100c1651
lea ecx, [esi + 8]
call fcn.10115340
jmp 0x100c0ac1
cmp byte [esp + 0x1c], 2
jne 0x100c196b
mov eax, dword [esp + 0x20]
mov cl, 1
mov edi, dword [eax + 8]
lea eax, [edi + 8]
mov dword [esp + 0x50], eax
xor eax, eax
lock cmpxchg byte [edi + 8], cl
jne 0x100c2fce
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c2fe7
xor eax, eax
mov dword [esp + 0x4c], eax
movzx eax, byte [edi + 9]
test al, al
jne 0x100c2ffe
mov eax, dword [edi + 0x1b0]
mov ecx, dword [edi + 0x1ac]
movzx edx, byte [edi + 0x1c4]
mov ebx, dword [edi + 0x1c9]
mov esi, dword [edi + 0x1c5]
cmp dword [edi + 0x194], 0x80000000
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
jne 0x100c1b3d
mov esi, 0x80000000
cmp dword [edi + 0x1a0], 0x80000000
jne 0x100c2879
jmp 0x100c28c3
mov ebx, ecx
call fcn.10115340
mov ecx, ebx
mov ebx, dword [esp + 0x18]
jmp 0x100c0b41
add esi, 8
mov dword [esp + 0x14], ecx
mov ecx, esi
call fcn.10115290
mov ecx, dword [esp + 0x14]
jmp 0x100c0afe
mov edi, 1
add ebx, 8
push esi
push ebx
push edi
call fcn.10100490
add esp, 0xc
test dword [esp + 0x7dc], 0x7fffffff
je 0x100c1817
push dword [esp + 0x7e0]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x7dc], esi
mov dword [esp + 0x7e0], edi
mov dword [esp + 0x7e4], esi
cmp dword [esp + 0x7cc], 1
mov edi, dword [esp + 0x18]
jne 0x100c1c28
mov ecx, dword [esp + 0x7c8]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
cmp ecx, 0xb
je 0x100c1862
cmp ecx, 0xd
jne 0x100c1c28
push 0xd
push 0x1018b1e5
jmp 0x100c1869
push 0xb
push 0x1018a8ba
push eax
call fcn.10100b6a
add esp, 0xc
test eax, eax
jne 0x100c1c28
mov esi, dword [edi + 0x28]
test esi, esi
je 0x100c1c28
mov ebx, dword [edi + 0x2c]
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x100c1b8f
cmp ebx, 0xaaaaaaa
ja 0x100c3705
lea eax, [ebx*4]
lea edx, [eax + eax*2]
test edx, edx
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0xc], edx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 8], eax
je 0x100c381f
add esi, 8
jmp 0x100c1913
mov eax, 1
mov dword [esp + 0x10], eax
push esi
push edx
push eax
call fcn.10100490
add esp, 0xc
mov edx, dword [esp + 0x10]
mov eax, esi
mov ecx, dword [esp + 8]
dec ebx
mov dword [ecx + edi], eax
mov dword [ecx + edi + 4], edx
mov dword [ecx + edi + 8], esi
mov esi, dword [esp + 4]
add edi, 0xc
add esi, 0xc
test ebx, ebx
je 0x100c1b7b
cmp dword [esp + 0xc], edi
je 0x100c1b7b
mov edx, dword [esi + 4]
cmp dword [esi], 0x80000000
mov dword [esp + 4], esi
mov esi, dword [esi + 8]
mov eax, 0x80000000
je 0x100c18f1
test esi, esi
je 0x100c18d7
mov dword [esp + 0x1c], edx
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, esi
mov dword [esp + 0x10], esi
call fcn.100ea7d0
test eax, eax
je 0x100c37ec
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jmp 0x100c18dc
mov eax, dword [esp + 0x20]
mov cl, 1
mov esi, dword [eax + 0xc]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x100c3035
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c304c
xor ebx, ebx
movzx eax, byte [esi + 9]
test al, al
jne 0x100c3062
mov eax, dword [esi + 0x30]
movsd xmm0, qword [esi + 0x40]
lea ecx, [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x34]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [esi + 0x38]
mov dword [esp + 8], eax
movsd qword [esp + 0x98], xmm0
call fcn.100db7c0
lea ecx, [esp + 0xb0]
call fcn.100dbd80
test bl, bl
jne 0x100c19f5
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c3657
mov dword [esp + 0x10], 0
xor eax, eax
mov bl, 0x11
mov esi, 0x80000000
xchg byte [edi], al
mov dword [esp + 4], 0x80000000
cmp al, 2
jne 0x100c1a1b
push edi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, 5
call fcn.100ea7d0
test eax, eax
je 0x100c37fa
mov byte [eax + 4], 0x65
mov dword [eax], 0x63617274
mov dword [esp + 0x40], 5
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 5
xor ecx, ecx
mov edx, 0x3c
movzx eax, byte [0x10199148]
call fcn.100ea7d0
test eax, eax
je 0x100c3809
mov ecx, dword [esp + 0x70]
mov dword [eax], esi
mov dword [eax + 8], esi
mov edx, dword [esp + 0x58]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], edx
lea edx, [esp + 0x8b0]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movq qword [eax + 0x20], xmm0
movsd qword [eax + 0x28], xmm1
mov byte [eax + 0x30], cl
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x35], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x31], ecx
mov byte [eax + 0x39], bl
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], 5
lea ecx, [esp + 0x28]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.100d7ee0
add esp, 8
cmp dword [esp + 0x28], 8
je 0x100c15e3
lea ecx, [esp + 0x28]
call fcn.100c54b0
jmp 0x100c15e3
mov dword [esp + 8], ecx
lea ecx, [esp + 0x7a0]
push eax
call fcn.10114190
mov ecx, dword [esp + 0xc]
add esp, 4
mov edx, dword [esp + 0x7a8]
jmp 0x100c0e78
mov esi, dword [edi + 0x19c]
mov ebx, dword [edi + 0x198]
test esi, esi
je 0x100c2855
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, esi
call fcn.100ea7d0
test eax, eax
jne 0x100c285a
mov ecx, 1
mov edx, esi
call fcn.1010cb60
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jmp 0x100c1b97
call fcn.10115290
jmp 0x100c0c02
mov dword [esp + 8], 4
mov esi, dword [esp + 0x7c4]
cmp esi, 0x80000000
je 0x100c1c0f
mov ebx, dword [esp + 0x7cc]
mov eax, dword [esp + 0x7c8]
test ebx, ebx
mov dword [esp + 4], eax
je 0x100c1bf1
mov eax, dword [esp + 4]
lea edi, [eax + 4]
jmp 0x100c1bd6
add edi, 0xc
dec ebx
je 0x100c1bf1
test dword [edi - 4], 0x7fffffff
je 0x100c1bd0
push dword [edi]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x100c1bd0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
test esi, esi
je 0x100c1c0f
push dword [esp + 4]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 8]
mov dword [esp + 0x7c4], ebx
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x7cc], ebx
mov eax, dword [edi + 0x18]
lea ebx, [esp + 0x620]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x100c1cea
mov esi, dword [eax + 0xc]
lea eax, [esi + ecx*8]
mov dword [esp + 8], eax
nop word [eax + eax]
lea eax, [esp + 0x788]
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x30], xmm1
movq qword [esp + 0x28], xmm0
mov edi, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [edi + 8]
dec ecx
and ecx, 0xfffffff8
lea eax, [eax + ecx + 8]
mov dword [esp + 4], eax
push 0x2b8
push ebx
lea eax, [esp + 0xb8]
push eax
call fcn.10100490
add esp, 0xc
lea eax, [esp + 0xb0]
push eax
push dword [esp + 8]
lea eax, [esp + 0xb98]
push eax
call dword [edi + 0x14]
add esp, 0xc
mov eax, dword [esp + 0xb90]
xor eax, 3
or eax, dword [esp + 0xb94]
je 0x100c1e75
push 0x2b8
lea eax, [esp + 0xb94]
push eax
push ebx
call fcn.10100490
add esp, 0xc
add esi, 8
cmp esi, dword [esp + 8]
jne 0x100c1c50
mov edi, dword [esp + 0x620]
mov ebx, dword [esp + 0x624]
lea esi, [esp + 0x13b8]
lea eax, [esp + 0x628]
push 0x2b0
push eax
push esi
call fcn.10100490
add esp, 0xc
mov eax, edi
xor eax, 3
or eax, ebx
je 0x100c2513
lea eax, [esp + 0x370]
mov dword [esp + 0x368], edi
mov dword [esp + 0x36c], ebx
push 0x2b0
push esi
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x368]
mov eax, dword [eax + 0x168]
test eax, eax
je 0x100c1e2b
mov ecx, dword [esp + 0x14]
shl eax, 3
lea edi, [eax + eax*2]
mov esi, dword [ecx + 0x164]
add esi, 0x14
nop word cs:[eax + eax]
nop dword [eax]
movq xmm0, qword [ebx + 0x168]
movsd xmm1, qword [ebx + 0x170]
movsd qword [esp + 0xb98], xmm1
movq qword [esp + 0xb90], xmm0
mov ecx, dword [esi]
mov eax, dword [esi - 4]
mov dword [esp + 4], ecx
mov ecx, dword [ecx + 8]
dec ecx
and ecx, 0xfffffff8
lea eax, [eax + ecx + 8]
mov dword [esp + 8], eax
push 0x2b8
push ebx
lea eax, [esp + 0xb8]
push eax
call fcn.10100490
add esp, 0xc
push dword [esp + 0x60]
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x10]
lea eax, [esp + 0x8e4]
push eax
mov eax, dword [esp + 0x14]
call dword [eax + 0x20]
add esp, 0x10
mov eax, dword [esp + 0x8d8]
xor eax, 3
or eax, dword [esp + 0x8dc]
je 0x100c20ee
push 0x2b8
lea eax, [esp + 0x8dc]
push eax
push ebx
call fcn.10100490
add esp, 0xc
add esi, 0x18
add edi, 0xffffffe8
jne 0x100c1d80
cmp dword [esp + 0x584], 0x80000001
je 0x100c1fcc
cmp dword [esp + 0x59c], 0x80000001
mov esi, dword [esp + 0x18]
je 0x100c1ff7
cmp dword [esp + 0x578], 0x80000001
je 0x100c201e
cmp dword [esp + 0x550], 5
je 0x100c203e
jmp 0x100c2094
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x1c]
cmp eax, 1
jne 0x100c2919
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x24], 0
je 0x100c1ec1
mov eax, dword [0x101981a8]
mov esi, 0x10198198
cmp eax, 2
je 0x100c1ec7
call fcn.10113a40
jmp 0x100c1ec7
lea esi, [eax + 0x20]
mov eax, dword [esi]
mov esi, dword [eax + 8]
mov eax, dword [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100c26b8
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 8], ecx
jne 0x100c26b8
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
je 0x100c1efc
lock inc dword [edi]
jle 0x100c3748
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c292b
test edi, edi
je 0x100c2513
mov dword [esp + 0xb0], edi
movzx ebx, byte [edi + 0x100]
lock dec dword [edi]
jne 0x100c1f40
lea ecx, [esp + 0xb0]
call fcn.100c3a60
test bl, bl
je 0x100c2513
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018aa90
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
call fcn.100e9420
lea eax, [esp + 0x28]
lea ecx, [esp + 0x40]
mov dword [esp + 0xb0], 0x1018aab8
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc0], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0x100c9090
mov dword [esp + 0xb8], ecx
jmp 0x100c24fc
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x584]
lea edx, [eax + 0xb8]
call fcn.100c8ed0
cmp dword [esp + 0x59c], 0x80000001
mov esi, dword [esp + 0x18]
jne 0x100c1e51
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x59c]
lea edx, [eax + 0xc4]
call fcn.100c8ed0
cmp dword [esp + 0x578], 0x80000001
jne 0x100c1e62
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x578]
lea edx, [eax + 0xd0]
call fcn.100c8ed0
cmp dword [esp + 0x550], 5
jne 0x100c2094
mov eax, dword [esp + 0x54c]
mov ecx, 0x6568746f
movzx edx, byte [eax + 4]
xor ecx, dword [eax]
xor edx, 0x72
or edx, ecx
jne 0x100c2094
test dword [esp + 0x548], 0x7fffffff
je 0x100c2073
push eax
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x548], 0x80000000
mov dword [esp + 0x54c], 0x1018a942
mov dword [esp + 0x550], 6
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x20], 0
je 0x100c2346
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x1c]
cmp eax, 1
jne 0x100c2f55
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x24], 0
je 0x100c2145
mov eax, dword [0x101981a8]
mov esi, 0x10198198
cmp eax, 2
je 0x100c214b
call fcn.10113a40
jmp 0x100c214b
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x1c]
cmp eax, 1
jne 0x100c2f9e
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x24], 0
je 0x100c23ea
mov eax, dword [0x101981a8]
mov esi, 0x10198198
cmp eax, 2
je 0x100c23f0
call fcn.10113a40
jmp 0x100c23f0
lea esi, [eax + 0x20]
mov eax, dword [esi]
mov esi, dword [eax + 8]
mov eax, dword [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100c2942
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 8], ecx
jne 0x100c2942
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
je 0x100c2180
lock inc dword [edi]
jle 0x100c3748
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
mov ecx, dword [esp + 0x14]
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c2f67
test edi, edi
je 0x100c2265
mov dword [esp + 0xb0], edi
movzx ebx, byte [edi + 0x100]
lock dec dword [edi]
jne 0x100c21cc
lea ecx, [esp + 0xb0]
call fcn.100c3a60
mov ecx, dword [esp + 0x14]
test bl, bl
lea ebx, [esp + 0x368]
je 0x100c2265
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018aa90
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
call fcn.100e9420
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018ab14
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
call fcn.100e9420
mov ecx, dword [esp + 0x14]
movq xmm0, qword [ebx + 0x168]
movsd xmm1, qword [ebx + 0x170]
mov edi, ebx
movsd qword [esp + 0xb98], xmm1
movq qword [esp + 0xb90], xmm0
mov esi, dword [ecx + 0x24]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esi + 8]
dec ecx
and ecx, 0xfffffff8
lea ebx, [eax + ecx + 8]
push 0x2b8
push edi
lea eax, [esp + 0xb8]
push eax
call fcn.10100490
add esp, 0xc
lea ecx, [esp + 0xb0]
lea eax, [esp + 0x1100]
push ecx
push ebx
mov ebx, eax
push eax
call dword [esi + 0x14]
add esp, 0xc
mov eax, dword [esp + 0x1100]
xor eax, 3
or eax, dword [esp + 0x1104]
jne 0x100c2333
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x1c]
cmp eax, 1
jne 0x100c3611
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x24], 0
je 0x100c26d4
mov eax, dword [0x101981a8]
mov esi, 0x10198198
cmp eax, 2
je 0x100c26da
call fcn.10113a40
jmp 0x100c26da
push 0x2b8
push ebx
push edi
call fcn.10100490
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edi, dword [esi + 0x1c]
mov cl, 1
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x100c2efc
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c2f13
xor eax, eax
movzx ecx, byte [edi + 9]
test cl, cl
jne 0x100c2f26
mov ecx, dword [edi + 0x10]
xor ecx, 2
or ecx, dword [edi + 0x14]
je 0x100c2999
cmp byte [edi + 0xa1], 0
jne 0x100c2999
mov edx, dword [esp + 0x4fc]
test edx, edx
je 0x100c297a
mov ecx, dword [esp + 0x4f8]
imul edx, edx, 0x160
add ecx, 0x70
jmp 0x100c23c8
add ecx, 0x160
add edx, 0xfffffea0
je 0x100c2984
cmp dword [ecx], 3
je 0x100c23b6
movzx ebx, byte [ecx + 0xc4]
cmp bl, 2
je 0x100c23b6
and bl, 1
jne 0x100c23b6
mov byte [edi + 0xa1], 2
jmp 0x100c2984
lea esi, [eax + 0x20]
mov eax, dword [esi]
mov esi, dword [eax + 8]
mov eax, dword [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100c295e
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 8], ecx
jne 0x100c295e
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
je 0x100c2425
lock inc dword [edi]
jle 0x100c3748
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c2fb0
test edi, edi
lea esi, [esp + 0x620]
je 0x100c2513
mov dword [esp + 0xb0], edi
movzx ebx, byte [edi + 0x100]
lock dec dword [edi]
jne 0x100c2470
lea ecx, [esp + 0xb0]
call fcn.100c3a60
test bl, bl
je 0x100c2513
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018aa90
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
call fcn.100e9420
lea eax, [esp + 0xb90]
mov dword [esp + 0xb0], 0x1018aae4
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], esi
mov dword [esp + 0x620], eax
mov dword [esp + 0x624], 0x100c9090
lea ecx, [esp + 0xb0]
mov dword [esp + 0xbc], 1
call fcn.100e9420
mov dword [esp + 0xe4c], 0
mov dword [esp + 0xe48], 3
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c26ae
pxor xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
mov ecx, 0x3fffffff
xor eax, eax
lea esi, [edi + 4]
lock cmpxchg dword [edi + 4], ecx
jne 0x100c262a
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c2641
movzx eax, byte [edi + 0xc]
test al, al
jne 0x100c3779
mov eax, edi
add edi, 0xc
mov byte [eax + 0xd], 1
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
movsd qword [eax + 0xe], xmm0
movsd qword [eax + 0x16], xmm1
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c268d
mov edx, 0xc0000001
lock xadd dword [esi], edx
add edx, 0xc0000001
cmp edx, 0x40000000
jae 0x100c26a2
movsd xmm0, qword [esp + 0x80]
mov eax, dword [esp + 0x7c]
movsd xmm1, qword [esp + 0x88]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100c2610
lock dec dword [eax]
jne 0x100c2610
lea ecx, [esp + 0x6c]
call fcn.100c3a60
mov eax, dword [esp + 0x68]
lock dec dword [eax]
jne 0x100c2622
lea ecx, [esp + 0x68]
call fcn.100c3e50
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
call fcn.10115180
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c257f
call fcn.10114a90
movzx ecx, byte [edi + 0xc]
test cl, cl
jne 0x100c3818
mov byte [edi + 0xd], 1
test al, al
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
movsd qword [edi + 0xe], xmm0
movsd qword [edi + 0x16], xmm1
je 0x100c25c0
add edi, 0xc
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c25c0
call fcn.10114a90
test al, al
jne 0x100c25c0
mov byte [edi], 1
jmp 0x100c25c0
mov ecx, esi
call fcn.10115290
jmp 0x100c25db
call fcn.10115290
jmp 0x100c254d
lea ecx, [esi + 8]
call fcn.10115340
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x100c1ef3
jmp 0x100c1efc
lea esi, [eax + 0x20]
mov eax, dword [esi]
mov esi, dword [eax + 8]
mov eax, dword [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100c2f82
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 8], ecx
jne 0x100c2f82
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
je 0x100c270f
lock inc dword [edi]
jle 0x100c3748
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100c3623
test edi, edi
lea esi, [esp + 0x620]
je 0x100c27fd
mov dword [esp + 0xb0], edi
movzx ebx, byte [edi + 0x100]
lock dec dword [edi]
jne 0x100c275a
lea ecx, [esp + 0xb0]
call fcn.100c3a60
test bl, bl
je 0x100c27fd
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018aa90
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
call fcn.100e9420
lea eax, [esp + 0xb90]
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0x1018ab38
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], 1
mov dword [esp + 0x620], eax
mov dword [esp + 0x624], 0x100c9090
call fcn.100e9420
mov eax, dword [esp + 0x1100]
mov dword [esp + 0xe4c], 0
mov dword [esp + 0xe48], 3
xor eax, 3
or eax, dword [esp + 0x1104]
je 0x100c2529
lea ecx, [esp + 0x1100]
call fcn.100c06d0
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x18]
jmp 0x100c2dc5
test eax, eax
jne 0x100c37cb
call fcn.10110a80
jmp 0x100c0c39
mov eax, 1
push esi
push ebx
mov dword [esp + 0x78], eax
push eax
call fcn.10100490
add esp, 0xc
cmp dword [edi + 0x1a0], 0x80000000
je 0x100c17b4
mov edx, dword [edi + 0x1a8]
mov ebx, dword [edi + 0x1a4]
test edx, edx
mov dword [esp + 4], edx
je 0x100c28af
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100c370a
mov edx, dword [esp + 4]
jmp 0x100c28b4
mov eax, 1
push edx
push ebx
mov dword [esp + 0x60], eax
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x4c]
movzx ebx, byte [edi + 0x1cd]
movsd xmm0, qword [edi + 0x1b4]
movsd xmm1, qword [edi + 0x1bc]
test al, al
movsd qword [esp + 0xa0], xmm1
movsd qword [esp + 0x98], xmm0
jne 0x100c2904
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c366d
mov edi, dword [esp + 0x50]
xor eax, eax
xchg byte [edi], al
cmp al, 2
je 0x100c1a14
jmp 0x100c1a1b
test eax, eax
jne 0x100c37aa
call fcn.101136f0
jmp 0x100c1e93
add esi, 8
mov ecx, esi
call fcn.10115290
test edi, edi
jne 0x100c1f21
jmp 0x100c2513
lea ecx, [esi + 8]
call fcn.10115340
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x100c2177
jmp 0x100c2180
lea ecx, [esi + 8]
call fcn.10115340
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x100c241c
jmp 0x100c2425
cmp byte [esp + 0x61c], 2
jbe 0x100c2999
add dword [edi + 0x80], 1
adc dword [edi + 0x84], 0
mov byte [edi + 0xbc], 1
test al, al
jne 0x100c29ad
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c3641
xor eax, eax
xchg byte [esi], al
mov ebx, dword [esp + 0x18]
cmp al, 2
jne 0x100c29c0
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov eax, dword [esp + 0x14]
movd xmm0, dword [eax + 0xf4]
call fcn.100c90d0
mov edi, dword [esp + 0x54]
test al, al
je 0x100c29fb
lea eax, [esp + 0xe48]
push 0x2b8
lea ecx, [esp + 0x36c]
push ecx
push eax
call fcn.10100490
add esp, 0xc
jmp 0x100c2dc5
mov esi, dword [esp + 0x50c]
mov dword [esp + 0xe4c], 0
mov dword [esp + 0xe48], 3
cmp esi, 0x80000000
je 0x100c2a7b
mov ebx, dword [esp + 0x514]
mov eax, dword [esp + 0x510]
test ebx, ebx
mov dword [esp + 4], eax
je 0x100c2a61
mov eax, dword [esp + 4]
lea edi, [eax + 4]
jmp 0x100c2a46
add edi, 0xc
dec ebx
je 0x100c2a61
test dword [edi - 4], 0x7fffffff
je 0x100c2a40
push dword [edi]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x100c2a40
mov ebx, dword [esp + 0x18]
test esi, esi
je 0x100c2a7b
push dword [esp + 4]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
test dword [esp + 0x518], 0x7fffffff
jne 0x100c2ab5
test dword [esp + 0x524], 0x7fffffff
jne 0x100c2ad7
test dword [esp + 0x530], 0x7fffffff
jne 0x100c2af9
mov eax, dword [esp + 0x488]
cmp eax, 0x80000000
jne 0x100c2b1c
jmp 0x100c2b41
push dword [esp + 0x51c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
test dword [esp + 0x524], 0x7fffffff
je 0x100c2a95
push dword [esp + 0x528]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
test dword [esp + 0x530], 0x7fffffff
je 0x100c2aa2
push dword [esp + 0x534]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x488]
cmp eax, 0x80000000
je 0x100c2b41
test eax, eax
je 0x100c2b35
push dword [esp + 0x48c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x494]
call fcn.100c4ce0
test dword [esp + 0x53c], 0x7fffffff
jne 0x100c2b77
lea ecx, [esp + 0x5ec]
call fcn.100178e0
test dword [esp + 0x548], 0x7fffffff
jne 0x100c2ba5
mov eax, dword [esp + 0x578]
cmp eax, 0x80000002
jge 0x100c2bc8
jmp 0x100c2be1
push dword [esp + 0x540]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x5ec]
call fcn.100178e0
test dword [esp + 0x548], 0x7fffffff
je 0x100c2b67
push dword [esp + 0x54c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x578]
cmp eax, 0x80000002
jl 0x100c2be1
test eax, eax
je 0x100c2be1
push dword [esp + 0x57c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x584]
cmp eax, 0x80000002
jl 0x100c2c08
test eax, eax
je 0x100c2c08
push dword [esp + 0x588]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x590]
cmp eax, 0x80000002
jl 0x100c2c2f
test eax, eax
je 0x100c2c2f
push dword [esp + 0x594]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x59c]
cmp eax, 0x80000002
jl 0x100c2c56
test eax, eax
je 0x100c2c56
push dword [esp + 0x5a0]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x5a8], 0x80000001
je 0x100c2c6f
lea ecx, [esp + 0x5a8]
call fcn.100c5170
cmp dword [esp + 0x3f8], 3
je 0x100c2c85
lea ecx, [esp + 0x3f8]
call fcn.100c53f0
lea ecx, [esp + 0x5f8]
call fcn.100c5250
mov esi, dword [esp + 0x4ec]
mov edx, dword [esp + 0x4f0]
mov ecx, esi
call fcn.100c8270
cmp dword [esp + 0x4e8], 0
je 0x100c2cbf
push esi
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x4f4]
call fcn.100c9210
lea ecx, [esp + 0x368]
call fcn.100c95f0
lea ecx, [esp + 0x398]
call fcn.100c9b90
lea ecx, [esp + 0x500]
call fcn.100c9cc0
lea ecx, [esp + 0x604]
call fcn.100178e0
mov ecx, dword [esp + 0x610]
test ecx, ecx
je 0x100c2d4d
mov edx, dword [esp + 0x614]
mov eax, dword [esp + 0x618]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], ecx
mov ecx, 1
mov dword [esp + 0xcc], edx
jmp 0x100c2d51
xor ecx, ecx
xor eax, eax
lea esi, [esp + 0xb90]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xd0], eax
nop word cs:[eax + eax]
nop
mov ecx, esi
mov edx, edi
call fcn.100bc140
cmp dword [esp + 0xb90], 0
je 0x100c2d9c
mov ecx, esi
call fcn.100c4a30
jmp 0x100c2d80
lea ecx, [esp + 0x554]
call fcn.100c9d50
cmp dword [esp + 0x4a0], 0x80000002
mov edi, dword [esp + 0x54]
jl 0x100c2dc5
lea ecx, [esp + 0x4a0]
call fcn.10016490
mov eax, dword [esp + 0xe48]
xor eax, 3
or eax, dword [esp + 0xe4c]
je 0x100c252d
lea esi, [esp + 0xe48]
lea eax, [esp + 0x1100]
push 0x2b8
push esi
push eax
call fcn.10100490
add esp, 0xc
movq xmm0, qword [esp + 0x1268]
movsd xmm1, qword [esp + 0x1270]
lea ecx, [esp + 0x620]
mov edx, esi
mov byte [esp + 0x630], 0
mov dword [esp + 0x620], 0
mov dword [esp + 0x624], 0
mov dword [esp + 0x628], 8
mov dword [esp + 0x62c], 0
movq qword [esp + 0x13b8], xmm0
movsd qword [esp + 0x13c0], xmm1
call fcn.100c8a40
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x106], 0
jne 0x100c32e6
mov edi, dword [ebx + 0x1c]
mov dl, 1
xor eax, eax
lock cmpxchg byte [edi + 8], dl
lea ecx, [edi + 8]
jne 0x100c3683
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c369c
xor eax, eax
movzx edx, byte [edi + 9]
test dl, dl
jne 0x100c36b3
mov edx, dword [edi + 0x10]
mov esi, dword [edi + 0x14]
mov bl, 1
mov dword [esp + 8], 0
mov dword [esp + 4], 9
mov dword [esp + 0xc], edx
xor edx, 2
or edx, esi
je 0x100c3258
cmp byte [edi + 0xbc], 0
je 0x100c3258
cmp dword [edi + 0x94], 0x80000000
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jne 0x100c3091
mov dword [esp + 4], 0x80000000
jmp 0x100c30dd
mov ecx, esi
call fcn.101149f0
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c236b
call fcn.10114a90
xor al, 1
movzx ecx, byte [edi + 9]
test cl, cl
je 0x100c2379
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0xb0], esi
mov byte [esp + 0xb4], al
push 0x1018a8c8
push 0x1018a5a4
lea eax, [esp + 0xb8]
push eax
call fcn.1010d2e0
test eax, eax
jne 0x100c37aa
call fcn.101136f0
jmp 0x100c20c0
add esi, 8
mov ecx, esi
call fcn.10115290
mov ecx, dword [esp + 0x14]
test edi, edi
jne 0x100c21a9
jmp 0x100c2265
lea ecx, [esi + 8]
call fcn.10115340
movzx eax, byte [esi + 0x10]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x100c2706
jmp 0x100c270f
test eax, eax
jne 0x100c37aa
call fcn.101136f0
jmp 0x100c210c
add esi, 8
mov ecx, esi
call fcn.10115290
test edi, edi
lea esi, [esp + 0x620]
jne 0x100c2451
jmp 0x100c2513
mov ecx, dword [esp + 0x50]
call fcn.101149f0
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c1742
call fcn.10114a90
xor al, 1
mov dword [esp + 0x4c], eax
movzx eax, byte [edi + 9]
test al, al
je 0x100c1754
mov eax, dword [esp + 0x50]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x4c]
mov byte [esp + 0xb4], al
push 0x1018a764
push 0x1018a554
lea eax, [esp + 0xb8]
push eax
call fcn.1010d2e0
mov ecx, edi
call fcn.101149f0
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c1994
call fcn.10114a90
mov ebx, eax
xor bl, 1
movzx eax, byte [esi + 9]
test al, al
je 0x100c19a2
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0xb0], edi
mov byte [esp + 0xb4], bl
push 0x1018a774
push 0x1018a5b4
lea eax, [esp + 0xb8]
push eax
call fcn.1010d2e0
mov edx, dword [edi + 0x98]
lea ecx, [esp + 0xb0]
push dword [edi + 0x9c]
call fcn.100015b0
add esp, 4
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb8]
mov esi, dword [edi + 0x14]
mov dword [esp + 0x94], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x1c]
movsd xmm0, qword [edi + 0x28]
mov ebx, dword [edi + 0x88]
movzx edx, word [edi + 0xa0]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 0x8c]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x80]
mov dword [esp + 0x14], ebx
mov ebx, dword [edi + 0x90]
mov word [esp + 0x66], dx
lea edx, [edi + 0x30]
mov dword [esp + 8], eax
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 0x20]
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [edi + 0x78]
mov dword [esp + 0x58], ebx
mov ebx, dword [edi + 0x24]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x8f8]
movsd qword [esp + 0xa8], xmm0
call fcn.100c5d70
mov eax, dword [esp + 4]
movsd xmm0, qword [edi + 0x68]
movsd xmm1, qword [edi + 0x70]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], 3
movsd qword [esp + 0x938], xmm1
movsd qword [esp + 0x930], xmm0
mov dword [esp + 0x95c], eax
mov eax, dword [esp + 0x90]
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x964], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x960], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8dc], esi
mov dword [esp + 0x8d8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8e4], eax
mov eax, dword [esp + 8]
mov dword [esp + 8], 0
mov dword [esp + 0x8e0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x950], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x954], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x958], eax
movzx eax, word [esp + 0x66]
movsd qword [esp + 0x940], xmm0
movq xmm0, qword [esp + 0x20]
mov word [esp + 0x968], ax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x8ec], ebx
xor ebx, ebx
mov dword [esp + 0x8e8], eax
mov eax, dword [esp + 0x1c]
movq qword [esp + 0x8f0], xmm0
movsd qword [esp + 0x948], xmm1
mov byte [edi + 0xa0], 0
mov byte [edi + 0xbc], 0
test al, al
jne 0x100c326c
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100c36eb
xor eax, eax
xchg byte [ecx], al
cmp al, 2
jne 0x100c327b
push ecx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
test bl, bl
jne 0x100c32e2
mov eax, dword [esp + 4]
lea ecx, [esp + 0x8d8]
mov dword [esp + 0xb90], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xb94], eax
lea eax, [esp + 0xb98]
push 0x98
push ecx
push eax
call fcn.10100490
add esp, 0xc
lea eax, [esp + 0xc30]
push 0x218
lea ecx, [esp + 0xb4]
push ecx
push eax
call fcn.10100490
add esp, 0xc
lea ecx, [esp + 0x620]
lea edx, [esp + 0xb90]
call fcn.100c8a40
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x100c3544
mov edi, dword [ecx + 0xc]
shl eax, 3
lea ebx, [eax + eax*4]
add edi, 0x24
jmp 0x100c3467
mov eax, 1
mov dword [esp + 0x20], eax
push esi
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov ecx, dword [esp + 4]
movzx eax, byte [edi]
mov dword [esp + 0xc4], ebx
mov ah, byte [esp + 0x2a]
lea edx, [esp + 0xdd]
cmp dword [esp + 0x620], 0
mov dword [esp + 0xc8], ecx
movzx ecx, word [esp + 0x28]
mov dword [esp + 0xcc], ebx
mov byte [edx + 2], ah
mov ebx, dword [esp + 0xc]
mov word [edx], cx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xd4], edx
mov byte [esp + 0xdc], al
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 6
je 0x100c3410
lea ecx, [esp + 0x368]
mov dword [esp + 0x368], 0x1018a4dc
mov dword [esp + 0x36c], 1
mov dword [esp + 0x378], 0
mov dword [esp + 0x370], 4
mov dword [esp + 0x374], 0
call fcn.100e9420
lea ecx, [esp + 0xb0]
call fcn.100c8080
mov ebx, dword [esp + 0x1c]
add edi, 0x28
add ebx, 0xffffffd8
jne 0x100c3467
jmp 0x100c3544
mov esi, dword [esp + 0x62c]
mov ebx, dword [esp + 0x1c]
cmp esi, dword [esp + 0x624]
jne 0x100c3430
lea ecx, [esp + 0x624]
call fcn.100c7e90
imul eax, esi, 0x2b8
add eax, dword [esp + 0x628]
push 0x2b8
lea ecx, [esp + 0xb4]
push ecx
push eax
call fcn.10100490
add esp, 0xc
inc esi
mov dword [esp + 0x62c], esi
add edi, 0x28
add ebx, 0xffffffd8
je 0x100c3544
mov eax, edi
mov edi, dword [edi - 0x20]
mov dword [esp + 4], 1
mov edx, dword [eax - 0x1c]
mov dword [esp + 8], eax
mov eax, 1
test edx, edx
je 0x100c34a4
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov esi, edx
call fcn.100ea7d0
test eax, eax
je 0x100c1b6f
mov edx, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], edx
push edx
push edi
mov dword [esp + 0x18], eax
push eax
call fcn.10100490
add esp, 0xc
mov edi, dword [esp + 8]
mov ebx, dword [edi - 0x10]
mov esi, dword [edi - 0x14]
test ebx, ebx
je 0x100c34eb
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, ebx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 4], eax
je 0x100c3732
push ebx
push esi
push dword [esp + 0xc]
call fcn.10100490
add esp, 0xc
cmp dword [edi - 0xc], 0x80000000
mov esi, 0x80000000
je 0x100c3319
mov esi, dword [edi - 4]
mov ecx, dword [edi - 8]
test esi, esi
je 0x100c3305
mov dword [esp + 0x20], ecx
js 0x100c3705
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, esi
call fcn.100ea7d0
test eax, eax
je 0x100c1b6f
mov ecx, dword [esp + 0x20]
jmp 0x100c330a
mov esi, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x638]
movsd xmm1, qword [esp + 0x628]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov edx, dword [eax + 8]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0x630]
movsd qword [esp + 0xb8], xmm1
dec edx
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [esp + 0x620]
and edx, 0xfffffff8
lea ecx, [ecx + edx + 8]
mov edx, dword [esp + 0x640]
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0xd0], edx
lea edx, [esp + 0xb0]
push edx
push ecx
call dword [eax + 0xc]
add esp, 8
movq xmm0, qword [esp + 0x13b8]
movsd xmm1, qword [esp + 0x13c0]
mov edx, 0xffffffff
movq qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
lock xadd dword [esi + 8], edx
mov edi, dword [esp + 0x54]
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
jne 0x100c255a
mov ecx, dword [esp + 0x5c]
call fcn.10115290
jmp 0x100c255a
test eax, eax
jne 0x100c37aa
call fcn.101136f0
jmp 0x100c22fa
add esi, 8
mov ecx, esi
call fcn.10115290
test edi, edi
lea esi, [esp + 0x620]
jne 0x100c273b
jmp 0x100c27fd
call fcn.10114a90
test al, al
jne 0x100c29ad
mov byte [edi + 9], 1
jmp 0x100c29ad
call fcn.10114a90
test al, al
jne 0x100c19f5
mov byte [esi + 9], 1
jmp 0x100c19f5
call fcn.10114a90
test al, al
jne 0x100c2904
mov byte [edi + 9], 1
jmp 0x100c2904
mov esi, ecx
call fcn.101149f0
mov ecx, esi
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100c2e95
mov esi, ecx
call fcn.10114a90
mov ecx, esi
xor al, 1
movzx edx, byte [edi + 9]
test dl, dl
je 0x100c2ea3
mov dword [esp + 0xb0], ecx
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0xb4], al
push 0x1018a968
jmp 0x100c2f43
mov esi, ecx
call fcn.10114a90
mov ecx, esi
test al, al
jne 0x100c326c
mov byte [edi + 9], 1
jmp 0x100c326c
call fcn.10001070
mov edx, dword [esp + 4]
mov ecx, 1
call fcn.1010cb60
mov ecx, 1
mov edx, edi
call fcn.1010cb60
mov edx, dword [esp + 0xc]
mov ecx, 1
call fcn.1010cb60
mov ecx, 1
mov edx, ebx
call fcn.1010cb60
mov ecx, 0x1018a654
call fcn.1010d3b0
ud2
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
lea eax, [esp + 0xb0]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x1018a958
push 0x1018a5d4
push eax
call fcn.1010d2e0
xor eax, eax
mov dword [esp + 0xb0], esi
mov byte [esp + 0xb4], al
lea eax, [esp + 0xb0]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x1018a6e0
push 0x1018a584
push eax
call fcn.1010d2e0
mov ecx, 0x1018d5b0
mov edx, 0x46
push 0x1018d648
push 0x1018d4ec
lea eax, [esp + 0xb8]
push eax
call fcn.1010d2e0
lea eax, [esp + 0xb0]
mov ecx, 0x1018d5b0
mov edx, 0x46
push 0x1018d648
push 0x1018d4ec
push eax
call fcn.1010d2e0
mov edx, dword [esp + 0x10]
mov ecx, 1
call fcn.1010cb60
mov ecx, 1
mov edx, 5
call fcn.1010cb60
mov ecx, 4
mov edx, 0x3c
call fcn.1010cb80
xor al, 1
jmp 0x100c377b
mov edx, dword [esp + 0xc]
mov ecx, 4
call fcn.1010cb60
nop dword [eax]
xor eax, 0xb0000005
add eax, 0x55b0000
add byte [eax], al
jge 0x100c3843
add byte [eax], al
aas
add eax, 0x5c20000
add byte [eax], al
int3
add dl, al
add eax, 0xcccc0000
int3