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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov dword [esp + 8], str.PhysicalDisk
mov dword [esp + 0xc], str.Print_physical_disk_information
mov dword [esp + 0x10], dbg.ffParsePhysicalDiskCommandOptions
mov dword [esp + 0x14], dbg.ffParsePhysicalDiskJsonObject
mov dword [esp + 0x18], dbg.ffPrintPhysicalDisk
mov dword [esp + 0x1c], dbg.ffGeneratePhysicalDiskJsonResult
mov dword [esp + 0x20], dbg.ffPrintPhysicalDiskHelpFormat
mov dword [esp + 0x24], dbg.ffGeneratePhysicalDiskJsonConfig
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [0x5052b0]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], ecx
mov word [esp + 0x5c], 0x2800
mov byte [esp + 0x5e], 0x3c
lea ecx, [edi + 0x20]
push ecx
push eax
push dword [esp + 0x88]
push esi
call dbg.ffJsonConfigGenerateModuleArgsConfig
add esp, 0x10
mov ebp, dword [edi + 0x4c]
mov ecx, dword [edi + 0x50]
mov eax, dword [esp + 0x54]
cmp ebp, eax
cmovb eax, ebp
inc eax
push eax
push dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
push ecx
call sym._memcmp
add esp, 0xc
test eax, eax
je 0x4517dd
cmp dword [esp + 0x80], 0
je 0x4517dd
test esi, esi
je 0x4517dd
cmp dword [esp + 4], 0
je 0x4517dd
mov eax, dword [esp + 0x80]
mov eax, dword [eax]
not eax
test al, 7
jne 0x4517dd
lea ebx, [esi + 0x28]
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
sub eax, edi
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp eax, 1
jbe 0x4518db
lea eax, [edi + 0x30]
mov dword [ebx], eax
test edi, edi
je 0x4517dd
mov eax, dword [esp + 0x80]
mov ebx, dword [eax + 1]
mov dword [edi + 4], 0
mov dword [edi], 0xa0d
mov dword [edi + 8], str.namePrefix
lea edx, [esi + 0x14]
mov eax, esi
mov esi, dword [esi + 0x14]
mov eax, dword [eax + 0x18]
sub eax, esi
cmp eax, ebp
jbe 0x4518f9
lea eax, [esi + ebp]
inc eax
mov dword [edx], eax
test esi, esi
je 0x45191d
push ebp
push dword [esp + 8]
push esi
call sym._memcpy
add esp, 0xc
mov byte [esi + ebp], 0
lea eax, [edi + 0x18]
mov dword [edi + 0x20], esi
mov ecx, ebp
shr ecx, 0x18
shl ebp, 8
or ebp, 5
mov dword [edi + 0x18], ebp
mov dword [edi + 0x1c], ecx
mov ecx, edi
test ebx, ebx
mov esi, dword [esp + 0x80]
je 0x4517bd
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x10], edi
mov dword [edi + 0x28], ecx
mov dword [edi + 0x10], eax
mov dword [esi + 8], edi
inc ebx
movzx eax, byte [esi]
mov ecx, ebx
shr ecx, 0x18
shl ebx, 8
or ebx, eax
mov dword [esi + 4], ecx
mov dword [esi], ebx
mov esi, dword [esp + 0x7c]
movzx eax, byte [esp + 0x5c]
mov edi, dword [esp + 0x78]
movzx ecx, byte [edi + 0x54]
movzx edx, word [esp + 0x5d]
mov word [esp], dx
movzx edx, word [edi + 0x55]
mov word [esp + 0x60], dx
sub esp, 0x18
mov word [esp + 0x14], dx
movzx edx, word [esp + 0x18]
mov word [esp + 0xc], dx
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp], esi
call dbg.ffTempsGenerateJsonConfig
add esp, 0x18
cmp dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
je 0x45184f
mov dword [esp + 0x28], 0
push dword [esp + 0x30]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
je 0x451880
mov dword [esp + 0x34], 0
push dword [esp + 0x3c]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
je 0x4518ac
mov dword [esp + 0x40], 0
push dword [esp + 0x48]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
je 0x4518d3
mov dword [esp + 0x50], 0
push dword [esp + 0x58]
call sym._free
add esp, 4
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esi + 4]
push 2
push eax
push ebx
call dbg.unsafe_yyjson_val_pool_grow
add esp, 0xc
test al, al
je 0x4517dd
mov edi, dword [ebx]
jmp 0x45172d
mov eax, dword [esp + 0x7c]
add eax, 4
lea ecx, [ebp + 1]
push ecx
push eax
mov esi, edx
push edx
call dbg.unsafe_yyjson_str_pool_grow
add esp, 0xc
test al, al
je 0x45191d
mov edx, esi
mov esi, dword [esi]
jmp 0x45176d
mov dword [edi + 0x20], 0
jmp 0x4517d9