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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x550
cmp byte [ecx + 8], 2
mov esi, ecx
call 0x100cf2da
pop eax
mov dword [esp + 0x28], eax
jne 0x100cf46e
mov ebx, dword [esi]
mov cl, 1
xor eax, eax
mov dword [esp + 0x78], ebx
lea edi, [ebx + 8]
lock cmpxchg byte [ebx + 8], cl
jne 0x100cf84d
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100cf864
mov dword [esp + 0x30], 0
movzx eax, byte [ebx + 9]
test al, al
jne 0x100cf87b
lea esi, [esp + 0x3c4]
lea eax, [ebx + 0xc]
push 0x188
push eax
push esi
call fcn.10100490
add esp, 0xc
mov dword [ebx + 0xc], 2
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x3c4]
cmp ebx, 2
je 0x100cf7ff
lea eax, [esp + 0x23c]
push 0x188
push esi
push eax
call fcn.10100490
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x70], edi
mov eax, dword [ecx + 0x1d0]
mov dword [ecx + 0x1d0], 0
test eax, eax
je 0x100cf5e7
mov dword [esp + 0x74], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
push eax
call dword [sym.imp.kernel32.dll_GetSystemTimePreciseAsFileTime]
movq xmm0, qword [esp + 0x98]
mov dword [esp + 0x23c], 1
xor ecx, ecx
mov edx, 5
movq qword [esp + 0x240], xmm0
movzx eax, byte [0x10199148]
call fcn.100ea7d0
test eax, eax
je 0x100d0a83
mov byte [eax + 4], 0x65
mov dword [eax], 0x63617274
mov dword [esp + 0x60], 5
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], 5
mov esi, 0x80000000
mov ecx, dword [eax + 0x1ac]
mov ebx, dword [eax + 0x1b0]
mov edi, dword [eax + 0x1c9]
mov edx, dword [eax + 0x1c5]
cmp dword [eax + 0x194], 0x80000000
mov dword [esp + 0x18], ecx
mov ch, byte [eax + 0x1c4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xc], ch
jne 0x100cf6d2
mov edi, 0x80000000
cmp dword [eax + 0x1a0], 0x80000000
jne 0x100cf92f
jmp 0x100cf97d
mov edi, dword [esi + 4]
mov cl, 1
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea ebx, [edi + 8]
jne 0x100cf8ae
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100cf8c5
xor eax, eax
movzx ecx, byte [edi + 9]
test cl, cl
jne 0x100cf8d8
cmp dword [edi + 0xc], 0
je 0x100cf4ee
test al, al
jne 0x100cf4bb
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d0929
xor eax, eax
xchg byte [ebx], al
cmp al, 2
jne 0x100cf4ca
push ebx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov eax, dword [esi]
lock dec dword [eax]
jne 0x100cf4d8
mov ecx, esi
call fcn.100c4880
lock dec dword [edi]
jne 0x100d0a19
mov ecx, dword [esi + 4]
call fcn.100c4930
jmp 0x100d0a19
mov dword [esp + 0xc], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x9c], 0
push eax
call dword [sym.imp.kernel32.dll_GetSystemTimePreciseAsFileTime]
movq xmm0, qword [esp + 0x98]
mov dword [edi + 0xc], 1
mov dl, 1
xor eax, eax
movq qword [edi + 0x10], xmm0
mov ebx, dword [esi]
lock cmpxchg byte [ebx + 8], dl
lea ecx, [ebx + 8]
jne 0x100d058e
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d05ab
mov dword [esp + 0x10], 0
movzx eax, byte [ebx + 9]
mov edx, dword [esp + 0xc]
test al, al
jne 0x100d05ce
cmp dword [ebx + 0xc], 2
je 0x100d08b0
cmp dword [ebx + 0xb0], 0x3e9
jae 0x100d08b0
mov eax, dword [edi + 0x34]
movzx edx, byte [edi + 0x71]
cmp dword [edi + 0x18], 0x80000000
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 0x18], ecx
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x30]
mov byte [esp + 0x70], dl
mov dword [esp + 0x6c], eax
movzx eax, byte [edi + 0x68]
mov byte [esp + 0x34], al
mov eax, dword [edi + 0x6d]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x69]
mov dword [esp + 0x24], eax
jne 0x100d04e1
mov dword [esp + 0x20], 0x80000000
cmp dword [edi + 0x24], 0x80000000
jne 0x100d0658
jmp 0x100d06aa
test dword [esp + 0x2e4], 0x7fffffff
je 0x100cf609
push dword [esp + 0x2e8]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x2fc]
cmp eax, 0x80000002
jl 0x100cf630
test eax, eax
je 0x100cf630
push dword [esp + 0x300]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x308]
cmp eax, 0x80000002
jl 0x100cf657
test eax, eax
je 0x100cf657
push dword [esp + 0x30c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x314], 0x80000001
je 0x100cf670
lea ecx, [esp + 0x314]
call fcn.100c5170
lea ecx, [esp + 0x398]
call fcn.100178e0
mov ecx, dword [esp + 0x3a4]
test ecx, ecx
je 0x100cf710
mov edx, dword [esp + 0x3a8]
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], ecx
mov ecx, 1
mov dword [esp + 0xb4], edx
jmp 0x100cf714
mov edi, dword [eax + 0x19c]
mov ebx, dword [eax + 0x198]
test edi, edi
je 0x100cf907
js 0x100d0a37
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, edi
call fcn.100ea7d0
test eax, eax
jne 0x100cf90c
mov ecx, 1
mov edx, edi
call fcn.1010cb60
xor ecx, ecx
xor eax, eax
lea esi, [esp + 0x38]
lea edi, [esp + 0x98]
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xb8], eax
nop word cs:[eax + eax]
nop
mov ecx, esi
mov edx, edi
call fcn.100bc140
cmp dword [esp + 0x38], 0
je 0x100cf759
mov ecx, esi
call fcn.100c4a30
jmp 0x100cf740
cmp dword [esp + 0x358], 0x80000002
jl 0x100cf772
lea ecx, [esp + 0x358]
call fcn.10016490
test dword [esp + 0x2f0], 0x7fffffff
je 0x100cf794
push dword [esp + 0x2f4]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0x2e0]
mov eax, dword [esp + 0x2dc]
test edi, edi
mov dword [esp + 0xc], eax
je 0x100cf7bd
mov esi, dword [esp + 0xc]
nop
mov ecx, esi
call fcn.100c4960
add esi, 0x68
dec edi
jne 0x100cf7b0
cmp dword [esp + 0x2d8], 0
je 0x100cf7d9
push dword [esp + 0xc]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x3b8]
call fcn.100c5250
cmp dword [esp + 0x248], 3
mov edi, dword [esp + 0x70]
je 0x100cf7ff
lea ecx, [esp + 0x248]
call fcn.100c53f0
cmp byte [esp + 0x30], 0
jne 0x100cf816
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d090f
xor eax, eax
xchg byte [edi], al
cmp al, 2
jne 0x100cf825
push edi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
cmp ebx, 2
jne 0x100d0a07
cmp dword [esp + 0x3c4], 2
je 0x100d0a07
lea ecx, [esp + 0x3c4]
call fcn.100c4fa0
jmp 0x100d0a07
mov ecx, edi
call fcn.101149f0
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100cf30d
call fcn.10114a90
xor al, 1
mov dword [esp + 0x30], eax
movzx eax, byte [ebx + 9]
test al, al
je 0x100cf321
mov eax, dword [esp + 0x30]
mov dword [esp + 0x98], edi
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0x9c], al
lea eax, [esp + 0x98]
push 0x1018a7dc
push 0x1018a554
push eax
call fcn.1010d2e0
mov ecx, ebx
call fcn.101149f0
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100cf493
call fcn.10114a90
xor al, 1
movzx ecx, byte [edi + 9]
test cl, cl
je 0x100cf4a1
mov dword [esp + 0x98], ebx
mov byte [esp + 0x9c], al
lea eax, [esp + 0x98]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x1018a81c
push 0x1018a5b4
push eax
call fcn.1010d2e0
mov eax, 1
push edi
push ebx
mov dword [esp + 0x28], eax
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x1a0], 0x80000000
je 0x100cf469
mov esi, dword [eax + 0x1a8]
mov ebx, dword [eax + 0x1a4]
test esi, esi
je 0x100cf965
js 0x100d0a37
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, esi
call fcn.100ea7d0
test eax, eax
jne 0x100cf96a
mov ecx, 1
mov edx, esi
call fcn.1010cb60
mov eax, 1
push esi
push ebx
mov dword [esp + 0x3c], eax
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x24]
movsd xmm0, qword [eax + 0x1b4]
movsd xmm1, qword [eax + 0x1bc]
movzx ebx, byte [eax + 0x1cd]
xor ecx, ecx
mov edx, 0x3c
movsd qword [esp + 0xa0], xmm1
movsd qword [esp + 0x98], xmm0
movzx eax, byte [0x10199148]
call fcn.100ea7d0
test eax, eax
je 0x100d0a92
mov ecx, dword [esp + 0x20]
mov dword [eax], edi
mov dword [eax + 8], edi
lea edx, [esp + 0x3b8]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0xc], esi
mov dword [eax + 0x14], esi
lea esi, [esp + 0x60]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x1c], ecx
movzx ecx, byte [esp + 0xc]
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movsd qword [eax + 0x20], xmm0
movsd qword [eax + 0x28], xmm1
mov byte [eax + 0x30], cl
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x35], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x31], ecx
mov byte [eax + 0x39], bl
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 5
lea ecx, [esp + 0x98]
push eax
push esi
call fcn.100d7ee0
add esp, 8
cmp dword [esp + 0x98], 8
je 0x100cfa5f
lea ecx, [esp + 0x98]
call fcn.100c54b0
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x1c]
cmp eax, 1
jne 0x100d0601
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x24], 0
je 0x100cfaba
mov eax, dword [0x101981a8]
cmp eax, 2
jne 0x100d093f
mov eax, dword [0x10198198]
lock inc dword [eax]
jle 0x100d0952
test eax, eax
jne 0x100cfad8
jmp 0x100d0a62
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x20]
lock inc dword [eax]
jle 0x100d0952
mov dword [esp + 0x7c], eax
mov edx, dword [eax + 8]
mov eax, dword [edx + 8]
mov dword [esp + 0x6c], edx
cmp eax, 0x3ffffffd
ja 0x100d0520
lea ecx, [eax + 1]
lock cmpxchg dword [edx + 8], ecx
jne 0x100d0520
movzx eax, byte [edx + 0x10]
mov ebx, dword [edx + 0x20]
cmp dword [esp + 0x314], 0x80000001
jne 0x100cfb52
mov edx, dword [ebx + 0x38]
test edx, edx
je 0x100cfb52
add edx, 8
lea ecx, [esp + 0x98]
lea edi, [esp + 0x314]
call fcn.100cda90
cmp dword [esp + 0x314], 0x80000001
je 0x100cfb44
mov ecx, edi
call fcn.100c5170
lea esi, [esp + 0x98]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x34], ebx
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0x14]
movdqa xmm0, xmmword [ecx]
lea esi, [ecx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x100cfb96
test ax, ax
jne 0x100cfbca
test edx, edx
je 0x100cff64
nop word cs:[eax + eax]
nop dword [eax]
movdqa xmm0, xmmword [esi]
add ecx, 0xfffffd80
add esi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x100cfbb0
not eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
tzcnt eax, eax
mov dword [esp + 0x14], edx
neg eax
lea esi, [eax + eax*4]
mov ebx, dword [ecx + esi*8 - 0x20]
mov eax, dword [ecx + esi*8 - 0x24]
test ebx, ebx
je 0x100cfc20
mov dword [esp + 0xc], eax
js 0x100d0a37
movzx eax, byte [0x10199148]
mov edi, ebx
mov ebx, ecx
xor ecx, ecx
mov edx, edi
call fcn.100ea7d0
test eax, eax
je 0x100cf704
mov ecx, ebx
mov ebx, edi
mov edx, eax
mov edi, eax
mov eax, dword [esp + 0xc]
jmp 0x100cfc25
mov edi, 1
lea esi, [ecx + esi*8]
mov dword [esp + 0x18], ecx
push ebx
push eax
push edi
call fcn.10100490
add esp, 0xc
movzx eax, byte [esi - 0x18]
mov eax, dword [eax*4 + 0x100d0ac0]
add eax, dword [esp + 0x28]
jmp eax
mov eax, dword [ebx + 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 0x100cff8c
mov ecx, dword [esp + 0x1c]
lea eax, [esi - 1]
and eax, esi
mov esi, eax
dec ecx
test si, si
jne 0x100cffbb
test ecx, ecx
je 0x100d00ff
nop dword [eax]
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe80
add ebx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x100cffa0
not esi
tzcnt eax, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 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 + 0x14], edx
je 0x100d001c
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
js 0x100d0a37
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 0xc], eax
je 0x100d0a4a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x18], ecx
push edx
push eax
push dword [esp + 0x14]
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [edx - 8]
mov edx, dword [edx - 4]
test edx, edx
mov dword [esp + 0xc], edx
je 0x100d008c
mov dword [esp + 0x14], eax
js 0x100d0a37
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
mov dword [esp + 0x10], eax
je 0x100d0a3c
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
push edx
push eax
push dword [esp + 0x18]
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x398]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x38]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.100cb7e0
add esp, 8
test dword [esp + 0x38], 0x7fffffff
je 0x100cff80
push dword [esp + 0x3c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x100cff80
mov eax, dword [esp + 0x34]
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 0x100d012c
mov ecx, dword [esp + 0x10]
lea eax, [esi - 1]
and eax, esi
mov esi, eax
dec ecx
test si, si
mov dword [esp + 0x10], ecx
jne 0x100d015b
test ecx, ecx
je 0x100d023c
nop dword [eax]
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe40
add ebx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x100d0140
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 + 0x14], edx
test eax, eax
mov dword [esp + 0xc], eax
je 0x100d01b0
mov dword [esp + 0x1c], ecx
js 0x100d0a37
movzx eax, byte [0x10199148]
mov edx, dword [esp + 0xc]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100d0a3c
mov ecx, dword [esp + 0x1c]
jmp 0x100d01b5
mov eax, 1
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
lea edx, [edi + edx - 0x10]
mov dword [esp + 0x14], edx
push dword [esp + 0xc]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
lea ecx, [esp + 0xa4]
mov dword [esp + 0xa0], eax
call fcn.100cc3a0
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x3b8]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.100d7ee0
add esp, 8
cmp dword [esp + 0x38], 8
je 0x100d0120
lea ecx, [esp + 0x38]
call fcn.100c54b0
jmp 0x100d0120
mov ecx, dword [esp + 0x6c]
mov edx, 0xffffffff
lock xadd dword [ecx + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100d0613
mov eax, dword [esp + 0x7c]
lock dec dword [eax]
mov esi, dword [esp + 0x24]
jne 0x100d0273
lea ecx, [esp + 0x7c]
call fcn.100c3970
mov edi, dword [esp + 0x74]
lea ecx, [esp + 0x2fc]
lea edx, [edi + 0xb8]
call fcn.100c8ed0
lea ecx, [esp + 0x308]
lea edx, [edi + 0xc4]
call fcn.100c8ed0
add edi, 0x108
lea ebx, [esp + 0x98]
mov ecx, ebx
mov edx, edi
call fcn.100c8b50
cmp dword [esp + 0x358], 0x80000002
lea edi, [esp + 0x358]
jl 0x100d02cc
mov ecx, edi
call fcn.10016490
movsd xmm1, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xb0]
movsd xmm0, qword [esp + 0xc0]
cmp byte [esp + 0x30], 0
movsd qword [edi + 0x20], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [edi + 0x18], xmm2
movsd xmm2, qword [esp + 0x98]
movsd qword [edi + 0x28], xmm0
movsd qword [edi + 0x10], xmm1
movsd xmm1, qword [esp + 0xa0]
movsd qword [edi], xmm2
movsd qword [edi + 8], xmm1
jne 0x100d0336
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d098c
mov ecx, dword [esp + 0x70]
xor eax, eax
xchg byte [ecx], al
cmp al, 2
jne 0x100d0349
push ecx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
lea edi, [esp + 0x3c]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 8
mov dword [esp + 0x44], 0
push 0x188
lea eax, [esp + 0x240]
push eax
push ebx
call fcn.10100490
add esp, 0xc
movq xmm0, qword [esp + 0x1e4]
movsd xmm1, qword [esp + 0x1ec]
mov ecx, edi
mov byte [esp + 0x48], 1
movq qword [esp + 0x49], xmm0
movsd qword [esp + 0x51], xmm1
call fcn.100c7e90
mov eax, dword [esp + 0x40]
mov dword [eax + 4], 0
mov dword [eax], 5
add eax, 8
push 0x188
push ebx
push eax
call fcn.10100490
add esp, 0xc
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x44], 1
mov esi, dword [ebx + 0x16c]
mov eax, dword [esi + 8]
lea edi, [esi + 8]
cmp eax, 0x3ffffffd
ja 0x100d0549
lea ecx, [eax + 1]
lock cmpxchg dword [edi], ecx
jne 0x100d0549
movzx ecx, byte [esi + 0x10]
lea eax, [esi + 0x14]
test cl, cl
jne 0x100d055f
mov ecx, dword [eax]
test ecx, ecx
je 0x100d04a6
mov eax, dword [esi + 0x18]
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x40]
mov edx, dword [eax + 8]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp + 0xa0], xmm1
dec edx
movsd qword [esp + 0xa8], xmm0
movq xmm0, qword [esp + 0x38]
and edx, 0xfffffff8
lea ecx, [ecx + edx + 8]
mov edx, dword [esp + 0x58]
movq qword [esp + 0x98], xmm0
mov dword [esp + 0xb8], edx
lea edx, [esp + 0x98]
push edx
push ecx
call dword [eax + 0xc]
add esp, 8
mov edx, 0xffffffff
lock xadd dword [esi + 8], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
jne 0x100d09f9
mov ecx, edi
call fcn.10115290
jmp 0x100d09f9
mov edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
mov eax, edx
and eax, 0xbfffffff
cmp eax, 0x80000000
je 0x100d09a2
cmp dword [esp + 0x38], 0
je 0x100d09b4
cmp dword [esp + 0x3c], 0
je 0x100d09f9
push dword [esp + 0x40]
jmp 0x100d09eb
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x1c]
test eax, eax
mov dword [esp + 0x20], eax
je 0x100d0631
mov dword [esp + 0x28], edx
js 0x100d0a37
movzx eax, byte [0x10199148]
mov edx, dword [esp + 0x20]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100d0aa1
mov edx, dword [esp + 0x28]
jmp 0x100d0636
lea ecx, [edx + 8]
call fcn.10115340
mov edx, dword [esp + 0x6c]
movzx eax, byte [edx + 0x10]
mov ebx, dword [edx + 0x20]
cmp dword [esp + 0x314], 0x80000001
je 0x100cfb13
jmp 0x100cfb52
mov ecx, edi
call fcn.10115340
movzx ecx, byte [esi + 0x10]
lea eax, [esi + 0x14]
test cl, cl
je 0x100d040f
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edi
push 0x1018a978
push 0x1018a5d4
lea eax, [esp + 0xa0]
push eax
call fcn.1010d2e0
mov dword [esp + 0x18], ecx
call fcn.101149f0
mov ecx, dword [esp + 0x18]
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
je 0x100cf553
mov dword [esp + 0x18], ecx
call fcn.10114a90
mov ecx, dword [esp + 0x18]
xor al, 1
mov dword [esp + 0x10], eax
movzx eax, byte [ebx + 9]
mov edx, dword [esp + 0xc]
test al, al
je 0x100cf56b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x98], ecx
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0x9c], al
push 0x1018a82c
push 0x1018a554
lea eax, [esp + 0xa0]
push eax
call fcn.1010d2e0
test eax, eax
jne 0x100d0a62
call fcn.101136f0
jmp 0x100cfa7d
add ecx, 8
call fcn.10115290
mov eax, dword [esp + 0x7c]
lock dec dword [eax]
mov esi, dword [esp + 0x24]
je 0x100d026a
jmp 0x100d0273
mov eax, 1
push dword [esp + 0x20]
push edx
mov dword [esp + 0x8c], eax
push eax
call fcn.10100490
add esp, 0xc
cmp dword [edi + 0x24], 0x80000000
je 0x100cf5e2
mov eax, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x100d0690
mov dword [esp + 0x28], edx
js 0x100d0a37
movzx eax, byte [0x10199148]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100d0aaf
mov edx, dword [esp + 0x28]
jmp 0x100d0695
mov eax, 1
push dword [esp + 0x1c]
push edx
mov dword [esp + 0x88], eax
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x14]
movq xmm0, qword [edi + 0x48]
movzx ecx, byte [edi + 0x72]
cmp dword [edi + 0x58], 0
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x88], edx
movdqa xmmword [esp + 0x220], xmm0
mov byte [esp + 0x2f], cl
mov dword [esp + 0x8c], eax
je 0x100d0726
mov edx, dword [edi + 0x50]
test edx, edx
je 0x100d0a58
lea ecx, [esp + 0x3c4]
push dword [edi + 0x54]
call fcn.100d0ae0
add esp, 4
cmp dword [edi + 0x64], 0
je 0x100d0742
mov edx, dword [edi + 0x5c]
test edx, edx
je 0x100d0a58
lea ecx, [esp + 0x23c]
push dword [edi + 0x60]
call fcn.1001f3b0
add esp, 4
jmp 0x100d0758
mov dword [esp + 0x3c4], 0
mov dword [esp + 0x3cc], 0
cmp dword [edi + 0x64], 0
jne 0x100d0707
mov dword [esp + 0x23c], 0
mov dword [esp + 0x244], 0
movsd xmm1, qword [edi + 0x40]
movsd xmm0, qword [edi + 0x38]
mov eax, dword [esp + 0x3cc]
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x3c4]
movsd qword [esp + 0x98], xmm0
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm1
mov ecx, dword [ebx + 0xb0]
cmp ecx, dword [ebx + 0xa8]
mov dword [esp + 0x28], ecx
jne 0x100d07af
lea ecx, [ebx + 0xa8]
call fcn.100d0f90
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0xac]
mov edx, dword [esp + 0x90]
imul ecx, ecx, 0x68
mov dword [eax + ecx], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + ecx + 4], edx
mov edx, dword [esp + 0x88]
mov dword [eax + ecx + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx + 0xc], edx
mov dword [eax + ecx + 0x14], edx
mov edx, dword [esp + 0x84]
mov dword [eax + ecx + 0x10], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx + 0x18], edx
mov dword [eax + ecx + 0x20], edx
mov edx, dword [esp + 0x80]
mov dword [eax + ecx + 0x1c], edx
mov edx, dword [esp + 0x94]
mov dword [eax + ecx + 0x28], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx + 0x24], edx
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movsd qword [eax + ecx + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x220]
movsd qword [eax + ecx + 0x34], xmm1
movlps qword [eax + ecx + 0x3c], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [eax + ecx + 0x44], xmm0
mov edx, dword [esp + 0x40]
mov dword [eax + ecx + 0x4c], edx
movq xmm0, qword [esp + 0x23c]
movq qword [eax + ecx + 0x50], xmm0
mov edx, dword [esp + 0x244]
mov dword [eax + ecx + 0x58], edx
movzx edx, byte [esp + 0x34]
mov byte [eax + ecx + 0x5c], dl
mov edx, dword [esp + 0x30]
mov dword [eax + ecx + 0x61], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx + 0x5d], edx
movzx edx, byte [esp + 0x70]
mov byte [eax + ecx + 0x65], dl
movzx edx, byte [esp + 0x2f]
mov byte [eax + ecx + 0x66], dl
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
inc ecx
mov dword [ebx + 0xb0], ecx
mov ecx, dword [esp + 0x18]
cmp byte [esp + 0x10], 0
jne 0x100d08c7
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d0954
xor eax, eax
xchg byte [ecx], al
cmp al, 2
jne 0x100d08da
push ecx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov edx, dword [esp + 0xc]
test dl, dl
jne 0x100d08ee
mov eax, dword [0x1019913c]
test eax, 0x7fffffff
jne 0x100d0976
mov ecx, dword [esp + 0x14]
xor eax, eax
xchg byte [ecx], al
cmp al, 2
jne 0x100d0901
push ecx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
lock dec dword [ebx]
je 0x100cf4d1
jmp 0x100cf4d8
call fcn.10114a90
test al, al
jne 0x100cf816
mov eax, dword [esp + 0x24]
mov byte [eax + 9], 1
jmp 0x100cf816
call fcn.10114a90
test al, al
jne 0x100cf4bb
mov byte [edi + 9], 1
jmp 0x100cf4bb
call fcn.10113a40
mov eax, dword [0x10198198]
lock inc dword [eax]
jg 0x100cfab1
ud2
mov dword [esp + 0x18], ecx
call fcn.10114a90
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
test al, al
jne 0x100d08c7
mov byte [ebx + 9], 1
jmp 0x100d08c7
call fcn.10114a90
test al, al
jne 0x100d08ee
mov byte [edi + 9], 1
jmp 0x100d08ee
call fcn.10114a90
test al, al
jne 0x100d0336
mov byte [esi + 9], 1
jmp 0x100d0336
mov ecx, edi
call fcn.10115290
cmp dword [esp + 0x38], 0
jne 0x100d04cd
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
test edi, edi
mov dword [esp + 0xc], eax
je 0x100d09e0
mov esi, dword [esp + 0xc]
nop dword [eax + eax]
mov ecx, esi
call fcn.100c8080
add esi, 0x2b8
dec edi
jne 0x100d09d0
cmp dword [esp + 0x3c], 0
je 0x100d09f9
push dword [esp + 0xc]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lock dec dword [ebx]
jne 0x100d0a07
lea ecx, [esp + 0x74]
call fcn.100c3a60
mov eax, dword [esp + 0x78]
lock dec dword [eax]
jne 0x100d0a19
lea ecx, [esp + 0x78]
call fcn.100c4880
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.10001070
mov edx, dword [esp + 0xc]
mov ecx, 1
call fcn.1010cb60
mov edx, dword [esp + 0x14]
mov ecx, 1
call fcn.1010cb60
mov ecx, 0x1018a654
call fcn.1010d3b0
mov ecx, 0x1018d5b0
mov edx, 0x46
push 0x1018d648
push 0x1018d4ec
lea eax, [esp + 0xa0]
push eax
call fcn.1010d2e0
mov ecx, 1
mov edx, 5
call fcn.1010cb60
mov ecx, 4
mov edx, 0x3c
call fcn.1010cb80
mov edx, dword [esp + 0x20]
mov ecx, 1
call fcn.1010cb60
mov edx, dword [esp + 0x1c]
mov ecx, 1
call fcn.1010cb60
nop dword [eax]
outsb dx, byte [esi]
or dword [eax], eax
add bh, ch
or dword [eax], eax
add byte [ecx + ecx + 0x9c20000], bl
add byte [eax], al
jl 0x100d0adb
add byte [eax], al
add eax, 0xcc00000a
int3
int3