Function at 0x415431
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x14c
mov eax, 0x435769
call fcn.0043328e
mov dword [ebp - 0x148], ecx
mov esi, dword [ebp + 8]
mov ebx, esi
mov dword [ebp - 0x150], esi
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x415258
and dword [ebp - 0x140], 0
sub ebx, ecx
and dword [ebp - 0x138], 0
mov ecx, esi
mov dword [ebp - 0x134], ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41527a
sub ecx, edx
lea eax, [ecx + 0x65]
mov ecx, 0x208
mov dword [ebp - 0x14c], ecx
cmp eax, ecx
jb 0x4152ac
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41529a
sub ecx, edx
add ecx, 0x65
mov dword [ebp - 0x14c], ecx
xor eax, eax
lea edi, [ebp - 0x12c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - method.CArkAutoByte.virtual_0], vtable.CArkAutoByte.0
push ecx
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], eax
call fcn.0040a178
mov ecx, dword [ebp - 0x128]
test ecx, ecx
je case.default.0x41542a
mov edi, ecx
mov edx, esi
sub edi, esi
mov dword [ebp - 0x154], edi
mov al, byte [edx]
mov byte [edi + edx], al
inc edx
test al, al
jne 0x4152f8
cmp ebx, 5
jl case.default.0x41542a
mov edi, dword [ebp - 0x148]
lea eax, [ecx - 3]
add eax, ebx
mov dword [ebp - 0x130], eax
mov bl, byte [eax]
mov eax, dword [edi + 0x5c]
cmp eax, 7
jne 0x415344
cmp bl, 0x65
jne 0x415333
add bl, 0xd
jmp 0x4153d3
cmp bl, 0x45
jne 0x4153d3
add bl, 0xd
jmp 0x4153d3
mov dl, bl
cmp eax, 2
jne 0x41536a
mov al, bl
cmp bl, 0x6a
je 0x41535f
cmp al, 0x4a
jne 0x41535a
mov bl, 0x5a
jmp 0x4153d3
cmp bl, 0x6c
jne 0x415363
mov bl, 0x7a
jmp 0x4153d3
cmp bl, 0x4c
jne 0x4153d3
jmp 0x415356
mov bl, dl
cmp eax, 3
jne 0x415385
cmp dl, 0x69
jne 0x41537b
add bl, 0xf
jmp 0x4153d3
cmp bl, 0x49
jne 0x4153d3
add bl, 0xf
jmp 0x4153d3
cmp eax, 6
je 0x41538f
cmp eax, 8
jne 0x4153d3
call fcn.004148d6
mov edx, eax
mov dword [ebp - 0x140], edx
test edx, edx
je case.default.0x41542a
lea ecx, [edx - 1]
mov dword [ebp - 0x138], 1
cmp byte [ecx], 0x30
jne 0x4153d3
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x4153cd
inc dword [ebp - 0x138]
dec edx
dec ecx
cmp byte [ecx], 0x30
je 0x4153bc
mov dword [ebp - 0x140], edx
push 0x2e
push esi
call fcn.0041f3c0
mov edx, eax
mov dword [ebp - 0x144], edx
pop ecx
pop ecx
test edx, edx
je 0x4153ff
mov ecx, edx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4153ee
sub ecx, edx
mov edx, dword [ebp - 0x144]
jmp 0x415401
xor ecx, ecx
and dword [ebp - 0x13c], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push 0xa
pop eax
cmp esi, 0x5f5e100
jge 0x4156ef
mov eax, dword [edi + 0x5c]
dec eax
cmp eax, 0x10
ja case.default.0x41542a
jmp dword [eax*4 + 0x415799]
push esi
push 0x43d03c
push 0x64
pop eax
jmp 0x4155de
push esi
movsx eax, bl
push eax
push 0x43d044
push 0x64
pop eax
push eax
push dword [ebp - 0x130]
call fcn.00416572
add esp, 0x14
jmp 0x4155ed
push 0x64
mov eax, esi
movsx ecx, bl
pop esi
cdq
idiv esi
push edx
add ecx, eax
push ecx
push 0x43d044
push esi
jmp 0x41544d
mov eax, dword [ebp - 0x128]
sub eax, ecx
mov ecx, dword [ebp - 0x134]
push esi
dec ecx
push 0x43d04c
add eax, ecx
push 0xc
push eax
mov dword [ebp - 0x18], eax
call fcn.00416572
add esp, 0x10
push dword [ebp - 0x128]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4154b5
test al, 0x10
je 0x4155ed
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x154]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x4154c1
push dword [ebp - 0x144]
push esi
push str._d_s
push 0xc
push dword [ebp - 0x18]
jmp 0x415453
mov eax, dword [ebp - 0x138]
mov ecx, eax
test eax, eax
je 0x41550f
mov edi, dword [ebp - 0x140]
mov eax, esi
push 0xa
pop esi
cdq
idiv esi
add dl, 0x30
mov esi, eax
mov byte [edi + ecx - 1], dl
sub ecx, 1
jne 0x4154f3
mov edi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x128]
call fcn.00414a0e
jmp 0x4155ed
lea eax, [esi + 1]
push eax
jmp 0x415432
push esi
push 0x43d05c
push 0x64
pop eax
push eax
mov ecx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x128]
add ecx, 0xfffffffe
add eax, ecx
push eax
jmp 0x4155e5
cmp dword [ebp - 0x13c], 0x190
jg case.default.0x41542a
push dword [ebp - 0x14c]
mov ecx, edi
push dword [ebp - 0x128]
call fcn.00416138
test eax, eax
mov eax, dword [ebp - 0x128]
jne 0x4155f3
mov byte [eax], 0
jmp 0x4155f3
push edx
lea eax, [esi + 1]
push eax
mov eax, dword [ebp - 0x128]
sub eax, ecx
mov ecx, dword [ebp - 0x134]
push str._02d_s
add ecx, 0xfffffffe
push 0xc
add eax, ecx
push eax
jmp 0x415453
push edx
lea eax, [esi + 1]
push eax
mov eax, dword [ebp - 0x128]
sub eax, ecx
mov ecx, dword [ebp - 0x134]
push str._03d_s
add ecx, 0xfffffffd
jmp 0x415596
push esi
push 0x43d05c
push 6
jmp 0x415532
push 0x64
pop eax
push esi
cmp esi, eax
jge 0x4155d9
push 0x43d074
jmp 0x4155de
push 0x43d03c
push eax
push dword [ebp - 0x130]
call fcn.00416572
add esp, 0x10
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4156ec
test al, 0x10
jne 0x4156ec
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x415632
mov eax, dword [ecx]
lea esi, [edi + 0x64]
push esi
push dword [ebp - 0x13c]
push 0
push dword [ebp - 0x128]
push ecx
call dword [eax]
cmp dword [esi], 0
jne case.default.0x41542a
push 0x50
call fcn.0041d923
pop ecx
push 0x50
mov esi, eax
push 0
push esi
mov dword [ebp - 0x18], esi
call fcn.0041fa80
pop ecx
pop ecx
push dword [edi + 0x60]
mov ecx, esi
call fcn.00416e23
push dword [edi + 0x58]
mov esi, eax
push dword [ebp - 0x128]
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x10]
mov edx, dword [esi]
test eax, eax
je 0x41569c
push esi
call dword [edx + 4]
push esi
mov ecx, edi
call fcn.00415015
mov esi, dword [ebp + 0xc]
inc dword [ebp - 0x13c]
inc esi
mov dword [ebp + 0xc], esi
cmp esi, 0x5f5e100
jge 0x4156ec
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x144]
jmp 0x41541d
mov ecx, esi
call dword [edx + 0x4c]
mov edx, dword [esi]
mov ecx, esi
push 1
mov ebx, eax
call dword [edx + 0xc]
mov ecx, dword [edi + 0x54]
push 4
pop esi
cmp ebx, esi
jne 0x4156d3
and dword [ebp - 0x18], 0
lea edx, [ebp - 0x18]
mov eax, dword [ecx]
push edx
push 0
push 0
push esi
push ecx
call dword [eax + 0x14]
mov dword [edi + 0x68], esi
xor ebx, ebx
jmp 0x41577c
and dword [ebp - 0x14], 0
lea edx, [ebp - 0x14]
mov eax, dword [ecx]
push edx
push 1
push 0
push ebx
push ecx
call dword [eax + 0x14]
cmp dword [ebp - 0x14], 0
jne case.default.0x41542a
push 0xa
pop eax
mov esi, dword [edi + 0x20]
test esi, esi
je case.default.0x41542a
cmp dword [edi + 0x5c], 4
je 0x415701
cmp dword [edi + 0x5c], eax
jne 0x41571a
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + esi*4 - 4]
mov eax, dword [eax + 0x14]
cdq
add dword [edi + 0x38], eax
adc dword [edi + 0x3c], edx
mov eax, dword [ecx + esi*4 - 4]
and dword [eax + 0x14], 0
push 0x100
lea eax, [ebp - 0x11c]
push 0
push eax
call fcn.0041fa80
add esp, 0xc
lea eax, [ebp - 0x11c]
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x120], eax
push dword [edi + 0x58]
push dword [ebp - 0x150]
call fcn.0041637e
push dword [ebp - 0x120]
call fcn.004254bd
mov dword [edi + 0x48], eax
lea eax, [ebp - 0x11c]
pop ecx
cmp dword [ebp - 0x120], eax
je 0x415779
push dword [ebp - 0x120]
call fcn.004243e2
pop ecx
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x41578d
push eax
call fcn.004243e2
pop ecx
mov eax, ebx
call fcn.00433238
ret 8