Function at 0x536480
Capabilities:
Link many functions at runtime
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4a0
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov byte [esp + 4], bl
lea ecx, [esp + 0x1c0]
call sym.std::env::current_dir::h98f040f269115fb9
mov esi, dword [esp + 0x1c0]
mov eax, esi
neg eax
jno 0x53650d
cmp byte [esp + 0x1c4], 3
jne 0x53652b
mov eax, dword [esp + 0x1c8]
mov ebx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x5364d8
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x5364f5
cmp dword [ebx + 8], 9
jb 0x5364e7
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
push dword [esp + 8]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
movzx ebx, byte [esp + 4]
jmp 0x53652b
lea eax, [esp + 0x1c4]
mov ecx, dword [eax + 8]
movsd xmm0, qword [eax]
mov dword [esp + 0x98], ecx
movsd qword [esp + 0x90], xmm0
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov byte [esp + 0x74], bl
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x18]
movsd qword [esp + 0x68], xmm0
mov eax, dword [eax + 0xc]
push 0x11
push str.stack_backtrace:_n
push dword [edi + 0x14]
call eax
add esp, 0xc
test al, al
jne 0x536e6f
movzx ecx, byte [esp + 4]
lea eax, [esp + 0x64]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x88], 0
mov byte [esp + 3], 0
mov dword [esp + 0x60], 0
mov byte [esp + 7], 1
mov byte [esp + 0x8c], cl
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0x5b1e0c
mov byte [esp + 0x1b], cl
mov byte [esp + 6], cl
call sub.kernel32.dll_GetCurrentProcess
mov dword [esp + 0x5c], eax
call sub.kernel32.dll_GetCurrentThread
mov dword [esp + 0x58], eax
push 0x2d0
push 0
lea esi, [esp + 0x1c8]
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
call sub.kernel32.dll_RtlCaptureContext
mov ecx, dword [0x5e10f8]
test ecx, ecx
je 0x53677a
push 0
push 0xffffffffffffffff
mov dword [esp + 0x24], ecx
push ecx
call sub.kernel32.dll_WaitForSingleObjectEx
mov eax, dword [0x5e1128]
test eax, eax
jne 0x536623
push str.dbghelp.dll
call sub.kernel32.dll_LoadLibraryA
test eax, eax
mov dword [0x5e1128], eax
je 0x536853
cmp byte [0x5e10fc], 0
jne 0x53699a
mov ecx, dword [0x5e112c]
test ecx, ecx
jne 0x536654
push str.SymGetOptions
push eax
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536993
mov ecx, eax
mov dword [0x5e112c], eax
call ecx
mov ecx, eax
mov eax, dword [0x5e1130]
test eax, eax
jne 0x536682
mov esi, ecx
push str.SymSetOptions
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536993
mov ecx, esi
mov dword [0x5e1130], eax
or ecx, 4
push ecx
call eax
mov esi, dword [0x5e1134]
test esi, esi
jne 0x5366b1
push str.SymInitializeW
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536993
mov esi, eax
mov dword [0x5e1134], eax
call sub.kernel32.dll_GetCurrentProcess
push 1
push 0
push eax
call esi
lea eax, [esp + 0x10]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 0
mov dword [esp + 8], eax
xor edx, edx
lea ecx, [esp + 0xc]
push 2
push 2
push 0x400
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
lea eax, [ebx + edi*2]
push 0x7fe
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov word [ebx + edi*2 + 0x7fe], 0
add edi, 0x400
mov esi, dword [0x5e1138]
mov dword [esp + 0x14], edi
test esi, esi
jne 0x53674c
push str.SymGetSearchPathW
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536eb3
mov esi, eax
mov dword [0x5e1138], eax
call sub.kernel32.dll_GetCurrentProcess
push edi
push ebx
push eax
call esi
cmp eax, 1
jne 0x53686c
push ebx
call sub.kernel32.dll_lstrlenW
test eax, eax
js 0x536f0a
cmp edi, eax
jae 0x5368b7
jmp 0x5368bb
lea eax, [esp + 0xa0]
push 0x21
push 0x5b239e
push eax
call sym._memcpy
add esp, 0xc
call sub.kernel32.dll_GetCurrentProcessId
test eax, eax
je 0x5367d8
mov ecx, 0x1f
nop
cmp ecx, 0x20
ja 0x536ee5
mov edx, eax
mov esi, eax
and dl, 0xf
mov dh, dl
mov ebx, edx
add bl, 0x37
or dh, 0x30
cmp dl, 0xa
movzx edx, dh
movzx ebx, bl
cmovb ebx, edx
shr esi, 4
mov byte [esp + ecx + 0xa0], bl
dec ecx
cmp eax, 0x10
mov eax, esi
jae 0x5367a0
movsd xmm1, qword [esp + 0xb0]
movzx eax, byte [esp + 0xc0]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xa0]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xa8]
mov byte [esp + 0x48], al
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
lea eax, [esp + 0x28]
push eax
push 0
push 0
call sub.kernel32.dll_CreateMutexA
test eax, eax
je 0x53685c
mov ecx, eax
xor eax, eax
lock cmpxchg dword [0x5e10f8], ecx
je 0x5365f5
mov esi, eax
push ecx
call sub.kernel32.dll_CloseHandle
mov ecx, esi
jmp 0x5365f5
push dword [esp + 0x1c]
call sub.kernel32.dll_ReleaseMutex
cmp byte [esp + 3], 0
je 0x536e4f
jmp 0x536e6f
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x53688d
lea ecx, [esp + 0xc]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h9d8f87f058dc2a2e
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
cmp eax, 1
mov word [ebx], 0x2e
mov dword [esp + 0x14], 1
jne 0x5368ac
lea ecx, [esp + 0xc]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h9d8f87f058dc2a2e
mov ebx, dword [esp + 0x10]
mov eax, 2
mov word [ebx + 2], 0x3b
mov dword [esp + 0x14], eax
mov esi, dword [0x5e1140]
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
test esi, esi
mov dword [esp + 0x30], eax
movsd qword [esp + 0x28], xmm0
jne 0x5368f8
push str.EnumerateLoadedModulesW64
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536ec4
mov esi, eax
mov dword [0x5e1140], eax
call sub.kernel32.dll_GetCurrentProcess
lea ecx, [esp + 0x28]
push ecx
push sym.__ZN3std12backtrace_rs7dbghelp28enum_loaded_modules_callback17hcf52af87605dc107E_20
push eax
call esi
movsd xmm0, qword [esp + 0x28]
mov esi, dword [esp + 0x30]
movsd qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], esi
mov ebx, dword [esp + 0xa0]
cmp esi, ebx
jne 0x536942
lea ecx, [esp + 0xa0]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h9d8f87f058dc2a2e
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov word [edi + esi*2], 0
mov esi, dword [0x5e113c]
test esi, esi
jne 0x536978
push str.SymSetSearchPathW
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536ed8
mov esi, eax
mov dword [0x5e113c], eax
call sub.kernel32.dll_GetCurrentProcess
push edi
push eax
call esi
test ebx, ebx
je 0x536993
push edi
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov byte [0x5e10fc], 1
mov eax, dword [0x5e1148]
test eax, eax
mov dword [esp + 8], eax
je 0x5369b3
mov ebx, dword [0x5e114c]
test ebx, ebx
jne 0x536a01
jmp 0x5369e2
push str.SymFunctionTableAccess64
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
mov dword [esp + 8], eax
je 0x536efe
mov eax, dword [esp + 8]
mov dword [0x5e1148], eax
mov ebx, dword [0x5e114c]
test ebx, ebx
jne 0x536a01
push str.SymGetModuleBase64
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536efe
mov ebx, eax
mov dword [0x5e114c], eax
call sub.kernel32.dll_GetCurrentProcess
mov dword [esp + 0x54], eax
mov eax, dword [0x5e1150]
test eax, eax
jne 0x536a30
push str.StackWalkEx
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536c37
mov dword [0x5e1150], eax
mov dword [esp + 0x78], eax
lea eax, [esp + 0xb0]
push 0x100
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x274]
mov ecx, dword [esp + 0x278]
mov edx, dword [esp + 0x284]
mov edi, ebx
xor ebx, ebx
lea esi, [esp + 0xa0]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x1b0], 0x110
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xb4], 3
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe4], 3
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd4], 3
jmp 0x536b0c
inc ebx
cmp byte [esp + 3], 0
jne 0x536e3c
push 0
push 0
push edi
push dword [esp + 0x14]
push 0
lea eax, [esp + 0x1d4]
push eax
lea eax, [esp + 0xc0]
push eax
push dword [esp + 0x74]
push dword [esp + 0x7c]
push 0x14c
call dword [esp + 0xa0]
cmp eax, 1
jne 0x536e3c
push 0
push dword [esp + 0xac]
push dword [esp + 0x5c]
call edi
cmp byte [esp + 4], 0
mov dword [esp + 0x1b8], eax
sete al
cmp ebx, 0x65
setae cl
test al, cl
jne 0x536e3c
lea eax, [esp + 5]
mov byte [esp + 5], 0
mov dword [esp + 0x28], eax
lea eax, [esp + 4]
mov dword [esp + 0x2c], eax
lea eax, [esp + 6]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x34], eax
lea eax, [esp + 7]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 3]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov ecx, esi
lea edx, [esp + 0x28]
call sym.std::backtrace_rs::symbolize::gimli::resolve::h5fb120aff6f7f84a
cmp byte [esp + 5], 0
jne 0x536b00
cmp byte [esp + 6], 1
jne 0x536b00
mov edx, dword [esp + 0xa8]
lea eax, [esp + 0x7c]
mov dword [esp + 0x28], 3
mov dword [esp + 0xc], 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
sub esp, 0x18
lea eax, [esp + 0x24]
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call sym.std::backtrace_rs::print::BacktraceFrameFmt::print_raw_with_column::h8e5b15ba020f57fb
add esp, 0x18
mov ecx, dword [esp + 0x20]
mov byte [esp + 3], al
inc dword [ecx + 0xc]
jmp 0x536b00
lea eax, [esp + 0xb0]
push 0x100
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x274]
mov ecx, dword [esp + 0x278]
mov edx, dword [esp + 0x284]
xor esi, esi
lea edi, [esp + 0xa0]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 1
mov dword [esp + 0x1b8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xb4], 3
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe4], 3
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd4], 3
jmp 0x536cfd
mov ecx, dword [esp + 0x20]
mov byte [esp + 3], al
inc dword [ecx + 0xc]
inc esi
cmp byte [esp + 3], 0
jne 0x536e3c
mov eax, dword [0x5e1144]
test eax, eax
jne 0x536d23
push str.StackWalk64
push dword [0x5e1128]
call sub.kernel32.dll_GetProcAddress
test eax, eax
je 0x536efe
mov dword [0x5e1144], eax
push 0
push ebx
push dword [esp + 0x10]
push 0
lea ecx, [esp + 0x1d0]
push ecx
lea ecx, [esp + 0xbc]
push ecx
push dword [esp + 0x70]
push dword [esp + 0x78]
push 0x14c
call eax
cmp eax, 1
jne 0x536e3c
push 0
push dword [esp + 0xac]
push dword [esp + 0x5c]
call ebx
cmp byte [esp + 4], 0
mov dword [esp + 0x1b8], eax
sete al
cmp esi, 0x65
setae cl
test al, cl
jne 0x536e3c
lea eax, [esp + 5]
mov byte [esp + 5], 0
mov dword [esp + 0x28], eax
lea eax, [esp + 4]
mov dword [esp + 0x2c], eax
lea eax, [esp + 6]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x34], eax
lea eax, [esp + 7]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 3]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edi
mov ecx, edi
lea edx, [esp + 0x28]
call sym.std::backtrace_rs::symbolize::gimli::resolve::h5fb120aff6f7f84a
cmp byte [esp + 5], 0
jne 0x536cf1
cmp byte [esp + 6], 1
jne 0x536cf1
mov edx, dword [esp + 0xa8]
lea eax, [esp + 0x7c]
mov dword [esp + 0x28], 3
mov dword [esp + 0xc], 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
sub esp, 0x18
lea eax, [esp + 0x24]
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
call sym.std::backtrace_rs::print::BacktraceFrameFmt::print_raw_with_column::h8e5b15ba020f57fb
add esp, 0x18
jmp 0x536ce6
push dword [esp + 0x1c]
call sub.kernel32.dll_ReleaseMutex
mov edi, dword [ebp + 0xc]
cmp byte [esp + 3], 0
jne 0x536e6f
cmp byte [esp + 0x1b], 0
jne 0x536e8e
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0xc]
push 0x58
push str.note:_Some_details_are_omitted__run_with__RUST_BACKTRACEfull__for_a_verbose_backtrace._n__rust_begin_short_backtrace__rust_end_short_backtraces_______..._omitted__frame_...__n
push dword [edi + 0x14]
call eax
add esp, 0xc
test al, al
je 0x536e8e
test dword [esp + 0x64], 0x7fffffff
je 0x536e8a
push dword [esp + 0x68]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov al, 1
jmp 0x536eab
test dword [esp + 0x64], 0x7fffffff
je 0x536ea9
push dword [esp + 0x68]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0xc], 0
je 0x536993
push ebx
jmp 0x536986
cmp dword [esp + 0x28], 0
je 0x536993
mov edi, dword [esp + 0x2c]
jmp 0x536985
test ebx, ebx
je 0x536993
jmp 0x536985
mov edx, 0x21
mov ecx, 0xffffffff
push 0x5b23e8
call sym.core::panicking::panic_bounds_check::hf1cd1614d6353f3c
add esp, 4
jmp 0x536f21
mov ecx, 0x5b34c4
call sym.core::option::unwrap_failed::h4002a2165d665d64
jmp 0x536f21
mov edx, 0x1a
mov ecx, 0x5b23f8
push 0x5b2414
call sym.core::panicking::panic::hf6244c8fb5815825
add esp, 4
ud2