Function at 0x458c20
Capabilities:
Get file size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x450
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor eax, eax
push edi
mov edi, eax
push eax
mov esi, ecx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
je 0x458f2f
push ebx
call fcn.00440bc3
test eax, eax
je 0x458f2f
or dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0xffffffff
test esi, esi
jne 0x458c76
mov esi, 0x404a10
push 1
push 0x404a8c
push esi
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea ecx, reloc.ADVAPI32.dll_TraceMessage
mov edx, ebx
call fcn.00455c5a
test eax, eax
je 0x458f1a
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
call fcn.00455afc
mov edi, eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
test edi, edi
je 0x458f14
mov eax, 0x103
lea ecx, reloc.ADVAPI32.dll_TraceMessage
mov edx, ebx
call fcn.004402f7
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x42309c
push 4
pop esi
call fcn.00440126
lea eax, reloc.ADVAPI32.dll_TraceMessage
pop ecx
pop ecx
test eax, eax
je 0x458cef
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
xor eax, eax
push 0x41e9d8
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
push edi
jmp 0x458ef5
push edi
push 0x4230bc
push 4
pop esi
call fcn.00440126
pop ecx
pop ecx
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
xor eax, eax
push eax
push edi
push dword [ebp - 0x41c]
call fcn.0044d924
test eax, eax
je 0x458eed
push edi
push dword [ebp - 0x41c]
xor esi, esi
inc esi
call fcn.0044d83f
mov edi, eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
cmp edi, esi
jb 0x458eed
lea eax, reloc.ADVAPI32.dll_TraceMessage
inc esi
push eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
call fcn.00455afc
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
test eax, eax
je 0x458ed3
push 0x41e9d8
push eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call dword [sym.imp.msvcrt.dll_wcsstr]
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x458e14
xor eax, eax
lea esi, [edi + 2]
mov word [edi], ax
movzx eax, word [esi]
xor ecx, ecx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
cmp cx, ax
je 0x458e14
push 0x2c
pop ecx
cmp cx, ax
je 0x458e14
push eax
call dword [sym.imp.msvcrt.dll_iswalnum]
pop ecx
test eax, eax
je 0x458df3
xor esi, esi
inc esi
movzx eax, word [edi + esi*2]
push eax
call dword [sym.imp.msvcrt.dll_iswalnum]
pop ecx
test eax, eax
jne 0x458de1
movzx eax, word [edi + esi*2]
push 0x2e
pop ecx
cmp cx, ax
je 0x458de1
push 0x5f
pop ecx
cmp cx, ax
jne 0x458de7
inc esi
cmp esi, 0x20
jb 0x458dbd
xor eax, eax
mov word [edi + esi*2], ax
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov ecx, esi
lea edx, [ecx + 2]
xor edi, edi
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x458dfa
sub ecx, edx
sar ecx, 1
cmp ecx, 2
jbe 0x458e14
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
mov edi, 0x104
lea edx, reloc.ADVAPI32.dll_TraceMessage
mov eax, edi
lea ecx, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042ca38
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov eax, edi
push esi
lea edi, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c8f1
xor eax, eax
push eax
push 0x80
push 3
push eax
push 1
push 0x80000000
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, reloc.ADVAPI32.dll_TraceMessage
je 0x458ea8
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, eax
cmp edx, reloc.ADVAPI32.dll_TraceMessage
je 0x458e9f
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push edx
xor eax, eax
push esi
or eax, edx
add dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
push 0x4230d8
push 4
adc dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ecx
pop esi
call fcn.00440126
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x458eba
push ebx
push esi
push 0x42310c
push 2
pop esi
call fcn.00440126
add esp, 0xc
push dword [ebp - 0x430]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov edi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
pop ecx
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x458eed
cmp esi, edi
jbe 0x458d4f
push 0x41e9d8
xor eax, eax
push eax
call dword [sym.imp.msvcrt.dll_wcstok]
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x458d02
push dword [ebp - 0x434]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
mov edi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0xffffffff
je 0x458f2f
push dword [ebp - 0x41c]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xe0000102
jne 0x458f47
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, esi
test eax, eax
je 0x458f56
push eax
push ebx
push 0x423148
push 3
jmp 0x458f5f
push edi
push ebx
push 0x423184
push 4
pop esi
call fcn.00440126
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
add esp, 0xc
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.004655f1
leave
ret