Function at 0x525f80
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x304]
sub esp, 0x304
push 0xffffffffffffffff
push 0x5c71ba
mov eax, dword fs:[0]
push eax
sub esp, 0x188
mov eax, dword [0x61f138]
xor eax, ebp
mov dword [ebp + 0x300], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
push 0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 1
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x28], 0
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.00525ba0
test al, al
je 0x526940
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
je 0x526940
lea eax, [ebp - 0x34]
push eax
call fcn.0059dfbe
lea eax, [ebp - 0x34]
push eax
call fcn.0059df18
push eax
push str._Y_m_d__H__M__S
lea eax, [ebp + 0x2b0]
push 0x50
push eax
call fcn.0059b177
lea ecx, [ebp + 0x2b0]
mov dword [ebp + 0x28], 0
add esp, 0x18
mov dword [ebp + 0x2c], 0xf
mov byte [ebp + 0x18], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x526068
sub ecx, edx
lea eax, [ebp + 0x2b0]
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.004462c0
mov byte [ebp - 4], 5
lea edx, [ebp + 0x18]
cmp dword [ebp + 0x2c], 0x10
lea ebx, [ebp + 0x18]
mov esi, dword [ebp + 0x28]
lea ecx, [ebp]
cmovae edx, dword [ebp + 0x18]
add esi, edx
mov dword [ebp + 0x10], 0
cmp dword [ebp + 0x2c], 0x10
mov dword [ebp + 0x14], 7
cmovae ebx, dword [ebp + 0x18]
xor eax, eax
mov word [ebp], ax
mov eax, esi
sub eax, ebx
push eax
call fcn.0044c830
push dword [ebp - 0x1c]
lea ecx, [ebp]
push esi
push ebx
call fcn.0049d750
mov byte [ebp - 4], 6
cmp dword [ebp + 0x31c], 0
je 0x5262e0
lea eax, [ebp + 0x30c]
mov edx, 0x5f2e70
push eax
lea ecx, [ebp + 0x90]
call fcn.00449ce0
push 0x5e3480
mov edx, eax
mov byte [ebp - 4], 7
lea ecx, [ebp + 0x78]
call fcn.0044a240
lea ecx, [ebp + 0x324]
mov byte [ebp - 4], 8
push ecx
mov edx, eax
lea ecx, [ebp + 0x30]
call fcn.0044a2c0
push 0x5e3480
mov edx, eax
mov byte [ebp - 4], 9
lea ecx, [ebp + 0x60]
call fcn.0044a240
lea ecx, [ebp]
mov byte [ebp - 4], 0xa
push ecx
mov edx, eax
lea ecx, [ebp + 0x48]
call fcn.0044a2c0
add esp, 0x14
lea ecx, [ebp]
push eax
call fcn.00441270
mov edx, dword [ebp + 0x5c]
cmp edx, 8
jb 0x526189
mov ecx, dword [ebp + 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52617f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526adf
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 9
mov edx, dword [ebp + 0x74]
mov dword [ebp + 0x58], 0
mov dword [ebp + 0x5c], 7
mov word [ebp + 0x48], ax
cmp edx, 8
jb 0x5261db
mov ecx, dword [ebp + 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5261d1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526ae4
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp + 0x44]
mov dword [ebp + 0x70], 0
mov dword [ebp + 0x74], 7
mov word [ebp + 0x60], ax
cmp edx, 8
jb 0x52622d
mov ecx, dword [ebp + 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526223
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526ae9
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 7
mov edx, dword [ebp + 0x8c]
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x44], 7
mov word [ebp + 0x30], ax
cmp edx, 8
jb 0x526282
mov ecx, dword [ebp + 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526278
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526aee
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 6
mov edx, dword [ebp + 0xa4]
mov dword [ebp + 0x88], 0
mov dword [ebp + 0x8c], 7
mov word [ebp + 0x78], ax
cmp edx, 8
jb 0x5262e0
mov ecx, dword [ebp + 0x90]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5262d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526af3
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea eax, [ebp + 0xa8]
push eax
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x5263a7
push 0
push 0x5ed310
push str.Cant_find_PROGRAMDATA_folder
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub esp, 8
lea ecx, [ebp - 0xe4]
call fcn.00443510
mov edx, str.Screenshot:_cant_find_programdata_folder
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xd4]
call fcn.00449a40
lea eax, [ebp + 0x90]
push eax
lea ecx, [ebp - 0xe4]
call fcn.004433d0
push 0xcc
mov edx, str.screencapture.cpp
mov byte [ebp - 4], 0xc
mov ecx, eax
call fcn.004c2da0
mov edx, dword [ebp + 0xa4]
add esp, 4
cmp edx, 0x10
jb 0x526397
mov ecx, dword [ebp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x52638d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526af8
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea ecx, [ebp - 0xe4]
call fcn.0043aef0
jmp 0x5268c2
lea edi, [ebp + 0xa8]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x5263b0
mov ecx, 0xb
lea eax, [ebp + 0xa8]
mov esi, str.AeroadminScreenshots
rep movsd dword es:[edi], dword [esi]
push 0
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x526491
sub esp, 8
lea ecx, [ebp - 0xe4]
call fcn.00442390
mov edx, str.Screenshot:_Cant_create_directory
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xd4]
call fcn.0044a500
lea edx, [ebp + 0xa8]
mov ecx, eax
call fcn.0044a500
lea eax, [ebp + 0x90]
push eax
lea ecx, [ebp - 0xcc]
call fcn.004466f0
push 0xd2
mov edx, str.screencapture.cpp
mov byte [ebp - 4], 0xe
lea ecx, [ebp + 0x90]
call fcn.004c37b0
mov byte [ebp - 4], 0xd
add esp, 4
mov edx, dword [ebp + 0xa4]
cmp edx, 8
jb 0x526482
mov ecx, dword [ebp + 0x90]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526478
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526afd
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 6
call fcn.0043ae30
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
lea ecx, [ebp + 0x90]
lea eax, [ebp + 0xa8]
push eax
jne 0x526565
call fcn.00441310
push eax
mov edx, str.Cant_create_folder:
mov byte [ebp - 4], 0xf
lea ecx, [ebp + 0x78]
call fcn.004967c0
mov edx, dword [ebp + 0xa4]
add esp, 4
cmp edx, 8
jb 0x526507
mov ecx, dword [ebp + 0x90]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5264fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b02
push edx
push ecx
call fcn.0056eec5
add esp, 8
cmp dword [ebp + 0x8c], 8
lea eax, [ebp + 0x78]
push 0
cmovae eax, dword [ebp + 0x78]
push 0x5ed310
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [ebp + 0x8c]
cmp edx, 8
jb 0x5268c2
mov ecx, dword [ebp + 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5268b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b07
jmp 0x5268b8
call fcn.00441310
push 0x5f210c
mov edx, eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp + 0x30]
call fcn.0044a240
lea ecx, [ebp]
mov byte [ebp - 4], 0x11
push ecx
mov edx, eax
lea ecx, [ebp + 0x78]
call fcn.0044a2c0
push str..jpeg
mov edx, eax
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0x60]
call fcn.0044a240
add esp, 0xc
mov byte [ebp - 4], 0x14
mov edx, dword [ebp + 0x8c]
cmp edx, 8
jb 0x5265e6
mov ecx, dword [ebp + 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5265dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b0c
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov dword [ebp + 0x88], 0
mov dword [ebp + 0x8c], 7
mov word [ebp + 0x78], ax
mov byte [ebp - 4], 0x15
mov edx, dword [ebp + 0x44]
cmp edx, 8
jb 0x52663e
mov ecx, dword [ebp + 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526634
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b11
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x44], 7
mov word [ebp + 0x30], ax
mov byte [ebp - 4], 0x16
mov edx, dword [ebp + 0xa4]
cmp edx, 8
jb 0x526696
mov ecx, dword [ebp + 0x90]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52668c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b16
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov dword [ebp + 0xa0], 0
cmp dword [ebp + 0x74], 8
lea ecx, [ebp - 0xe4]
mov word [ebp + 0x90], ax
lea eax, [ebp + 0x60]
cmovae eax, dword [ebp + 0x60]
sub esp, 0xc
mov dword [ebp + 0xa4], 7
push eax
call fcn.00526c10
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xe4], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xe8], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
sub ecx, eax
push 0
push ecx
push eax
lea ecx, [ebp - 0xe4]
call fcn.00506a20
lea ecx, [ebp - 0xe0]
call fcn.00507640
test eax, eax
jne 0x526749
mov eax, dword [ebp - 0xe4]
lea ecx, [ebp - 0xe4]
push 0
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.004367c0
lea eax, [ebp + 0x60]
mov edx, str.Screenshot:
push eax
lea ecx, [ebp + 0x48]
call fcn.00449ce0
add esp, 4
mov byte [ebp - 4], 0x18
lea eax, [ebp + 0x48]
cmp dword [ebp + 0x5c], 8
push 0
cmovae eax, dword [ebp + 0x48]
push 0x5e2f5c
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub esp, 8
lea ecx, [ebp - 0x194]
call fcn.00442390
mov edx, str.Screenshot_saved
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x184]
call fcn.0044a500
cmp dword [ebp + 0x74], 8
lea edx, [ebp + 0x60]
push dword [ebp + 0x70]
cmovae edx, dword [ebp + 0x60]
mov ecx, eax
call fcn.0044d4b0
add esp, 4
lea eax, [ebp + 0x90]
lea ecx, [ebp - 0x17c]
push eax
call fcn.004466f0
push 0xe3
mov edx, str.screencapture.cpp
mov byte [ebp - 4], 0x1a
lea ecx, [ebp + 0x90]
call fcn.004c37b0
mov edx, dword [ebp + 0xa4]
add esp, 4
cmp edx, 8
jb 0x526824
mov ecx, dword [ebp + 0x90]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52681a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b1b
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea ecx, [ebp - 0x194]
call fcn.0043ae30
mov edx, dword [ebp + 0x5c]
cmp edx, 8
jb 0x526869
mov ecx, dword [ebp + 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52685f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b20
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov dword [ebp + 0x58], 0
lea ecx, [ebp - 0xe4]
mov dword [ebp + 0x5c], 7
mov word [ebp + 0x48], ax
call fcn.00526b50
mov edx, dword [ebp + 0x74]
cmp edx, 8
jb 0x5268c2
mov ecx, dword [ebp + 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5268b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b25
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp + 0x14]
cmp edx, 8
jb 0x5268fc
mov ecx, dword [ebp]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5268f2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b2a
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp + 0x2c]
cmp edx, 0x10
jb 0x526930
mov ecx, dword [ebp + 0x18]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x526926
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b2f
push edx
push ecx
call fcn.0056eec5
add esp, 8
push dword [ebp - 0x1c]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
xor esi, esi
jmp 0x5269d4
sub esp, 8
lea ecx, [ebp - 0x194]
call fcn.00443510
mov edx, str.Cant_take_screenshot
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x184]
call fcn.00449a40
lea eax, [ebp + 0x90]
push eax
lea ecx, [ebp - 0x194]
call fcn.004433d0
push 0xb2
mov edx, str.screencapture.cpp
mov byte [ebp - 4], 4
mov ecx, eax
call fcn.004c2da0
mov edx, dword [ebp + 0xa4]
add esp, 4
cmp edx, 0x10
jb 0x5269c6
mov ecx, dword [ebp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5269bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b34
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea ecx, [ebp - 0x194]
call fcn.0043aef0
or esi, 0xffffffff
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x526a1d
mov edx, dword [ebp - 0x10]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x5269fe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b39
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov edx, dword [ebp + 0x320]
cmp edx, 8
jb 0x526a5d
mov ecx, dword [ebp + 0x30c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526a53
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b3e
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp + 0x338]
xor eax, eax
mov dword [ebp + 0x31c], 0
mov dword [ebp + 0x320], 7
mov word [ebp + 0x30c], ax
cmp edx, 8
jb 0x526aba
mov ecx, dword [ebp + 0x324]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x526ab0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x526b43
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x300]
xor ecx, ebp
call fcn.0056eeb4
lea esp, [ebp + 0x304]
pop ebp
ret
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
int3