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
adc eax, 0xbc8e702f
insd dword es:[edi], dx
invalid
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
xchg ecx, eax
dec eax
in eax, dx
or eax, 0xb0549319
les edi, [eax + 0x7b]
xlatb
rcl byte [edx + ecx + 0x75]
loop 0x42389d
xlatb
and ebp, ebx
inc ebx
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
fadd dword [esi + 0x8bcc8f4]
xor dword [edi], ecx
pop ebx
adc al, 0xb5
cmp eax, 0x7913f4ae
adc eax, 0xf3abcad5
dec edi
pop ebx
inc edi
pop edx
sub al, 0xf8
dec esi
jmp 0x4239c7
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
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
jne 0x423a17
std
cdq
retf 0x9fd2
movups xmmword [ebx + 0xd], xmm0
mov byte es:[edi + 0x559d45f8], dl
sub cl, byte [esi - 0xe]
jmp 0x423a39
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