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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov ebx, dword [ebp + 8]
test edx, edx
mov dword [esp + 0x94], ecx
je 0x425f96
cmp edx, 1
jne 0x4261cb
lea eax, [esp + 0x70]
lea ecx, [esp + 0x50]
xorps xmm0, xmm0
mov dword [eax + 8], 0x3b9aca00
movaps xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
xor esi, esi
mov dword [esp + 0xc], 0
inc eax
mov dword [esp + 0x10], eax
cmp esi, 6
mov ecx, 6
mov eax, edx
mov ebx, edx
cmovb ecx, esi
shr eax, 1
mov edx, eax
and edx, 0x1f
cmp edx, 0x1f
mov dword [esp + 0x3c], edx
jne 0x425dfa
mov ebx, dword [ebp + 8]
cmp esi, 6
ja 0x425e76
test esi, esi
je 0x425e7c
mov eax, dword [esp + 0xc]
pause
dec eax
jne 0x425df0
jmp 0x425e7c
lea edx, [ebx + 2]
test bl, 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], edi
jne 0x425e31
mov edi, edx
mov edx, dword [ebp + 8]
mfence
mov edx, dword [edx + 0x40]
mov ebx, edx
shr ebx, 1
cmp eax, ebx
je 0x425e96
xor edx, dword [esp + 0x14]
xor eax, eax
cmp edx, 0x40
mov edx, edi
mov edi, dword [esp + 0x24]
setae al
or edx, eax
test edi, edi
je 0x425e5f
mov eax, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
lock cmpxchg dword [ebx], edx
je 0x4262e6
cmp esi, 6
mov eax, 6
cmovb eax, esi
test eax, eax
je 0x425e7c
imul ecx, ecx
pause
dec ecx
jne 0x425e58
jmp 0x425e7c
mov ebx, dword [ebp + 8]
cmp esi, 6
ja 0x425e76
test esi, esi
je 0x425e7c
mov eax, dword [esp + 0xc]
pause
dec eax
jne 0x425e6f
jmp 0x425e7c
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov eax, dword [esp + 0x10]
inc esi
add dword [esp + 0xc], eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x425db9
test dl, 1
jne 0x4263d5
mov eax, dword [esp + 0x78]
cmp eax, 0x3b9aca00
je 0x425ee9
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], eax
call fcn.005a62b0
cmp eax, esi
mov edi, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
sbb edx, ebx
mov edx, dword [esp + 0x10]
jb 0x425ee9
xor eax, dword [esp + 0xc]
xor edi, ebx
mov ecx, ebx
or edi, eax
jne 0x4266e6
cmp dword [esp + 0x14], edx
jae 0x4266e6
call fcn.005c1160
test eax, eax
je 0x425f52
mov ebx, dword [eax]
mov esi, eax
mov dword [eax], 0
test ebx, ebx
je 0x425f52
mov edx, dword [ebp + 8]
lea eax, [esp + 0x50]
lea ecx, [esp + 0x70]
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x28]
mov edx, ebx
call fcn.004243b0
mov eax, dword [esi]
mov dword [esi], ebx
test eax, eax
mov dword [esp + 0x28], eax
je 0x425f4a
lock dec dword [eax]
jne 0x425f4a
lea ecx, [esp + 0x28]
call fcn.005c3678
mov ebx, dword [ebp + 8]
jmp 0x425da3
call fcn.0065a2d0
mov ebx, dword [ebp + 8]
mov esi, eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x50]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov edx, esi
lea eax, [esp + 0x70]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
call fcn.004243b0
lock dec dword [esi]
jne 0x425da3
lea ecx, [esp + 0x40]
call fcn.005c3678
jmp 0x425da3
lea eax, [esp + 0x70]
lea ecx, [esp + 0x50]
xorps xmm0, xmm0
mov dword [eax + 8], 0x3b9aca00
movaps xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov ecx, dword [ebx]
xor eax, eax
xor edi, edi
mov dword [esp + 0xc], 0
inc eax
mov dword [esp + 0x14], eax
cmp edi, 6
mov edx, 6
mov eax, dword [ebx + 0x88]
mov esi, dword [ebx + 0xd4]
mov dword [esp + 0x10], edi
cmovb edx, edi
mov edi, ebx
xor ebx, ebx
sub ebx, dword [edi + 0x84]
imul edx, edx
dec eax
mov dword [esp + 0x24], esi
and eax, ecx
mov dword [esp + 0x3c], ebx
mov ebx, eax
shl ebx, 4
mov dword [esp + 0x98], ebx
mov ebx, dword [esi + ebx]
mov esi, ecx
inc ecx
cmp ecx, ebx
jne 0x426051
inc eax
mov ecx, ebx
mov ebx, edi
cmp eax, dword [edi + 0x80]
jb 0x426027
mov ecx, dword [esp + 0x3c]
and ecx, esi
add ecx, dword [ebx + 0x84]
mov eax, esi
lock cmpxchg dword [ebx], ecx
mov edi, dword [esp + 0x10]
je 0x42628c
mov esi, dword [esp + 0xc]
cmp edi, 6
mov eax, 6
cmovb eax, edi
test eax, eax
je 0x4260b3
pause
dec edx
jne 0x42604a
jmp 0x4260b3
cmp ebx, esi
jne 0x426090
mov ebx, dword [ebp + 8]
mfence
mov ecx, esi
mov edi, ecx
mov eax, dword [ebx + 0x40]
mov esi, dword [ebx + 0x88]
mov ecx, esi
not ecx
and ecx, eax
cmp ecx, edi
mov edi, dword [esp + 0x10]
je 0x4260cc
mov esi, dword [esp + 0xc]
cmp edi, 6
mov eax, 6
cmovb eax, edi
test eax, eax
je 0x4260b3
pause
dec edx
jne 0x426089
jmp 0x4260b3
mov edi, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0xc]
cmp edi, 7
jae 0x4260ad
test edi, edi
je 0x4260b3
mov eax, esi
pause
dec eax
jne 0x4260a6
jmp 0x4260b3
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov ecx, dword [ebx]
mov eax, dword [esp + 0x14]
inc edi
add esi, eax
add eax, 2
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
jmp 0x425fc5
test esi, eax
jne 0x4263d5
mov eax, dword [esp + 0x78]
cmp eax, 0x3b9aca00
je 0x42611e
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], eax
call fcn.005a62b0
cmp eax, esi
mov edi, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
sbb edx, ebx
mov edx, dword [esp + 0x10]
jb 0x42611e
xor eax, dword [esp + 0xc]
xor edi, ebx
mov ecx, ebx
or edi, eax
jne 0x4266e6
cmp dword [esp + 0x14], edx
jae 0x4266e6
call fcn.005c1160
test eax, eax
je 0x426187
mov ebx, dword [eax]
mov esi, eax
mov dword [eax], 0
test ebx, ebx
je 0x426187
mov edx, dword [ebp + 8]
lea eax, [esp + 0x50]
lea ecx, [esp + 0x70]
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x28]
mov edx, ebx
call fcn.004257d8
mov eax, dword [esi]
mov dword [esi], ebx
test eax, eax
mov dword [esp + 0x28], eax
je 0x42617f
lock dec dword [eax]
jne 0x42617f
lea ecx, [esp + 0x28]
call fcn.005c3678
mov ebx, dword [ebp + 8]
jmp 0x425fb2
call fcn.0065a2d0
mov ebx, dword [ebp + 8]
mov esi, eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x50]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov edx, esi
lea eax, [esp + 0x70]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
call fcn.004257d8
lock dec dword [esi]
jne 0x425fb2
lea ecx, [esp + 0x18]
call fcn.005c3678
jmp 0x425fb2
add ebx, 8
lea esi, [esp + 0x50]
xorps xmm0, xmm0
mov dword [esp + 0x30], 0x3b9aca00
mov dword [esp + 0x80], 0
mov ecx, esi
mov edx, ebx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x3c], ebx
call fcn.005f8836
cmp dword [esi], 0
jne 0x4266f2
mov eax, dword [esp + 0x54]
mov cl, byte [esp + 0x58]
mov edi, dword [eax + 0x10]
mov byte [esp + 0x14], cl
mov dword [esp + 0xc], eax
test edi, edi
je 0x426266
call fcn.005bcbb0
test eax, eax
je 0x426719
mov ecx, eax
mov eax, dword [esp + 0xc]
shl edi, 2
lea ebx, [edi + edi*2]
xor edi, edi
mov dword [esp + 0x10], ecx
add eax, 8
mov edx, dword [eax]
mov dword [esp + 0x24], eax
mov esi, dword [edx]
cmp dword [esi + 0x14], ecx
je 0x42625d
mov ecx, dword [edx + 4]
xor eax, eax
lock cmpxchg dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x10]
je 0x426515
add edx, 0xc
inc edi
add ebx, 0xfffffff4
jne 0x426242
mov ebx, dword [esp + 0xc]
cmp byte [ebx + 0x38], 0
je 0x426400
movzx edx, byte [esp + 0x14]
mov ecx, ebx
mov word [esp + 0x18], 0x110
call fcn.005aa9d0
jmp 0x4264e0
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x98]
lea eax, [edx + edi]
mov dword [esp + 0x50], eax
add esi, dword [ebx + 0x84]
add ebx, 0x8c
mov dword [esp + 0x54], esi
mov cl, byte [edx + edi + 4]
mov byte [esp + 0x10], cl
mov ecx, dword [edx + edi + 0xc]
mov dword [esp + 0x2f], ecx
mov ecx, ebx
movsd xmm0, qword [edx + edi + 5]
movsd qword [esp + 0x28], xmm0
mov dword [eax], esi
call fcn.00425b7c
mov cl, byte [esp + 0x10]
mov eax, dword [esp + 0x2f]
movsd xmm0, qword [esp + 0x28]
jmp 0x4263c6
cmp dword [esp + 0x3c], 0x1e
jne 0x426311
mov ecx, dword [esp + 0x24]
mov esi, edx
call fcn.0042410f
mov ecx, dword [eax + 0x1f0]
and esi, 0xfffffffe
xor edx, edx
mov dword [ebx + 4], eax
test ecx, ecx
setne dl
lea ecx, [esi + edx + 2]
mov dword [ebx], ecx
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
mov ebx, edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
shl ebx, 4
lea ecx, [esi + ebx]
call fcn.004240d1
mov edx, dword [esi + ebx + 8]
mov al, byte [esi + ebx]
xor ecx, ecx
mov dword [esp + 0x2f], edx
lea edx, [edi + 1]
mov byte [esp + 0x10], al
movsd xmm0, qword [esi + ebx + 1]
cmp edx, 0x1f
movsd qword [esp + 0x28], xmm0
je 0x426375
mov eax, dword [esp + 0x24]
lea ecx, [eax + ebx + 0xc]
mov eax, dword [ecx]
mov esi, eax
or esi, 2
lock cmpxchg dword [ecx], esi
jne 0x42635d
test al, 4
je 0x4263b8
cmp dword [esp + 0x3c], 0x1d
mov ecx, edx
jae 0x4263a6
mov edx, dword [esp + 0x24]
mov eax, ecx
shl eax, 4
mov edx, dword [edx + eax + 0xc]
test dl, 2
jne 0x4263a0
mov edx, dword [esp + 0x24]
lea edx, [edx + eax + 0xc]
mov eax, dword [edx]
mov esi, eax
or esi, 4
lock cmpxchg dword [edx], esi
jne 0x426391
test al, 2
je 0x4263b8
inc ecx
cmp ecx, 0x1e
jne 0x426375
push dword [esp + 0x24]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x2f]
movsd xmm0, qword [esp + 0x28]
mov cl, byte [esp + 0x10]
mov dword [esp + 0x47], eax
movsd qword [esp + 0x40], xmm0
cmp cl, 0x10
jne 0x4263e3
mov word [esp + 0x18], 0x110
mov cl, 0x10
jmp 0x4264e4
movsd xmm0, qword [esp + 0x40]
mov eax, dword [esp + 0x47]
mov byte [esp + 0x18], cl
movsd qword [esp + 0x19], xmm0
mov dword [esp + 0x20], eax
jmp 0x4264e4
call fcn.005c1160
test eax, eax
je 0x42663c
mov edi, dword [eax]
mov esi, eax
mov dword [eax], 0
test edi, edi
je 0x426695
mov ecx, ebx
lea eax, [esp + 0x70]
lea ebx, [esp + 0x50]
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [ebx], eax
lea eax, [esp + 0x28]
movzx edx, word [esp + 0x4d]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov ch, byte [esp + 0x14]
mov cl, byte [esp + 0x4f]
mov byte [ebx + 0x10], ch
mov word [ebx + 0x11], dx
mov byte [ebx + 0x13], cl
lea ecx, [esp + 0x40]
mov edx, ebx
push edi
call fcn.00424eaa
add esp, 4
mov eax, dword [esi]
mov dword [esi], edi
test eax, eax
mov dword [ebx], eax
je 0x426488
lock dec dword [eax]
jne 0x426488
lea ecx, [esp + 0x50]
call fcn.005c3678
movsd xmm0, qword [esp + 0x40]
mov eax, dword [esp + 0x48]
movsd qword [esp + 0x18], xmm0
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x18]
movsd xmm0, qword [esp + 0x19]
mov ecx, dword [esp + 0x20]
cmp al, 0x11
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0x8f], ecx
je 0x426738
mov ecx, dword [esp + 0x8f]
movsd xmm0, qword [esp + 0x88]
mov dword [esp + 0x20], ecx
movsd qword [esp + 0x19], xmm0
mov byte [esp + 0x18], al
mov cl, byte [esp + 0x18]
cmp cl, 0x10
jne 0x4264f5
mov eax, dword [esp + 0x94]
mov byte [eax], 0x10
jmp 0x42650d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
movsd xmm0, qword [esp + 0x18]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edx + 8]
test eax, eax
je 0x42651f
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 8]
add ecx, 0x18
call fcn.005c0ef0
mov edx, dword [esp + 0x24]
lea ebx, [esp + 0x40]
mov ecx, ebx
push 0x7f4a34
push edi
call fcn.006146f6
add esp, 8
cmp dword [ebx], 0
je 0x426266
mov esi, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x40]
movzx edx, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], esi
mov dword [esp + 0x80], esi
call fcn.005aa9d0
test esi, esi
je 0x4265be
cmp byte [esi + 0xd], 0
je 0x4265c7
mov bl, byte [esi]
mov byte [esi], 0x10
cmp bl, 0x10
je 0x42675a
mov eax, dword [esi + 8]
mov dword [esp + 0x1f], eax
movsd xmm0, qword [esi + 1]
movsd qword [esp + 0x18], xmm0
mov byte [esi + 0xc], 1
mov eax, dword [esp + 0x1f]
movsd xmm0, qword [esp + 0x18]
mov dword [esp + 0x8f], eax
movsd qword [esp + 0x88], xmm0
jmp 0x426603
mov word [esp + 0x18], 0x110
jmp 0x426621
mov ecx, esi
call fcn.005e5b44
mov bl, byte [esi]
mov byte [esi], 0x10
cmp bl, 0x10
je 0x42676b
mov eax, dword [esi + 8]
mov dword [esp + 0x8f], eax
movsd xmm0, qword [esi + 1]
movsd qword [esp + 0x88], xmm0
push esi
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
movsd xmm0, qword [esp + 0x88]
mov eax, dword [esp + 0x8f]
mov byte [esp + 0x18], bl
movsd qword [esp + 0x19], xmm0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
lock dec dword [eax]
jne 0x4264e0
lea ecx, [esp + 0x50]
call fcn.005c3678
jmp 0x4264e0
call fcn.0065a2d0
mov esi, eax
lea eax, [esp + 0x70]
lea edx, [esp + 0x50]
mov ch, byte [esp + 0x14]
movzx edi, word [esp + 0x4d]
mov cl, byte [esp + 0x4f]
mov dword [edx], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x40], esi
mov dword [edx + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov byte [edx + 0x10], ch
mov byte [edx + 0x13], cl
mov word [edx + 0x11], di
lea ecx, [esp + 0x18]
push esi
call fcn.00424eaa
add esp, 4
lock dec dword [esi]
jne 0x4264e0
lea ecx, [esp + 0x40]
jmp 0x426632
call fcn.0065a2d0
mov edi, dword [esp + 0x3c]
mov cl, byte [esp + 0x14]
mov esi, eax
lea eax, [esp + 0x70]
lea edx, [esp + 0x50]
mov dword [edx], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x40], esi
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov dword [edx + 0xc], ebx
mov byte [edx + 0x10], cl
lea ecx, [esp + 0x18]
push esi
call fcn.00424eaa
add esp, 4
lock dec dword [esi]
jne 0x42649c
lea ecx, [esp + 0x40]
call fcn.005c3678
jmp 0x42649c
mov word [esp + 0x18], 0x10
jmp 0x4263dc
mov eax, dword [esp + 0x54]
mov cl, byte [esp + 0x58]
lea esi, [esp + 0x40]
mov edx, 0x2b
mov dword [esi], eax
mov byte [esi + 4], cl
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x7f47a4
push 0x666cc8
jmp 0x42672d
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadlocal.rs
mov edx, 0x46
push 0x7f49d0
push 0x666bb8
push esi
call fcn.006525c0
add esp, 0xc
ud2
call fcn.0065a2d0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
mov dword [esp + 0x40], eax
push 0x7f4ae8
call fcn.006522d0
add esp, 4
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7f4794
jmp 0x426750
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7f4784
jmp 0x426750