Function at 0x45b140
Capabilities:
Create directory
Get memory capacity
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov ecx, dword [0x6962c8]
push ebx
push esi
push edi
mov eax, dword [ecx]
push 0x148
call dword [eax + 0xc]
mov esi, eax
mov dword [ebp - 8], eax
test esi, esi
je 0x45b18f
push dword [ebp + 0xc]
mov ecx, esi
call fcn.0045a1f0
push dword [ebp + 8]
lea ecx, [esi + 0xa0]
call fcn.0045a4a0
push 0x38
lea eax, [esi + 0x110]
push 0
push eax
call fcn.005d6d60
add esp, 0xc
jmp 0x45b194
xor esi, esi
mov dword [ebp - 8], esi
push 0x38
lea eax, [esi + 0x110]
mov dword [0x69f344], esi
push 0
push eax
call fcn.005d6d60
push 0
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push eax
push str.add_file_to_report
call fcn.00453220
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x45b271
nop
mov edi, dword [0x69f344]
test edi, edi
je 0x45b251
test ebx, ebx
je 0x45b251
cmp byte [ebx], 0
je 0x45b251
push 0
push 0
push 0
push 0
push 0
push 0x14
add edi, 0x34
call fcn.0049f9b0
add esp, 0x18
mov esi, eax
lea eax, [ebp - 1]
push eax
push ebx
lea ecx, [esi + 8]
call fcn.0043f3e0
mov dword [esi], edi
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov eax, dword [edi + 4]
mov dword [eax], esi
inc dword [edi + 8]
mov dword [edi + 4], esi
call fcn.0045c000
mov ecx, dword [0x69f340]
test ecx, ecx
je 0x45b251
cmp dword [ecx + 0x3c], 8
lea eax, [ecx + 0x28]
jb 0x45b236
mov eax, dword [eax]
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x45b241
mov ecx, dword [ecx]
push eax
push ecx
push dword [0x69f344]
call fcn.0045b840
add esp, 0xc
push 0
lea eax, [ebp - 0xc]
push eax
push str.add_file_to_report
call fcn.00453220
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x45b1d0
mov esi, dword [ebp - 8]
cmp dword [0x69f330], 0
jne 0x45b2b7
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x45b29e
cmp dword [ebp - 0x30], 0
ja 0x45b29e
cmp dword [ebp - 0x34], 0x80000000
jbe 0x45b2b7
push 0
push 0x2000
push 0x3200000
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x69f330], eax
mov ecx, dword [0x6a3d5c]
mov eax, dword fs:[0x2c]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x74], 0
jne 0x45b2d4
call fcn.005b0c6f
mov eax, dword [edi + 0x78]
mov edi, 0xb
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dl, byte [esi + 0x27]
test dl, dl
jns 0x45b303
mov ecx, dword [esi + 0x20]
jmp 0x45b30a
movzx eax, dl
mov ecx, edi
sub ecx, eax
test ecx, ecx
je 0x45b336
test dl, dl
jns 0x45b31a
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
jmp 0x45b324
movzx eax, dl
lea ebx, [esi + 0x1c]
mov ecx, edi
sub ecx, eax
push ecx
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.005db3b0
add esp, 0xc
mov edx, eax
jmp 0x45b33b
mov edx, 0x5ff810
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45b340
sub ecx, ebx
sar ecx, 1
push ecx
push edx
mov ecx, 0x68d5d8
call fcn.0045af90
mov dl, byte [esi + 0x4b]
test dl, dl
jns 0x45b367
mov ecx, dword [esi + 0x44]
jmp 0x45b36e
movzx eax, dl
mov ecx, edi
sub ecx, eax
test ecx, ecx
je 0x45b398
test dl, dl
jns 0x45b37e
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x44]
jmp 0x45b386
movzx eax, dl
lea ecx, [esi + 0x40]
sub edi, eax
push edi
push ecx
lea eax, [ebp - 0x1c]
push eax
call fcn.005db3b0
add esp, 0xc
mov edx, eax
jmp 0x45b39d
mov edx, 0x5ff810
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45b3a2
sub ecx, edi
sar ecx, 1
push ecx
push edx
mov ecx, 0x68d5f0
call fcn.0045af90
mov ecx, dword [0x6962c8]
push 0xc8
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
je 0x45b403
mov edi, dword [0x69f344]
call fcn.0045b830
mov esi, eax
call fcn.0045b820
push 0
push 0
push 0x40
push 7
push edi
push esi
push eax
push 0x68d5d8
mov ecx, ebx
call fcn.004b7f60
mov esi, dword [ebp - 8]
mov ecx, eax
jmp 0x45b405
xor ecx, ecx
mov al, byte [esi + 2]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x6021dc
push str.kernelbase
mov dword [0x69f340], ecx
mov byte [ecx + 0xbd], al
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov edi, eax
test edi, edi
jne 0x45b44a
push 0x6021dc
push 0x602204
call esi
push eax
call ebx
mov edi, eax
test edi, edi
je 0x45b46f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
lea eax, [ebp - 8]
push eax
push 7
push 0x6021d4
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 7
push edi
push esi
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov ecx, dword [0x69f340]
cmp dword [ecx + 0x3c], 8
lea eax, [ecx + 0x28]
pop edi
pop esi
pop ebx
jb 0x45b483
mov eax, dword [eax]
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x45b48e
mov ecx, dword [ecx]
push eax
push ecx
push dword [0x69f344]
call fcn.0045b840
add esp, 0xc
cmp dword [0x68d5e8], 0
je 0x45b4c3
cmp dword [0x68d5ec], 8
mov eax, 0x68d5d8
push 0
cmovae eax, dword [0x68d5d8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x45b4d3
mov ecx, dword [ebp - 0x18]
push edx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov esp, ebp
pop ebp
ret