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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov eax, dword [edx + 0x38]
movsd xmm1, qword [edx + 0x20]
movsd xmm2, qword [edx + 0x18]
movsd xmm0, qword [edx + 0x28]
mov edi, dword [esp + 0x90]
mov dword [esp + 4], edx
mov ebp, dword [edx + 0x30]
mov esi, dword [eax]
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [edx + 0x10]
movsd qword [esp + 0x58], xmm2
movsd xmm2, qword [edx]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x48], xmm1
mov word [esp + 0x70], 0x100
lock inc dword [edi]
jle 0x430333
mov edx, dword [ebp + 0x10]
mov dword [esp + 0xc], ecx
cmp edx, dword [ebp + 8]
jne 0x42fba2
lea ecx, [ebp + 8]
call fcn.004173d0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
lea ecx, [edx + edx*2]
lea edx, [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [eax + ecx*4], edi
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
inc dword [ebp + 0x10]
mov eax, dword [ebp + 0x34]
mov ebx, dword [ebp + 0x30]
mov dword [ebp + 0x34], 0
lea ecx, [eax + eax*2]
test eax, eax
lea esi, [ebx + ecx*4]
je 0x42fcd2
add ebx, 0xc
jmp 0x42fbfe
add ebp, 0xc
add ebx, 0xc
cmp ebp, esi
je 0x42fd16
mov ecx, dword [ebx - 0xc]
test ecx, ecx
je 0x42fcd2
lea ebp, [ebx - 0xc]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
xor eax, eax
lock cmpxchg dword [ecx + 0x14], edx
jne 0x42fc50
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
mov al, 1
xchg byte [edi + 0x18], al
cmp al, 0xff
jne 0x42fc50
mov eax, dword [0x45f524]
add edi, 0x18
test eax, eax
je 0x42fc64
push edi
call eax
nop word cs:[eax + eax]
mov eax, dword [esp + 0x10]
lock dec dword [eax]
jne 0x42fbf0
lea ecx, [esp + 0x10]
call fcn.004141d0
jmp 0x42fbf0
mov ecx, dword [0x45f048]
cmp ecx, 0xffffffff
jne 0x42fcb6
mov dword [esp + 0x34], 0xffffffff
mov eax, dword [0x45f058]
push 0
push 0
push 0xc0000000
lea ecx, [esp + 0x40]
push ecx
call eax
test eax, eax
jne 0x430369
mov ecx, dword [esp + 0x34]
mov eax, 0xffffffff
lock cmpxchg dword [0x45f048], ecx
je 0x42fcb6
push ecx
mov dword [esp + 0x3c], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ecx, dword [esp + 0x38]
mov eax, dword [0x45f05c]
push 0
push 0
push edi
push ecx
call eax
mov eax, dword [esp + 0x10]
lock dec dword [eax]
jne 0x42fbf0
jmp 0x42fc59
mov eax, esi
mov ecx, 0xaaaaaaab
sub eax, ebx
mul ecx
cmp esi, ebx
je 0x42fd16
mov eax, dword [esp]
mov ebp, edx
shr ebp, 3
mov esi, dword [eax + 0x30]
sub ebx, esi
mov eax, ebx
mul ecx
shr edx, 3
lea eax, [edx + edx*2]
lea ebx, [esi + eax*4]
jmp 0x42fd06
add ebx, 0xc
dec ebp
je 0x42fd16
mov eax, dword [ebx]
lock dec dword [eax]
jne 0x42fd00
mov ecx, ebx
call fcn.004141d0
jmp 0x42fd00
mov esi, dword [esp + 4]
mov edi, dword [esp]
cmp byte [esi + 0x34], 0
jne 0x42fd33
mov eax, dword [0x45f578]
test eax, 0x7fffffff
jne 0x430243
push edi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esp + 0x90]
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov edi, dword [eax + 8]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x42fe80
cmp eax, 1
je 0x43010a
cmp eax, 2
jne 0x43046e
mov eax, dword [esi + 0x40]
mov esi, dword [eax]
push esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x45f578]
test eax, 0x7fffffff
jne 0x43029c
mov dword [esp], 0
mov ebx, dword [esp + 8]
movzx eax, byte [esi + 4]
test al, al
jne 0x4302b6
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
lea ecx, [edi*4]
mov ebp, eax
lea edx, [ecx + ecx*2]
mov ecx, 0xffffffff
nop word cs:[eax + eax]
nop dword [eax]
test edx, edx
je 0x43031f
inc ecx
add edx, 0xfffffff4
cmp dword [ebp + 4], ebx
lea ebp, [ebp + 0xc]
jne 0x42fdc0
cmp edi, ecx
jbe 0x430335
lea ebx, [ecx + ecx*2]
not ecx
mov ebp, dword [eax + ebx*4]
movsd xmm0, qword [eax + ebx*4 + 4]
add ecx, edi
lea edx, [eax + ebx*4]
lea eax, [eax + ebx*4 + 0xc]
shl ecx, 2
lea ecx, [ecx + ecx*2]
movsd qword [esp + 0x10], xmm0
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
dec edi
test ebp, ebp
mov dword [esi + 0x10], edi
je 0x43031f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
lock dec dword [ebp]
jne 0x42fe39
lea ecx, [esp + 0x1c]
call fcn.004141d0
cmp byte [esp], 0
jne 0x42fe4f
mov eax, dword [0x45f578]
test eax, 0x7fffffff
jne 0x4302f5
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], 0x80000001
cmp eax, 0x80000001
je 0x430355
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov dword [edx], 1
jmp 0x43021b
pause
mov eax, dword [ecx + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
mov eax, dword [esp + 0x90]
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
pause
mov eax, dword [esp + 0x90]
pause
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
pause
mov eax, dword [esp + 0x90]
pause
pause
pause
pause
pause
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
pause
mov eax, dword [esp + 0x90]
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
pause
mov eax, dword [esp + 0x90]
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
pause
mov eax, dword [esp + 0x90]
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
cmp eax, 2
je 0x42fd69
cmp eax, 1
je 0x43010a
test eax, eax
jne 0x43046e
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4303b3
mov esi, dword [esp + 4]
cmp eax, 1
jne 0x42fd60
mov eax, dword [esi + 0x40]
mov esi, dword [eax]
push esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x45f578]
test eax, 0x7fffffff
jne 0x430259
mov dword [esp], 0
mov ebx, dword [esp + 8]
movzx eax, byte [esi + 4]
test al, al
jne 0x430273
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
lea ecx, [edi*4]
mov ebp, eax
lea edx, [ecx + ecx*2]
mov ecx, 0xffffffff
nop word cs:[eax + eax]
nop
test edx, edx
je 0x43030b
inc ecx
add edx, 0xfffffff4
cmp dword [ebp + 4], ebx
lea ebp, [ebp + 0xc]
jne 0x430160
cmp edi, ecx
jbe 0x430335
lea ebx, [ecx + ecx*2]
not ecx
mov ebp, dword [eax + ebx*4]
movsd xmm0, qword [eax + ebx*4 + 4]
add ecx, edi
lea edx, [eax + ebx*4]
lea eax, [eax + ebx*4 + 0xc]
shl ecx, 2
lea ecx, [ecx + ecx*2]
movsd qword [esp + 0x10], xmm0
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
dec edi
test ebp, ebp
mov dword [esi + 0x10], edi
je 0x43030b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
lock dec dword [ebp]
jne 0x4301d9
lea ecx, [esp + 0x1c]
call fcn.004141d0
cmp byte [esp], 0
jne 0x4301ef
mov eax, dword [0x45f578]
test eax, 0x7fffffff
jne 0x4302df
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], 0x80000001
cmp eax, 0x80000001
je 0x430341
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov dword [edx], 0
movups xmm0, xmmword [esp + 0x44]
movups xmm2, xmmword [esp + 0x54]
movsd xmm1, qword [esp + 0x64]
mov dword [edx + 4], eax
movups xmmword [edx + 8], xmm0
movups xmmword [edx + 0x18], xmm2
movsd qword [edx + 0x28], xmm1
mov dword [edx + 0x30], ecx
jmp 0x430494
call fcn.00452960
test al, al
jne 0x42fd33
mov byte [edi + 4], 1
jmp 0x42fd33
call fcn.00452960
xor al, 1
mov dword [esp], eax
mov ebx, dword [esp + 8]
movzx eax, byte [esi + 4]
test al, al
je 0x43013d
mov eax, dword [esp]
mov dword [esp + 0x1c], esi
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0x20], al
lea eax, [esp + 0x1c]
push 0x4587f8
push 0x458878
push eax
call fcn.00450c00
call fcn.00452960
xor al, 1
mov dword [esp], eax
mov ebx, dword [esp + 8]
movzx eax, byte [esi + 4]
test al, al
je 0x42fd9c
mov eax, dword [esp]
mov dword [esp + 0x1c], esi
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0x20], al
lea eax, [esp + 0x1c]
push 0x458828
push 0x458878
push eax
call fcn.00450c00
call fcn.00452960
test al, al
jne 0x4301ef
mov byte [esi + 4], 1
jmp 0x4301ef
call fcn.00452960
test al, al
jne 0x42fe4f
mov byte [esi + 4], 1
jmp 0x42fe4f
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x458808
call fcn.00450990
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x458838
call fcn.00450990
ud2
mov edx, edi
push 0x4586c0
call fcn.004507e0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x458818
call fcn.00450990
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x458848
call fcn.00450990
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x74]
mov dword [esp + 0x1c], 0x45b4e0
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x1c]
mov edx, 0x45b518
mov dword [esp + 0x78], 0x413aa0
mov dword [esp + 0x28], 1
call fcn.00450840
cmp edi, 0x3b9aca00
jne 0x430404
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4300fd
call fcn.0043bce0
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4303cd
jmp 0x4300fd
mov ecx, ebx
mov edx, ebp
push dword [esp]
push eax
push esi
push edi
call fcn.00449e70
add esp, 0x10
mov esi, ecx
mov ecx, eax
push esi
call fcn.0043fd80
add esp, 4
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4300fd
call fcn.0043eaf0
mov esi, eax
mov dword [esp], ecx
mov ecx, edx
mov eax, edx
cmp esi, ebx
sbb ecx, ebp
jb 0x4303e5
mov ecx, esi
mov edx, eax
xor ecx, ebx
xor edx, ebp
or edx, ecx
jne 0x43043b
cmp dword [esp], edi
jb 0x4303e5
mov edx, dword [esp + 0x90]
mov ecx, 1
xor eax, eax
lock cmpxchg dword [edx + 0x14], ecx
mov esi, dword [esp + 4]
je 0x43010a
cmp eax, 1
je 0x43010a
cmp eax, 2
je 0x42fd69
test eax, eax
je 0x4304df
movzx eax, byte [esp + 0x70]
test al, al
je 0x43049c
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x40], 0x80000001
mov dword [eax], 2
je 0x430494
lea ecx, [esp + 0x40]
call fcn.00421ce0
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [sym.imp.kernel32.dll_SwitchToThread]
xor ebx, ebx
jmp 0x4304c1
call esi
movzx eax, byte [esp + 0x70]
cmp ebx, 0xb
adc ebx, 0
test al, al
jne 0x430477
cmp ebx, 6
ja 0x4304b0
mov eax, 1
nop dword [eax + eax]
mov edx, eax
mov ecx, ebx
pause
inc eax
shr edx, cl
test edx, edx
je 0x4304d0
jmp 0x4304b2
mov ecx, str.internal_error:_entered_unreachable_code_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_vecmod.rsh
mov edx, 0x28
push 0x4587e8
call fcn.00450990
int3