Function at 0x5a3b40
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x850
mov eax, dword [0x82aea4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
push esi
mov dword [ebp - 0x850], esi
call dword [sym.imp.MSVCR100.dll__mkdir]
add esp, 4
test eax, eax
je 0x5a3ba9
push 0
push 0x739a20
push 0x3d
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3ba9
push esi
push str.could_not_create_directory___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push edi
call sym.postgres.exe_AllocateDir
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x5a3bf0
push eax
push 0x739a20
push 0x43
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3bf0
push edi
push str.could_not_open_directory___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push edi
push ebx
call sym.postgres.exe_ReadDir
mov esi, eax
add esp, 8
test esi, esi
je 0x5a3d99
jmp 0x5a3c10
mov eax, dword [sym.postgres.exe_pg_signal_mask]
mov ecx, dword [sym.postgres.exe_pg_signal_queue]
not eax
test eax, ecx
je 0x5a3c26
call sym.postgres.exe_pgwin32_dispatch_queued_signals
mov dl, byte [sym.postgres.exe_InterruptPending]
test dl, dl
je 0x5a3c35
call sym.postgres.exe_ProcessInterrupts
add esi, 8
mov ecx, 0x6c0144
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5a3c60
test dl, dl
je 0x5a3c5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5a3c60
add eax, 2
add ecx, 2
test dl, dl
jne 0x5a3c40
xor eax, eax
jmp 0x5a3c65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5a3d85
mov ecx, 0x6c0140
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5a3c94
test dl, dl
je 0x5a3c90
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5a3c94
add eax, 2
add ecx, 2
test dl, dl
jne 0x5a3c74
xor eax, eax
jmp 0x5a3c99
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5a3d85
push esi
push edi
push 0x6b04b0
lea eax, [ebp - 0x804]
push 0x400
push eax
call sym.postgres.exe_pg_snprintf
mov ecx, dword [ebp - 0x850]
push esi
push ecx
push 0x6b04b0
lea edx, [ebp - 0x404]
push 0x400
push edx
call sym.postgres.exe_pg_snprintf
lea eax, [ebp - 0x84c]
push eax
lea ecx, [ebp - 0x804]
push ecx
call sym.postgres.exe_pgwin32_safestat
add esp, 0x30
test eax, eax
jns 0x5a3d30
push 0
push 0x739a20
push 0x56
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3d30
lea edx, [ebp - 0x804]
push edx
push str.could_not_stat_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
mov eax, dword [ebp - 0x846]
and eax, 0xf000
mov ecx, 0x4000
cmp ax, cx
jne 0x5a3d65
cmp byte [ebp + 0x10], 0
je 0x5a3d85
push 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x804]
push eax
call sym.postgres.exe_copydir
add esp, 0xc
jmp 0x5a3d85
mov ecx, 0x8000
cmp ax, cx
jne 0x5a3d85
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x804]
push eax
call sym.postgres.exe_copy_file
add esp, 8
push edi
push ebx
call sym.postgres.exe_ReadDir
mov esi, eax
add esp, 8
test esi, esi
jne 0x5a3c10
push ebx
call sym.postgres.exe_FreeDir
mov ebx, dword [ebp - 0x850]
push ebx
call sym.postgres.exe_AllocateDir
mov edi, eax
add esp, 8
test edi, edi
jne 0x5a3dec
push eax
push 0x739a20
push 0x6a
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3dec
push ebx
push str.could_not_open_directory___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push ebx
push edi
call sym.postgres.exe_ReadDir
add esp, 8
test eax, eax
je 0x5a3fc6
mov edi, edi
lea esi, [eax + 8]
mov ecx, 0x6c0144
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5a3e30
test dl, dl
je 0x5a3e2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5a3e30
add eax, 2
add ecx, 2
test dl, dl
jne 0x5a3e10
xor eax, eax
jmp 0x5a3e35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5a3fb4
mov ecx, 0x6c0140
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5a3e64
test dl, dl
je 0x5a3e60
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5a3e64
add eax, 2
add ecx, 2
test dl, dl
jne 0x5a3e44
xor eax, eax
jmp 0x5a3e69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5a3fb4
push esi
push ebx
push 0x6b04b0
lea ecx, [ebp - 0x404]
push 0x400
push ecx
call sym.postgres.exe_pg_snprintf
lea edx, [ebp - 0x828]
push edx
lea eax, [ebp - 0x404]
push eax
call sym.postgres.exe_pgwin32_safestat
add esp, 0x1c
test eax, eax
jns 0x5a3ee2
push 0
push 0x739a20
push 0x7d
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3ee2
lea ecx, [ebp - 0x404]
push ecx
push str.could_not_stat_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
mov edx, dword [ebp - 0x822]
and edx, 0xf000
cmp edx, 0x8000
jne 0x5a3fb4
push 0x180
lea eax, [ebp - 0x404]
push 0x8002
push eax
call sym.postgres.exe_BasicOpenFile
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x5a3f5b
push 0
push str.fsync_fname
push 0xff
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3f5b
lea ecx, [ebp - 0x404]
push ecx
push str.could_not_open_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push esi
call sym.postgres.exe_pg_fsync
add esp, 4
test eax, eax
je 0x5a3faa
push 0
push str.fsync_fname
push 0x10d
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a3faa
lea edx, [ebp - 0x404]
push edx
push str.could_not_fsync_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push esi
call dword [sym.imp.MSVCR100.dll__close]
add esp, 4
push ebx
push edi
call sym.postgres.exe_ReadDir
add esp, 8
test eax, eax
jne 0x5a3e00
push edi
call sym.postgres.exe_FreeDir
push 0x180
push 0x8000
push ebx
call sym.postgres.exe_BasicOpenFile
mov edi, dword [sym.imp.MSVCR100.dll__errno]
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x5a403d
call edi
cmp dword [eax], 0x15
je 0x5a4097
call edi
cmp dword [eax], 0xd
je 0x5a4097
push 0
push str.fsync_fname
push 0xff
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a403d
push ebx
push str.could_not_open_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push esi
call sym.postgres.exe_pg_fsync
add esp, 4
test eax, eax
je 0x5a408d
call edi
cmp dword [eax], 9
je 0x5a408d
push 0
push str.fsync_fname
push 0x10d
push str.src_backend_storage_filecopydir.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x5a408d
push ebx
push str.could_not_fsync_file___s_:__m
call sym.postgres.exe_errmsg
add esp, 8
push eax
call sym.postgres.exe_errcode_for_file_access
push eax
call sym.postgres.exe_errfinish
add esp, 8
push esi
call dword [sym.imp.MSVCR100.dll__close]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret