Function at 0x423740
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, esi
lea ecx, [edi + 2]
nop word [eax + eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x423760
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
mov dword [ebp - 0x28], edi
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005713c7
mov edx, eax
mov dword [ebp - 0x20], eax
add esp, 4
sub edx, esi
movzx ecx, word [esi]
lea esi, [esi + 2]
mov word [edx + esi - 2], cx
test cx, cx
jne 0x423795
push 0x20
mov byte [ebp - 0x1c], cl
lea ecx, [ebp - 0x1c]
push str.305bb45efadd4cfe91663108028d9f81
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4237f5
cmp eax, 0x10
jb 0x4237e3
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
hlt
cmp eax, 0x10
jb 0x423807
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
xor ebx, ebx
mov dword [ebp - 0x24], ebx
lea esi, [ebx + 1]
test edi, edi
js 0x423a7b
mov eax, dword [ebp - 0x20]
nop word [eax + eax]
cmp word [eax + ebx*2], 0x5c
jne 0x423a6a
push 0x20
push str.ca360f0efd6f906eb05009b748dd24c7
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4238b1
cmp eax, 0x10
jb 0x42389b
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x1000
jb 0x423892
test cl, 0x1f
jne 0x423a9e
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423a9e
sub ecx, eax
cmp ecx, 4
jb 0x423a9e
cmp ecx, 0x23
ja 0x423a9e
mov ecx, eax
push ecx
call fcn.00570ea4
add esp, 4
lea eax, [eax - 0x39]
sbb bl, byte [ebp - 0x3c03b0ad]
invalid
cmp eax, 0x10
jb 0x4238f4
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x1000
jb 0x4238eb
test cl, 0x1f
jne 0x423a9e
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423a9e
sub ecx, eax
cmp ecx, 4
jb 0x423a9e
cmp ecx, 0x23
ja 0x423a9e
mov ecx, eax
push ecx
call fcn.00570ea4
add esp, 4
push 0x20
push str.1add95a7e84d26c5ebf5cf86e1340d4b
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x423984
cmp eax, 0x10
jb 0x423964
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x1000
jb 0x42395b
test cl, 0x1f
jne 0x423a9e
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423a9e
sub ecx, eax
cmp ecx, 4
jb 0x423a9e
cmp ecx, 0x23
ja 0x423a9e
mov ecx, eax
push ecx
call fcn.00570ea4
add esp, 4
push 0x1c
arpl ax, ax
adc ch, bh
stc
mov byte [0x3b7df939], al
int1
js 0x4239a1
cmpsd dword [esi], dword es:[edi]
hlt
cmp eax, 0x10
jb 0x4239c7
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x1000
jb 0x4239be
test cl, 0x1f
jne 0x423a9e
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423a9e
ror dword [edi], 0x83
test byte [eax], 0
add byte [ebx], ch
enter 0xfffffffffffff983, 4
sub ecx, eax
cmp ecx, 4
jb 0x423a9e
cmp ecx, 0x23
ja 0x423a9e
mov ecx, eax
push ecx
call fcn.00570ea4
add esp, 4
push 0x20
push str.ab65dc7761f1bf8d5d5f6fef71e5e72b
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x423a27
cmp eax, 0x10
jb 0x423a06
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
jmp 0xea1e6b68
cmp eax, 0x10
jb 0x423a39
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
mov edi, dword [ebp - 0x20]
xor eax, eax
mov ebx, dword [ebp - 0x24]
push edi
movzx esi, word [edi + ebx*2]
mov word [edi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x423a60
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x423a9a
mov eax, dword [ebp - 0x20]
mov word [edi + ebx*2], si
mov edi, dword [ebp - 0x28]
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, edi
jle 0x423820
mov esi, 1
mov edi, dword [ebp - 0x20]
push edi
call fcn.00570efb
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
xor esi, esi
jmp 0x423a7e
call fcn.0057d383
int3