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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov esi, dword [edx]
mov edi, ecx
mov dword [esp + 0x58], edx
call fcn.00724480
test eax, eax
je 0x73225d
movzx edx, byte [eax + 0x38]
movzx ebx, byte [eax + 0x39]
test dl, dl
mov ecx, ebx
je 0x732254
mov ecx, ebx
sub cl, 1
jae 0x732254
mov eax, dword [esi]
push dword [esi + 4]
call dword [eax + 8]
add esp, 4
mov bl, 1
jmp 0x732845
mov dword [esp + 0x30], edx
mov byte [eax + 0x39], cl
jmp 0x732267
mov dword [esp + 0x30], 0
xor ebx, ebx
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edx, 0x70
mov ecx, 0x10
cmove ecx, edx
cmp dword [eax + ecx + 0x78], 0x3b9aca00
je 0x732871
mov dword [esp + 0x54], ebx
lea eax, [eax + ecx + 8]
movzx eax, byte [eax + 0x60]
test al, al
jne 0x732885
cmp byte [edi + 0x48], 0
mov dword [esp + 4], edi
jne 0x732779
mov edx, dword [esp + 4]
mov esi, 0x70
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 4]
mov edi, dword [edx + 8]
mov ebx, dword [edx + 0x10]
mov byte [edx + 0x48], 1
cmp dword [edx], 0
mov edx, 0x10
cmove edx, esi
mov esi, dword [eax + edx + 0x78]
cmp esi, 0x3b9aca00
je 0x732871
lea eax, [eax + edx + 8]
cmp ebx, 0x3b8b87c1
mov edx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
jb 0x73230c
add edi, 1
adc ecx, 0
jb 0x73290a
add ebx, 0xc474783f
jmp 0x732312
add ebx, 0xf423f
mov eax, ebx
mov edx, 0x44b83
shr eax, 9
mul edx
shr edx, 7
add edi, edx
adc ecx, 0
jb 0x73288a
imul eax, edx, 0x3b9aca00
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x18]
sub ebx, eax
mov dword [esp + 0x20], ebx
push esi
push dword [esp + 0x18]
call fcn.007113b0
add esp, 8
mov edi, ecx
mov ebx, eax
mov ecx, 0x431bde83
mov esi, edx
mov eax, edi
mul ecx
mov ecx, edx
xor eax, eax
mov edx, 0x3e8
shr ecx, 0x12
cmp edi, 0x3b9aca00
cmove ebx, eax
cmove esi, eax
cmove ecx, eax
mov eax, ebx
mul edx
mov edi, edx
mov ebx, eax
mov eax, esi
mov edx, 0x3e8
mov esi, 0xffffffff
mul edx
add eax, edi
adc edx, 0
add ebx, ecx
adc eax, 0
adc edx, 0
setb cl
cmp edx, 1
mov edx, 0xfffffffd
movzx ecx, cl
sbb ecx, 0
cmovb esi, eax
mov eax, dword [esp + 4]
cmovae ebx, edx
cmp ebx, 0xfffffffd
lea ecx, [eax + 0x18]
mov dword [esp + 0x10], ecx
movq xmm0, qword [eax + 0x30]
mov eax, 0xfffffffd
mov edi, dword [esp + 4]
cmovb eax, ebx
cmp esi, 0xffffffff
cmovne edx, ebx
cmove edx, eax
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
mov dword [esp + 0x14], edx
movd edx, xmm0
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esp + 0x14], eax
mov ecx, esi
sbb ecx, edx
jb 0x732418
mov ecx, esi
lock cmpxchg8b qword [edi + 0x30]
jne 0x732400
jmp 0x732779
mov eax, dword [esp + 4]
mov ecx, 0x18
mov dword [esp + 0xc], esi
cmp dword [eax], 0
mov edi, dword [eax + 4]
mov eax, 0x78
cmove ecx, eax
lea esi, [edi + 0x18]
mov dword [esp + 0x50], ecx
lea ecx, [edi + 0x78]
cmove esi, ecx
cmp dword [esi + 0x70], 0x3b9aca00
je 0x732871
lea eax, [esi + 0x30]
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov ecx, dword [0x94bfbc]
mov al, 1
test ecx, 0x7fffffff
jne 0x732738
mov byte [esp + 0xa], al
movzx eax, byte [esi + 0x34]
mov eax, dword [esp + 4]
movq xmm0, qword [eax + 0x30]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x7324a0
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x40]
call fcn.0072ad90
movzx eax, byte [esi + 0x60]
test al, al
je 0x7324f1
mov edx, dword [esp + 4]
xor edi, edi
movq xmm0, qword [edx + 0x30]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x73274d
pcmpeqd xmm0, xmm0
mov byte [edx + 0x44], 1
movq qword [edx + 0x30], xmm0
mov eax, dword [edx + 0x40]
nop dword [eax + eax]
mov ecx, eax
or ecx, 2
lock cmpxchg dword [edx + 0x40], ecx
jne 0x7324e0
jmp 0x73271c
movd xmm1, dword [esp + 0xc]
mov edx, dword [esp + 4]
movd xmm0, ebx
mov dword [esp + 0x4c], edi
punpckldq xmm0, xmm1
movq qword [edx + 0x30], xmm0
movq qword [edx + 0x20], xmm0
movq xmm0, qword [edx + 0x30]
movd ebx, xmm0
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov eax, ebx
and eax, edi
cmp eax, 0xffffffff
je 0x73291e
movd xmm0, ebx
movd xmm1, edi
punpckldq xmm0, xmm1
movq qword [edx + 0x20], xmm0
mov dword [esp + 0xc], esi
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
cmp ecx, ebx
mov esi, eax
sbb esi, edi
jae 0x7326d5
xor ecx, ebx
xor eax, edi
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x48], ebx
or ecx, 0x3f
mov esi, eax
cmp ecx, 0xfffffffe
sbb esi, 0xf
mov esi, 0xfffffffe
cmovb esi, ecx
mov ecx, 0xf
cmovb ecx, eax
bsr edx, esi
xor edx, 0x1f
bsr eax, ecx
or dl, 0x20
xor eax, 0x1f
test ecx, ecx
movzx ecx, dl
cmovne ecx, eax
xor cl, 0x3e
movzx eax, cl
imul ecx, eax, 0x2b
mov eax, dword [edi + 0x58]
shr ecx, 8
cmp eax, ecx
jbe 0x732865
mov edi, dword [edi + 0x54]
mov edx, dword [esp + 4]
imul ebx, ecx, 0x210
movq xmm0, qword [edx + 0x20]
mov ecx, dword [edi + ebx + 0x208]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
add ecx, ecx
movd esi, xmm0
pshufd xmm0, xmm0, 0x55
movd eax, xmm0
lea ecx, [ecx + ecx*2]
shrd esi, eax, cl
shr eax, cl
test cl, 0x20
lea ecx, [edi + ebx]
mov ebx, dword [esp + 0x10]
cmove eax, esi
mov esi, eax
and esi, 0x3f
mov dword [esp + 0x34], ebx
mov edi, dword [ecx + esi*8]
cmp edi, ebx
je 0x732932
mov dword [edx + 0x1c], edi
mov dword [edx + 0x18], 0
mov edx, dword [esp + 0x10]
test edi, edi
je 0x73261d
mov dword [edi], edx
mov dword [ecx + esi*8], edx
mov ebx, dword [esp + 0x48]
cmp dword [ecx + esi*8 + 4], 0
jne 0x73262f
mov dword [ecx + esi*8 + 4], edx
mov esi, 1
xor edx, edx
mov ecx, eax
xor edi, edi
shld edx, esi, cl
shl esi, cl
test al, 0x20
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmovne edx, esi
cmovne esi, edi
or dword [eax + ecx + 0x200], esi
mov esi, dword [esp + 0xc]
or dword [eax + ecx + 0x204], edx
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
add ecx, 0xffffffff
adc eax, 0xffffffff
cmp ecx, ebx
sbb eax, dword [esp + 0x44]
jb 0x73274d
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
cmp dword [eax + ecx], 0
je 0x732742
mov eax, dword [esi + 4]
push 0
push dword [esi + 8]
push 1
push dword [eax + 8]
call dword [sym.imp.kernel32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x73274d
call sub.kernel32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov ecx, str.failed_to_wake_I_O_driver
mov edx, 0x19
push 0x937784
push 0x936144
lea eax, [esp + 0x20]
push eax
call fcn.007c1f60
mov esi, dword [esp + 0xc]
movq xmm0, qword [edx + 0x30]
xor edi, edi
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x73274d
pcmpeqd xmm0, xmm0
mov byte [edx + 0x44], 0
movq qword [edx + 0x30], xmm0
mov eax, dword [edx + 0x40]
nop word cs:[eax + eax]
nop
mov ecx, eax
or ecx, 2
lock cmpxchg dword [edx + 0x40], ecx
jne 0x732710
test eax, eax
jne 0x73274d
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
mov dword [eax + 0x38], 0
lock and dword [eax + 0x40], 0xfffffffd
jmp 0x73274d
call fcn.007d1b30
jmp 0x73246f
mov ecx, dword [esi + 4]
add ecx, 8
call fcn.00726bf0
cmp byte [esp + 0xa], 0
je 0x732764
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x73284f
push dword [esp + 0x14]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
test edi, edi
je 0x732779
push ebx
call dword [edi + 4]
add esp, 4
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 4]
mov edx, 1
xor edi, edi
mov ecx, dword [eax]
xor eax, eax
lock cmpxchg dword [ebx + 0x40], edx
test eax, eax
je 0x7327a9
cmp eax, 2
jne 0x7327ff
mov eax, dword [ecx]
push dword [ecx + 4]
call dword [eax + 8]
add esp, 4
pause
jmp 0x7327ff
mov eax, dword [ecx]
push dword [ecx + 4]
call dword [eax]
add esp, 4
mov ecx, dword [ebx + 0x38]
mov esi, dword [ebx + 0x3c]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
mov eax, 1
lock cmpxchg dword [ebx + 0x40], edi
jne 0x7327d5
test ecx, ecx
je 0x7327ff
push esi
call dword [ecx + 0xc]
jmp 0x7327fc
mov edx, ebx
mov edi, dword [ebx + 0x38]
mov ebx, dword [ebx + 0x3c]
xor eax, eax
test ecx, ecx
mov dword [edx + 0x38], 0
xchg dword [edx + 0x40], eax
je 0x7327f4
push esi
call dword [ecx + 4]
add esp, 4
test edi, edi
je 0x7327ff
push ebx
call dword [edi + 4]
add esp, 4
mov edx, dword [esp + 4]
movq xmm0, qword [edx + 0x30]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x73283b
cmp byte [esp + 0x30], 0
mov bl, 1
je 0x732845
call fcn.00724480
test eax, eax
je 0x732845
mov ecx, dword [esp + 0x54]
mov byte [eax + 0x38], 1
mov byte [eax + 0x39], cl
jmp 0x732845
movzx eax, byte [edx + 0x44]
test al, al
jne 0x7328c0
xor ebx, ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.007d1b30
test al, al
jne 0x732764
mov byte [esi + 0x34], 1
jmp 0x732764
mov edx, eax
push 0x937a74
call fcn.007c1be0
mov ecx, 0x936d78
mov edx, 0x73
push 0x937958
call fcn.007c2000
call fcn.007d3050
lea ecx, [esp + 0x18]
mov edx, 0x933738
mov dword [esp + 0x18], 0x9336e8
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0x93d1f8
mov dword [esp + 0x24], 0
call fcn.007c1b50
lea edx, [esp + 0xb]
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], 0x938e78
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov byte [esp + 0xb], al
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x18]
mov edx, 0x938e80
mov dword [esp + 0x38], 0x731ff0
mov dword [esp + 0x24], 1
call fcn.007c1b50
mov ecx, str.overflow_when_adding_duration_to_instantlibrary_std_src_time.rs
mov edx, 0x28
push 0x9344e0
call fcn.007c2000
mov ecx, 0x93791c
mov edx, 0x13
push 0x937930
call fcn.007c2000
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
lea ecx, [ecx + esi*8]
lea edx, [esp + 0x34]
push eax
call fcn.007d2e60
int3