Function at 0x4589a0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x434
mov eax, dword [0x509354]
xor eax, esp
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x438]
push ebx
mov ebx, dword [sym.imp.ole32.dll_CoCreateInstance]
push ebp
mov ebp, dword [esp + 0x448]
push esi
push edi
mov dword [esp + 0x34], edx
lea edx, [esp + 0x14]
push edx
xor edi, edi
push 0x4eb1d8
push 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x460]
push edi
push eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x30], edi
call ebx
mov esi, eax
cmp esi, edi
jl 0x458c9f
cmp dword [esp + 0x14], edi
jne 0x458a3a
mov ebx, dword [esp + 0x10]
mov esi, 0x80004005
jmp 0x458cb3
lea eax, [esp + 0x20]
push eax
push 0x4f6a80
push 1
push edi
push 0x4cfba0
call ebx
mov esi, eax
cmp esi, edi
jl 0x458c9f
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x458c9a
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x18]
push 0x4eb1d8
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
cmp esi, edi
jl 0x458c9f
cmp dword [esp + 0x24], edi
je 0x458c9a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push 0x4eb278
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jl 0x458be8
cmp dword [esp + 0x28], edi
je 0x458be8
lea ecx, [esp + 0x1c]
push ecx
push 1
push edi
mov dword [esp + 0x24], edi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov esi, eax
cmp esi, edi
jl 0x458c9f
cmp dword [esp + 0x1c], edi
je 0x458c9a
push edi
push 0x80
push 3
push edi
push edi
push SysReAllocString
mov ecx, ebp
call fcn.00402721
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x458bde
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
lea edx, [esp + 0x1c]
push edx
push 0x400
lea eax, [esp + 0x4c]
push eax
push ebx
call esi
test eax, eax
je 0x458bde
mov ecx, dword [esp + 0x18]
cmp ecx, edi
jbe 0x458b6a
lea ecx, [ecx]
mov eax, dword [esp + 0x1c]
lea ebp, [esp + 0x10]
push ebp
push ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], edi
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push ecx
push eax
call edx
push edi
lea eax, [esp + 0x1c]
push eax
push 0x400
lea ecx, [esp + 0x4c]
push ecx
push ebx
call esi
test eax, eax
je 0x458bde
mov ecx, dword [esp + 0x18]
cmp ecx, edi
ja 0x458b30
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
push edi
push ecx
push eax
mov dword [esp + 0x1c], 0xffffffff
call edx
mov esi, eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, edi
jl 0x458c9f
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x20]
push 0x4eb1b8
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
cmp esi, edi
jl 0x458c9f
cmp dword [esp + 0x2c], edi
je 0x458c9a
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x458c3a
mov esi, 0x80004005
jmp 0x458ca3
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], edi
mov ecx, dword [eax]
push 0x4eb268
push eax
mov eax, dword [ecx]
call eax
mov esi, eax
cmp esi, edi
jl 0x458c9f
mov esi, dword [esp + 0x18]
cmp esi, edi
je 0x458c9a
mov ebx, dword [esi]
push edi
mov ecx, ebp
call fcn.00402721
mov ecx, dword [ebx + 0xc]
push eax
push esi
call ecx
mov esi, eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
cmp esi, edi
jl 0x458c9f
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
cmp esi, edi
jl 0x458c9f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
call edx
mov esi, eax
cmp esi, edi
jl 0x458c9f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x458c80
xor eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, edi
je 0x458c8e
mov edx, dword [esp + 0x24]
mov dword [ecx], edx
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x458cf9
mov dword [ecx], eax
jmp 0x458cf9
mov esi, 0x80004005
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x458cb3
mov ecx, dword [eax]
mov edx, dword [ecx + 0x18]
push eax
call edx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x458cc3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp ebx, 0xffffffff
je 0x458ccf
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x458ce4
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esp + 0x2c]
cmp ecx, edi
je 0x458cf9
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esp + 0x440]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048e25d
add esp, 0x434
ret