Function at 0x4ef560
Capabilities:
Check if file exists
Enumerate services
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xe0], edx
mov esi, ecx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe8], eax
mov eax, dword [0x6f11c8]
cmp eax, 2
jbe 0x4ef67d
lea eax, [esp + 0xe0]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0x507280
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
lea edx, [esp + 0x18]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], fcn.00460390
mov eax, dword [0x6f1080]
mov dword [esp + 0x5c], 3
mov dword [esp + 0x60], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x64], 0x22
mov dword [esp + 0x68], 0x683b8c
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], edx
lea edx, [esp + 0x5c]
mov dword [esp + 0x7c], 2
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0x22
mov dword [esp + 0x84], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x8c], 0
mov dword [esp + 0x94], 0x1e
mov dword [esp + 0x90], 0x6839d6
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 0x14a
cmp eax, 2
mov eax, 0x6857f8
cmove eax, dword [0x605020]
cmove ecx, dword [str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
cmp dword [esi + 8], 0
mov dword [esp + 0x28], esi
je 0x4ef95b
mov eax, dword [0x6f1130]
test eax, eax
jne 0x4ef6a6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4f06d9
mov dword [0x6f1130], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4f06d9
mov edi, dword [0x6d6b64]
mov dword [eax], 1
mov dword [eax + 4], 1
mov byte [eax + 8], 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0xb4], 0
push 0xf003f
push 0
push 0
call sub.ADVAPI32.dll_OpenSCManagerW
test eax, eax
je 0x4f0287
mov dword [esp + 0x50], edi
mov esi, eax
lea ebx, [esp + 0xb8]
lea edi, [esp + 0x4c]
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x58], 0
push 0
push 0
push ebx
push edi
push 0
push 0
push 1
push 0x30
push 0
push eax
call sub.ADVAPI32.dll_EnumServicesStatusExW
mov ecx, dword [esp + 0x4c]
mov edx, dword [0x6dd4e0]
xor eax, eax
mov dword [esp + 0xbc], esi
mov dword [esp], ecx
test ecx, ecx
mov ecx, 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
jne 0x4f0524
mov dword [esp + 0x38], ecx
mov dword [esp + 0xd8], 0
lea ecx, [esp + 0xd8]
push 0
push ecx
push ebx
push edi
push eax
mov edi, edx
push edx
push 1
push 0x30
push 0
push esi
call sub.ADVAPI32.dll_EnumServicesStatusExW
mov dword [esp + 0xdc], eax
test eax, eax
mov eax, dword [0x6f11c8]
je 0x4ef99b
cmp eax, 2
jbe 0x4ef8b7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 0x4ee180
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
lea edx, [esp + 0x18]
mov eax, dword [0x6f1080]
mov dword [esp + 0x5c], 3
mov dword [esp + 0x60], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x64], 0x22
mov dword [esp + 0x68], 0x6839ac
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], edx
lea edx, [esp + 0x5c]
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0x22
mov dword [esp + 0x84], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x8c], 0
mov dword [esp + 0x94], 0x1e
mov dword [esp + 0x90], 0x6839d6
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 0x69
cmp eax, 2
mov eax, 0x6857f8
cmove eax, dword [0x605020]
cmove ecx, dword [str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x4ef983
imul ebx, eax, 0x2c
mov esi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jmp 0x4ef90a
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x64]
lea ecx, [edx + edx*2]
mov ebx, dword [esp]
inc edx
add esi, 0x2c
mov dword [eax + ecx*4 + 8], edi
add ebx, 0xffffffd4
movsd xmm0, qword [esp + 0x5c]
movsd qword [eax + ecx*4], xmm0
mov dword [esp + 0x58], edx
je 0x4ef962
mov ecx, dword [esi]
mov dword [esp], ebx
call fcn.004d5570
mov edi, edx
mov ebx, eax
lea ecx, [esp + 0x5c]
mov edx, eax
push edi
call fcn.00600b20
add esp, 4
test edi, 0x7fffffff
mov word [ebx], 0
je 0x4ef942
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x58]
cmp edx, dword [esp + 0x54]
jne 0x4ef8e0
lea ecx, [esp + 0x50]
call fcn.0047de40
mov edx, dword [esp + 0x58]
jmp 0x4ef8e0
xor ebx, ebx
jmp 0x4f04d3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x4ef983
imul eax, eax, 0x2c
test eax, eax
je 0x4ef983
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov dword [esp + 0xa0], eax
jmp 0x4efb20
test eax, eax
je 0x4f0501
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0xc4], 0
mov ecx, str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0x1c], 0x4648b0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x5df300
mov eax, dword [0x6f1080]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x64], 0x22
mov dword [esp + 0x68], 0x683a04
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], edx
lea edx, [esp + 0x5c]
mov dword [esp + 0x7c], 2
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0x22
mov dword [esp + 0x84], str.locker::core::os::windows::servicesrc_core_os_windows_service.rsenum_services
mov dword [esp + 0x8c], 0
mov dword [esp + 0x94], 0x1e
mov dword [esp + 0x90], 0x6839d6
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 0x63
cmp eax, 2
mov eax, 0x6857f8
cmove eax, dword [0x605020]
cmove ecx, dword [str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
cmp byte [esp + 0xc4], 3
jne 0x4efaf5
mov esi, dword [esp + 0xc8]
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x4efae1
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x4efad3
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0xc8]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x34], 0
je 0x4efb20
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea eax, [esi + esi*2]
test esi, esi
mov dword [esp + 0xc0], edi
lea ecx, [edi + eax*4]
je 0x4eff64
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xcc], ecx
jmp 0x4efb68
mov edi, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
cmp edi, ecx
mov eax, edi
je 0x4eff64
mov edx, dword [eax]
lea edi, [eax + 0xc]
test edx, edx
mov dword [esp + 0x14], edx
je 0x4eff64
mov ecx, dword [eax + 4]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4eff40
mov eax, dword [eax + 8]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*4]
mov dword [esp + 0xa4], eax
jmp 0x4efbcd
cmp dword [esp + 0xa4], esi
je 0x4eff40
mov edx, dword [esi]
lea ecx, [esp + 0x30]
push dword [esi + 8]
call fcn.0040a930
add esp, 4
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push dword [esp + 0xa8]
call fcn.0040a930
add esp, 4
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
push dword [esp + 0x38]
call fcn.00600d60
add esp, 4
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x20]
test edx, edx
je 0x4efe00
test edi, edi
je 0x4efe10
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 8], edx
add edi, eax
mov dword [esp], eax
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
jmp 0x4efc5a
inc ecx
cmp dword [esp], edi
je 0x4efe34
mov eax, dword [esp]
movzx eax, byte [eax]
test al, al
js 0x4efc80
inc dword [esp]
cmp ecx, edx
jb 0x4efd00
jmp 0x4efe20
mov esi, dword [esp]
mov ebx, eax
and ebx, 0x1f
movzx esi, byte [esi + 1]
and esi, 0x3f
cmp al, 0xdf
jbe 0x4efcce
mov edx, dword [esp]
shl esi, 6
movzx edi, byte [edx + 2]
and edi, 0x3f
or edi, esi
cmp al, 0xf0
jb 0x4efce2
mov eax, dword [esp]
and ebx, 7
shl edi, 6
shl ebx, 0x12
movzx eax, byte [eax + 3]
and eax, 0x3f
or eax, edi
or eax, ebx
cmp eax, 0x110000
je 0x4efe30
add dword [esp], 4
jmp 0x4efced
add dword [esp], 2
shl ebx, 6
or ebx, esi
mov eax, ebx
cmp ecx, edx
jb 0x4efd00
jmp 0x4efe20
add dword [esp], 3
shl ebx, 0xc
or edi, ebx
mov eax, edi
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
cmp ecx, edx
jae 0x4efe20
nop dword [eax]
mov ebx, dword [esp + 0xc]
mov esi, eax
mov ebx, dword [ebx + ecx*8]
cmp ebx, 0x3f
je 0x4efc50
cmp ebx, 0x110000
mov eax, esi
setne byte [esp + 0x10]
cmp esi, 0x110000
setne al
xor al, byte [esp + 0x10]
jne 0x4efd52
cmp ebx, 0x110000
je 0x4efc50
cmp esi, 0x110000
mov eax, esi
je 0x4efc50
cmp ebx, esi
mov eax, esi
je 0x4efc50
mov eax, dword [esp + 0xc]
cmp byte [eax + ecx*8 + 4], 0
je 0x4efd6e
cmp ebx, 0x110000
jne 0x4efc51
jmp 0x4efe28
test ecx, ecx
je 0x4efe20
lea eax, [ecx - 1]
cmp eax, edx
jae 0x4efdad
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
mov ebx, ecx
mov ecx, eax
add ebx, 0xfffffffe
nop dword [eax]
mov eax, dword [esp + 0xc]
cmp byte [eax + ecx*8 + 4], 0
jne 0x4efdbc
sub ecx, 1
jb 0x4efe20
cmp ebx, edx
jb 0x4efd90
jmp 0x4efc51
mov ecx, eax
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
jmp 0x4efc51
mov eax, dword [esp + 0xc]
mov eax, dword [eax + ecx*8]
cmp eax, 0x3f
jne 0x4efdcb
inc ecx
jmp 0x4efdaf
cmp eax, 0x110000
setne dl
cmp esi, 0x110000
setne dh
xor dh, dl
jne 0x4efdaf
cmp eax, 0x110000
je 0x4efdc8
cmp esi, 0x110000
je 0x4efdc8
cmp eax, esi
jne 0x4efdaf
jmp 0x4efdc8
test edi, edi
jmp 0x4efe4b
xor ecx, ecx
jmp 0x4efe40
mov esi, dword [esp + 0x2c]
xor ebx, ebx
jmp 0x4efe4e
mov esi, dword [esp + 0x2c]
mov bl, 1
jmp 0x4efe4e
mov edx, dword [esp + 8]
cmp edx, ecx
jbe 0x4f0586
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
cmp dword [eax + ecx*8], 0x110000
sete bl
test dword [esp + 0x60], 0x1fffffff
je 0x4efe69
push dword [esp + 0x5c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test bl, bl
je 0x4efefa
mov ebx, esi
mov esi, dword [esp + 0x20]
test esi, esi
js 0x4f0595
mov ecx, dword [esp + 0x18]
je 0x4efeba
mov eax, dword [0x6f1130]
mov dword [esp], ecx
test eax, eax
jne 0x4efea3
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4f059c
mov dword [0x6f1130], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, dword [esp]
mov edi, eax
test eax, eax
jne 0x4efebf
jmp 0x4f059c
mov edi, 1
push esi
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x48]
cmp edx, dword [esp + 0x44]
jne 0x4efee1
lea ecx, [esp + 0x40]
call fcn.0047de40
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], edi
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], esi
mov dword [esp + 0x48], edx
mov esi, ebx
cmp dword [esp + 0x1c], 0
je 0x4eff12
push dword [esp + 0x18]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
add esi, 0xc
cmp dword [esp + 0x34], 0
je 0x4efbc0
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4efbc0
cmp dword [esp + 0xd0], 0
je 0x4efb50
push dword [esp + 0x14]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4efb50
sub ecx, edi
je 0x4eff9f
sar ecx, 2
add edi, 4
imul eax, ecx, 0xaaaaaaab
shl eax, 2
lea esi, [eax + eax*2]
jmp 0x4eff88
add edi, 0xc
add esi, 0xfffffff4
je 0x4eff9f
cmp dword [edi], 0
je 0x4eff80
push dword [edi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4eff80
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4effc8
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x4effc8
push dword [esp + 0xc0]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0xbc]
call sub.ADVAPI32.dll_CloseServiceHandle
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4f0287
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esp + 0xa4], eax
jmp 0x4f0040
mov ecx, dword [esp + 0xac]
mov eax, edx
inc edx
shl eax, 4
mov dword [ecx + eax], 1
mov dword [ecx + eax + 4], edi
mov edi, dword [esp + 0xa8]
mov dword [ecx + eax + 8], ebx
mov ebx, ecx
mov dword [ecx + eax + 0xc], esi
mov dword [esp + 0xb4], edx
add edi, 0xc
cmp dword [esp + 0xa4], edi
je 0x4f0295
mov eax, dword [esp + 0x3c]
lock inc dword [eax]
jle 0x4f05aa
mov ebx, dword [edi + 8]
test ebx, ebx
js 0x4f0595
mov esi, dword [edi]
je 0x4f0090
mov eax, dword [0x6f1130]
test eax, eax
jne 0x4f0077
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4f0619
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x4f0095
jmp 0x4f0619
mov eax, 1
push ebx
push esi
mov dword [esp + 0x14], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.005ee4a0
xor ecx, ecx
mov esi, eax
call fcn.005bfbd0
mov dword [esp], eax
lock inc dword [eax]
jle 0x4f05aa
mov dword [esp + 0x14], esi
mov eax, dword [0x6f1130]
test eax, eax
jne 0x4f00fe
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4f05ae
mov dword [0x6f1130], eax
push 0x14
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4f05ae
mov dword [eax + 8], 0
mov dword [eax], 1
mov dword [eax + 4], 1
mov esi, eax
lock inc dword [eax]
jle 0x4f05aa
movzx eax, byte [0x6f11b9]
mov dword [esp + 0xa8], edi
test al, al
je 0x4f0180
mov byte [0x6f11b9], 1
call fcn.005c06a0
test eax, eax
je 0x4f06b6
mov edi, dword [eax]
mov dword [eax], 0
test edi, edi
je 0x4f0180
lock inc dword [edi]
jle 0x4f05aa
mov byte [0x6f11b9], 1
call fcn.005c06a0
test eax, eax
jne 0x4f01a1
jmp 0x4f06aa
movzx eax, byte [0x6f11b9]
test al, al
je 0x4f01e0
mov byte [0x6f11b9], 1
call fcn.005c06a0
test eax, eax
je 0x4f06b6
xor edi, edi
mov ecx, dword [eax]
mov dword [eax], edi
test ecx, ecx
mov dword [esp + 0x5c], ecx
je 0x4f01bb
lock dec dword [ecx]
jne 0x4f01bb
mov ecx, dword [esp + 0x5c]
call fcn.00402960
mov eax, dword [0x6f1130]
test eax, eax
jne 0x4f01f0
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4f05bf
mov dword [0x6f1130], eax
jmp 0x4f01f0
xor edi, edi
mov eax, dword [0x6f1130]
test eax, eax
je 0x4f01c4
nop dword [eax + eax]
push 0x30
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4f05bf
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp]
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], edi
mov dword [eax + 0x28], esi
lea ecx, [esp + 0x5c]
push 0x620bd8
push eax
call fcn.005efa80
add esp, 8
cmp dword [esp + 0x5c], 1
je 0x4f05d0
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x60]
cmp edx, dword [esp + 0xb0]
jne 0x4f0000
lea ecx, [esp + 0xac]
call fcn.00415ce0
mov edx, dword [esp + 0xb4]
jmp 0x4f0000
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov edi, edx
mov dword [esp + 4], ebx
shl edi, 4
add edi, ebx
test edx, edx
mov dword [esp + 0x14], eax
je 0x4f03a1
mov eax, dword [esp + 4]
mov dword [esp + 8], edi
lea ebx, [eax + 0x10]
jmp 0x4f02e3
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
mov edi, dword [esp + 8]
add ebx, 0x10
add eax, 0x10
cmp eax, edi
je 0x4f039f
mov eax, dword [ebx - 0x10]
cmp eax, 2
je 0x4f03a1
test eax, eax
je 0x4f0627
lea eax, [ebx - 0x10]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov dword [esp], eax
mov dword [esp + 0xc], ecx
push 0xffffffffffffffff
push edi
call sub.KERNEL32.dll_WaitForSingleObject
cmp eax, 0xffffffff
je 0x4f0638
push edi
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
mov dword [esi + 8], 0
cmp eax, 1
mov dword [esp + 0x10], ecx
jne 0x4f0691
mov ecx, dword [esp + 0xc]
lock dec dword [ecx]
je 0x4f0360
lock dec dword [esi]
je 0x4f036a
mov esi, dword [esp + 0x10]
test edi, edi
jne 0x4f037d
jmp 0x4f02ce
call fcn.004023c0
lock dec dword [esi]
jne 0x4f034c
mov ecx, esi
call fcn.00512a90
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4f02ce
push edi
call dword [esi]
add esp, 4
cmp dword [esi + 4], 0
je 0x4f02ce
cmp dword [esi + 8], 9
jb 0x4f02c0
mov edi, dword [edi - 4]
jmp 0x4f02c0
mov ebx, edi
cmp edi, ebx
je 0x4f03f9
add ebx, 0xc
jmp 0x4f03ba
add esi, 0x10
add ebx, 0x10
cmp esi, edi
je 0x4f03f9
cmp dword [ebx - 0xc], 0
je 0x4f03c8
push dword [ebx - 8]
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [ebx - 4]
lea esi, [ebx - 0xc]
lock dec dword [eax]
je 0x4f03e0
mov eax, dword [esi + 0xc]
lock dec dword [eax]
jne 0x4f03b0
jmp 0x4f03f0
mov ecx, dword [ebx - 4]
call fcn.004023c0
mov eax, dword [esi + 0xc]
lock dec dword [eax]
jne 0x4f03b0
mov ecx, dword [ebx]
call fcn.00512a90
jmp 0x4f03b0
test dword [esp + 0x14], 0xfffffff
je 0x4f0414
push dword [esp + 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x3c]
mov al, byte [eax + 8]
test al, al
mov eax, dword [esp + 0x48]
setne bl
test eax, eax
je 0x4f045f
mov esi, dword [esp + 0x40]
shl eax, 2
lea edi, [eax + eax*2]
add esi, 4
jmp 0x4f0448
add esi, 0xc
add edi, 0xfffffff4
je 0x4f045f
cmp dword [esi], 0
je 0x4f0440
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4f0440
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4f0482
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x4f0482
push dword [esp + 0x40]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x3c]
lock dec dword [ecx]
jne 0x4f0490
call fcn.00402a90
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 8]
test eax, eax
je 0x4f04d3
mov esi, dword [esi]
shl eax, 2
lea edi, [eax + eax*2]
add esi, 4
jmp 0x4f04b8
add esi, 0xc
add edi, 0xfffffff4
je 0x4f04cf
cmp dword [esi], 0
je 0x4f04b0
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4f04b0
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 4]
test eax, eax
je 0x4f04f7
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x4f04f7
mov eax, dword [esp + 0x28]
push dword [eax]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [0x6d6b64]
xor esi, esi
mov dword [esp + 0xa0], 0
cmp dword [esp + 0x34], 0
jne 0x4efb0f
jmp 0x4efb20
mov esi, dword [esp]
lea ecx, [esp + 0x30]
xor edx, edx
push esi
call fcn.005f2340
add esp, 4
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp esi, 1
lea eax, [edx + ecx]
je 0x4f0567
mov esi, dword [esp]
mov ebx, ecx
lea ecx, [esi - 1]
push ecx
push 0
push eax
mov edi, edx
call sub.msvcrt.dll_memset
mov ecx, ebx
mov edx, edi
add esp, 0xc
lea ecx, [esi + ebx - 1]
lea eax, [edi + ecx]
mov byte [eax], 0
mov esi, dword [esp + 0xbc]
inc ecx
lea ebx, [esp + 0xb8]
lea edi, [esp + 0x4c]
mov eax, dword [esp + 0x4c]
jmp 0x4ef79b
push 0x6dd41c
call fcn.0045a150
add esp, 4
ud2
call fcn.0040a620
ud2
mov ecx, esi
mov edx, 1
call fcn.0040a640
ud2
ud2
mov ecx, 0x14
mov edx, 4
call fcn.0040a640
ud2
mov ecx, 0x30
mov edx, 8
call fcn.0040a640
ud2
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
lock dec dword [esi]
jne 0x4f05e4
mov ecx, esi
call fcn.00512a90
mov eax, dword [esp]
lock dec dword [eax]
jne 0x4f05f4
mov ecx, dword [esp]
call fcn.004023c0
mov ecx, str.failed_to_spawn_thread
mov edx, 0x16
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], ebx
push 0x686d24
push 0x620d04
lea eax, [esp + 0x64]
jmp 0x4f06ce
mov ecx, ebx
mov edx, 1
call fcn.0040a640
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x686cec
jmp 0x4f06a0
call sub.KERNEL32.dll_GetLastError
lea edx, [esp + 0x18]
lea ecx, [esp + 0x30]
mov dword [esp + 0x5c], 0x6d5c44
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x5c]
mov edx, 0x6d5c74
mov dword [esp + 0x34], fcn.005dde30
mov dword [esp + 0x70], 1
call fcn.0045a2c0
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36librarycore_src_strpattern.rs
mov edx, 0x2b
push 0x686cfc
call fcn.0045aec0
add esp, 4
ud2
lock dec dword [edi]
jne 0x4f06b6
mov ecx, edi
call fcn.005c09a0
lea eax, [esp + 0x18]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36library_std_src_threadlocal.rs
mov edx, 0x46
push 0x6d41c4
push 0x6d3878
push eax
call fcn.0045d480
add esp, 0xc
ud2
mov ecx, 0xc
mov edx, 4
call fcn.0040a640
ud2