Function at 0x410180
Capabilities:
Copy file
Delete file
Set current directory
Write file on windows

Disassembly:
sub esp, 0xc
cmp dword [0x4b021c], 0
push ebx
push ebp
push esi
push edi
jne 0x4101a0
cmp dword [0x4a9ba8], 0
je 0x4101a0
mov eax, 1
jmp 0x4101a2
xor eax, eax
cmp dword [0x4b03e4], 0
mov dword [0x4922bc], eax
je 0x4101c0
inc dword [0x4a9804]
mov dword [0x49b074], 0
cmp dword [0x4b0e20], 0
je 0x4101de
push str.Starting_syntax_check..._n
call fcn.00412ad0
add esp, 4
inc dword [0x4a9804]
jmp 0x4101eb
push str.Starting_compilation..._n
call fcn.00412ad0
add esp, 4
mov dword [0x4b021c], 0
call fcn.00447440
mov edx, 0x4922c0
sub edx, eax
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [eax + edx - 1], cl
test cl, cl
jne 0x410201
call fcn.0040d340
mov edx, dword [0x4922ac]
mov ecx, dword [0x4922a8]
sub edx, ecx
push 0
push dword [0x4a5778]
call fcn.00425a90
add esp, 8
push dword [0x4922a8]
push 0
push dword [0x49184c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
call fcn.00426360
cmp dword [0x4afc48], 0
jne 0x41080d
cmp byte [0x486cd3], 0
je 0x410283
push dword [0x49b220]
push str.PROGRESS_tLINES_t_d_n
call fcn.0040abc0
push 1
call fcn.0044ed5d
add esp, 0xc
push eax
call fcn.0044f0f1
add esp, 4
cmp dword [0x4b0e20], 0
je 0x4102ab
push dword [0x49b220]
push str.Syntax_check_finished_without_error___d_lines_._n
call fcn.00412ad0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp fcn.00412e30
cmp dword [0x4b03f0], 0
je 0x4102cb
mov ecx, dword [0x4b03d4]
call fcn.0042caa0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp fcn.00412e30
cmp dword [0x4b03c0], 0
je 0x4102ff
call fcn.004154b0
test eax, eax
je 0x41080d
cmp dword [0x4a98d8], 0
je 0x41080d
call fcn.0040fda0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp fcn.00412e30
cmp dword [0x4b021c], 0
jne 0x410312
mov ecx, str.ExitProcess_
call fcn.00415160
mov ecx, dword [0x492174]
mov edx, str.HeapCreate_
call fcn.00428720
test eax, eax
je 0x410330
inc dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov byte [eax + 0xc], 1
mov ecx, dword [0x492174]
mov edx, str.HeapDestroy_
call fcn.00428720
test eax, eax
je 0x41034e
inc dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov byte [eax + 0xc], 1
mov ecx, dword [0x492174]
mov edx, str.GetModuleHandle_
call fcn.00428720
test eax, eax
je 0x41036c
inc dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov byte [eax + 0xc], 1
cmp dword [0x49b074], 0
je 0x410389
mov ecx, str.Sleep_
call fcn.00415160
mov ecx, str.GetCurrentThreadId_
call fcn.00415160
mov ecx, dword [0x49b060]
call fcn.00403570
call fcn.00441fd0
cmp dword [0x49b074], 0
je 0x410451
mov edi, dword [0x4aa320]
inc edi
mov dword [0x4aa320], edi
cmp edi, 0x1254
jle 0x4103cf
mov ecx, 0x50
mov dword [0x4a9ec4], 0xffffffff
call fcn.00412bb0
mov ebx, dword [0x4a9804]
mov esi, dword [0x4a5324]
test ebx, ebx
jne 0x4103fe
mov ecx, str.PB_DEBUGGER_Start_0__1__
mov al, 0x50
sub ecx, esi
mov byte [esi], al
inc esi
mov al, byte [ecx + esi]
test al, al
jne 0x4103e8
mov byte [esi], 0xa
inc esi
mov dword [0x4a5324], esi
mov byte [esi], al
cmp byte [0x49210c], 0
je 0x410451
inc edi
mov dword [0x4aa320], edi
cmp edi, 0x1254
jle 0x41042a
mov ecx, 0x50
mov dword [0x4a9ec4], 0xffffffff
call fcn.00412bb0
test ebx, ebx
jne 0x410451
mov ecx, str.PB_PURIFIER_Start_0__
mov al, 0x50
sub ecx, esi
mov byte [esi], al
lea esi, [esi + 1]
mov al, byte [ecx + esi]
test al, al
jne 0x410437
lea eax, [esi + 1]
mov byte [esi], 0xa
mov dword [0x4a5324], eax
mov byte [eax], 0
mov edx, dword [0x4a9ec8]
mov eax, dword [edx + 8]
mov dword [edx], eax
test eax, eax
je 0x41048b
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x10], 0
je 0x410474
call fcn.004463a0
mov edx, dword [0x4a9ec8]
mov eax, dword [edx]
test eax, eax
je 0x41048b
mov eax, dword [eax + 4]
test eax, eax
je 0x410485
mov dword [edx], eax
jmp 0x410460
mov dword [edx], 0
call fcn.004333c0
mov edi, dword [0x492120]
mov ecx, edi
mov dword [edi + 0x1000], 0
call fcn.00428870
mov ebx, eax
test ebx, ebx
je 0x410566
mov ebp, 0x1000
jmp 0x4104c0
mov eax, dword [ebx + 0x24]
mov dword [eax + 0x1000], 0
mov ecx, dword [ebx + 0x24]
call fcn.00428870
mov esi, eax
test esi, esi
je 0x410555
jmp 0x4104e0
cmp byte [esi + 0x2f], 0
jne 0x410541
cmp byte [esi + 0x2e], 7
jne 0x410541
mov eax, dword [esi + 0x14]
mov ecx, 0x380
test word [eax + 0x1a], cx
je 0x410541
test word [esi + 0x2c], bp
jne 0x410541
mov eax, dword [0x486bd4]
mov edx, dword [0x4a5324]
lea eax, [eax + eax*2]
mov edi, dword [eax*4 + 0x486be0]
mov eax, dword [edi + 8]
sub eax, dword [edi + 0xc]
mov dword [edi + 4], edx
sub edx, dword [edi]
cmp edx, eax
jle 0x41052b
mov ecx, edi
call fcn.004034e0
mov eax, dword [edi]
mov ecx, esi
mov dword [0x4a980c], eax
mov eax, dword [edi + 4]
mov dword [0x4a5324], eax
call fcn.00440840
mov ecx, dword [ebx + 0x24]
call fcn.00428870
mov esi, eax
test esi, esi
jne 0x4104e0
mov edi, dword [0x492120]
mov ecx, edi
call fcn.00428870
mov ebx, eax
test ebx, ebx
jne 0x4104c0
cmp dword [0x4a9ed8], 0
jne 0x410578
cmp dword [0x49b074], 0
je 0x4105ca
mov eax, dword [0x4aa320]
inc eax
mov dword [0x4aa320], eax
cmp eax, 0x1254
jle 0x41059e
mov ecx, 0x50
mov dword [0x4a9ec4], 0xffffffff
call fcn.00412bb0
cmp dword [0x4a9804], 0
jne 0x4105ca
mov eax, dword [0x4a5324]
mov edx, str.tlsSYS_InitThreadedObject___
mov cl, 0x74
sub edx, eax
mov byte [eax], cl
inc eax
mov cl, byte [edx + eax]
test cl, cl
jne 0x4105b5
mov byte [eax], 0xa
inc eax
mov dword [0x4a5324], eax
mov byte [eax], cl
cmp dword [0x4b0a50], 0
je 0x4105e2
call fcn.0041d180
call fcn.00413ba0
call fcn.004342d0
call fcn.004035e0
call fcn.00443230
cmp dword [0x4afc48], 0
jne 0x41080d
push dword [0x49b220]
push str._d_lines_processed._n
call fcn.00412ad0
add esp, 8
call fcn.00447880
mov ebx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x4b1580
call ebx
mov eax, dword [0x4b03e4]
test eax, eax
je 0x410660
push eax
mov edx, 0x4922c0
mov ecx, 0x49b320
call fcn.00446ec0
add esp, 4
mov edx, 1
mov ecx, 0x49b320
call fcn.00411cd0
push 0x49b320
push str.Preprocessed_file_created___s__n
call fcn.00412ad0
add esp, 8
jmp 0x4107d8
cmp dword [0x4aa234], 1
jne 0x4107cc
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0xb
push eax
push str.purebasic.c
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x208
mov ecx, 0x488df0
call fcn.004317d0
add esp, 8
test eax, eax
jne 0x4106b3
mov eax, dword [esp + 0x14]
shr eax, 1
xor ecx, ecx
mov word [eax*2 + 0x488df0], cx
mov eax, 0x488df0
jmp 0x4106b8
mov eax, 0x479868
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x4107a1
test edi, edi
je 0x4107a1
mov edx, dword [0x49b060]
mov ecx, edi
push dword [edx + 4]
mov edx, dword [edx]
call fcn.00411df0
mov edx, dword [0x4a980c]
add esp, 4
mov ecx, edi
push dword [0x4a5324]
call fcn.00411df0
mov edx, dword [0x4b03f8]
add esp, 4
mov ecx, edi
push dword [0x4a5320]
call fcn.00411df0
add esp, 4
cmp dword [0x49b074], 0
je 0x41079a
push dword [0x4b3a44]
mov edx, dword [0x4b1560]
mov ecx, edi
call fcn.00411df0
mov esi, dword [0x49b054]
add esp, 4
push str._1__n
push dword [esi + 4]
call fcn.00401560
mov edx, dword [0x49b054]
mov ecx, edi
add dword [esi + 4], eax
push dword [esi + 4]
mov edx, dword [edx]
call fcn.00411df0
mov esi, dword [0x49b064]
add esp, 0xc
push str._1__n
push dword [esi + 4]
call fcn.00401560
mov edx, dword [0x49b064]
mov ecx, edi
add dword [esi + 4], eax
push dword [esi + 4]
mov edx, dword [edx]
call fcn.00411df0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.purebasic.c
mov edx, 0x4922c0
mov ecx, 0x49b320
call fcn.00446ec0
add esp, 4
push 0
push 0x49b320
push str.purebasic.c
call dword [sym.imp.KERNEL32.dll_CopyFileA]
jmp 0x4107d8
xor edx, edx
mov ecx, str.purebasic.c
call fcn.00411cd0
cmp dword [0x4b03e4], 0
jne 0x4107e6
call fcn.0040eb50
push 0x4922c0
call ebx
mov ecx, 0x4b1580
call fcn.00447020
cmp dword [0x4afc48], 0
jne 0x41080d
push str._n__Feel_the_..PuRe.._Power___n
call fcn.00412ad0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
jmp fcn.00412e30