Function at 0x437973
Capabilities:
Create directory
Get file size
Read file on windows
Write file on windows

Disassembly:
push 0x4adcfa
push 0x45cf22
call fcn.004010a7
mov word [ebp - 0x220], 0x5c
lea eax, [ebp - 0x220]
push eax
push 0x45cf22
call fcn.004010c5
push 0x4adb7a
push 0x45cf22
call fcn.004010c5
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push 0x45cf22
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x43869b
mov dword [ebp - 0x2ac], eax
push 0
push dword [ebp - 0x2ac]
call sub.kernel32.dll_GetFileSize
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2a0], 0
mov dword [0x46ba3e], 0
lea esi, [0x463932]
lea edi, [0x4addfa]
jmp 0x438674
cmp dword [ebp - 0x2b4], 0
jne 0x437a7d
mov eax, 0x4000
mov dword [ebp - 0x2b4], eax
push edi
push 0
lea eax, [ebp - 0x2b4]
push eax
push dword [ebp - 0x2b4]
push 0x463932
push dword [ebp - 0x2ac]
call sub.kernel32.dll_ReadFile
pop edi
mov eax, dword [ebp - 0x2b4]
sub dword [ebp - 0x2b0], eax
lea esi, [0x463932]
mov al, byte [esi]
mov byte [edi], al
inc esi
inc edi
cmp al, 0xa
jne 0x43866e
push esi
mov byte [edi], 0
cmp dword [ebp - 0x2b8], 0
jne 0x437aa3
inc dword [ebp - 0x2b8]
jmp 0x438667
cmp dword [ebp - 0x2b8], 1
jne 0x437ae2
push 0x4addfa
lea eax, [ebp - 0x260]
push eax
call fcn.004010a7
lea eax, [ebp - 0x260]
push eax
call fcn.004010ef
lea edi, [ebp - 0x260]
add edi, eax
sub edi, 2
mov byte [edi], 0
inc dword [ebp - 0x2b8]
jmp 0x438667
cmp dword [ebp - 0x2b8], 2
jne 0x437b73
push str._BEGINPRO__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437b5e
push str._BEGINTXT__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437b45
push str._BEGINBIN__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
jne 0x438667
mov dword [ebp - 0x2c4], 1
mov dword [ebp - 0x2b8], 4
jmp 0x438667
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2b8], 4
jmp 0x438667
mov dword [ebp - 0x2bc], 1
inc dword [ebp - 0x2b8]
jmp 0x438667
cmp dword [ebp - 0x2b8], 3
jne 0x437ce8
push str._BEGINDEF__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437cd8
push str._ENDDEF__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437cba
push str._BEGINTXT__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437ca5
push str._BEGINBIN__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437c90
push str._ENDPRO__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x437c81
cmp dword [ebp - 0x2c0], 0
je 0x438667
mov al, byte [0x4addfa]
cmp al, 0x5b
jne 0x437c4a
mov al, byte [ebp - 0x2a0]
or al, al
je 0x437c18
call fcn.0043869c
mov eax, 0x46ba3e
mov dword [ebp - 0x2c0], eax
mov dword [eax], 0
push 0x4addfb
call fcn.004010ef
sub eax, 2
push eax
push 0x4addfb
lea eax, [ebp - 0x2a0]
push eax
call sub.kernel32.dll_lstrcpynA
jmp 0x437c7c
push 0x4addfa
call fcn.004010ef
sub eax, 1
push eax
push eax
push 0x4addfa
push dword [ebp - 0x2c0]
call sub.kernel32.dll_lstrcpynA
pop eax
add eax, dword [ebp - 0x2c0]
mov dword [eax], 0
mov dword [ebp - 0x2c0], eax
jmp 0x438667
mov dword [ebp - 0x2bc], 0
jmp 0x438667
mov dword [ebp - 0x2c4], 1
inc dword [ebp - 0x2b8]
jmp 0x438667
mov dword [ebp - 0x2c4], 0
inc dword [ebp - 0x2b8]
jmp 0x438667
mov al, byte [ebp - 0x2a0]
or al, al
je 0x437cc9
call fcn.0043869c
mov dword [ebp - 0x2c0], 0
jmp 0x438667
mov eax, 0x46ba3e
mov dword [ebp - 0x2c0], eax
jmp 0x438667
cmp dword [ebp - 0x2b8], 4
jne 0x438224
push 0
push 0
push 1
push str._PROJECTNAME_
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x437d29
mov esi, eax
push str._PROJECTNAME_
lea eax, [ebp - 0x200]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x437cf5
cmp dword [ebp - 0x2bc], 0
je 0x437d71
push 0
push 1
push 0
lea eax, [ebp - 0x260]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438147
mov esi, eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x200]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x676c44
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x437dfe
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x756e4d
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x437e8b
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x736552
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x437f18
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x727453
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x437fa5
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x726556
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438032
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x6c6341
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x4380bf
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438147
mov eax, 0x676e4c
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438147
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
push 0x4addfa
call fcn.004010ef
lea edi, [0x4addfa]
add edi, eax
sub edi, 2
mov byte [edi], 0
push 0x45de5e
push 0x45cf22
call fcn.004010a7
push 0x45cf22
call fcn.004010ef
mov edi, 0x45cf22
add edi, eax
lea esi, [0x4addfa]
mov al, byte [esi]
cmp al, 0x5c
jne 0x4381a0
mov byte [edi], 0
push esi
push edi
push 0
push 0x45cf22
call sub.kernel32.dll_CreateDirectoryA
pop edi
pop esi
mov al, 0x5c
mov byte [edi], al
inc esi
inc edi
or al, al
jne 0x438185
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push 0x45cf22
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x4381e8
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2bc], 0
je 0x438219
push 0
push 0
push 0x45cf22
call fcn.004298f0
jmp 0x438219
push 0x44ece9
push 0x467936
call fcn.004010a7
push 0x45cf22
push 0x467936
call fcn.004010c5
push 0x10
push 0x44f25f
push 0x467936
push 0
call sub.user32.dll_MessageBoxA
inc dword [ebp - 0x2b8]
jmp 0x438667
cmp dword [ebp - 0x2b8], 5
jne 0x438667
push str._ENDTXT__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
je 0x438648
push str._ENDBIN__r_n
push 0x4addfa
call fcn.00401105
or eax, eax
jne 0x438364
push dword [ebp - 0x2c8]
call sub.kernel32.dll_CloseHandle
push 0x45cf22
call fcn.00428ce6
cmp eax, 5
jne 0x43834b
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push 0x45cf22
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x2c8], eax
push 0
lea eax, [ebp - 0x2b8]
push eax
push 0x90
push 0x46ba3e
push dword [ebp - 0x2c8]
call sub.kernel32.dll_ReadFile
push dword [ebp - 0x2c8]
call sub.kernel32.dll_CloseHandle
push esi
mov esi, 0x46ba3e
lea esi, [esi + 0x28]
push 0
push 1
push 0
lea eax, [ebp - 0x260]
push eax
push esi
call fcn.0040fefe
or eax, eax
je 0x43834a
mov edx, eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x200]
push eax
push esi
push edx
call fcn.00436e26
push 0
push 0x80
push 3
push 0
push 1
push 0x40000000
push 0x45cf22
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x2c8], eax
push 0
lea eax, [ebp - 0x2b8]
push eax
push 0x90
push 0x46ba3e
push dword [ebp - 0x2c8]
call sub.kernel32.dll_WriteFile
push dword [ebp - 0x2c8]
call sub.kernel32.dll_CloseHandle
pop esi
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2b8], 3
jmp 0x438667
push dword [ebp - 0x2b4]
cmp dword [ebp - 0x2c4], 0
je 0x4383df
lea esi, [0x4addfa]
lea edi, [ebp - 0x220]
mov dword [ebp - 0x2b4], 0
mov al, byte [esi]
cmp al, 0xd
je 0x4383b9
inc esi
cmp al, 0x41
jb 0x438398
sub al, 0x37
jmp 0x43839a
sub al, 0x30
mov ah, al
mov al, byte [esi]
inc esi
cmp al, 0x41
jb 0x4383a7
sub al, 0x37
jmp 0x4383a9
sub al, 0x30
shl ah, 4
add ah, al
mov byte [edi], ah
inc edi
inc dword [ebp - 0x2b4]
jmp 0x438389
push 0
lea eax, [ebp - 0x2b4]
push eax
push dword [ebp - 0x2b4]
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x2c8]
call sub.kernel32.dll_WriteFile
jmp 0x438640
push 0
push 0
push 1
push str._PROJECTNAME_
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438413
mov esi, eax
push str._PROJECTNAME_
lea eax, [ebp - 0x200]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x4383df
push 0
push 1
push 0
push 0x45fa16
push 0x4addfa
call fcn.0040fefe
or eax, eax
jne 0x4384a7
push 0
push 1
push 0
push str.library
push 0x4addfa
call fcn.0040fefe
or eax, eax
jne 0x4384a7
push 0
push 1
push 0
push str.include
push 0x4addfa
call fcn.0040fefe
or eax, eax
jne 0x4384a7
push 0
push 0
push 0
push str.Mnu
push 0x4addfa
call fcn.0040fefe
or eax, eax
jne 0x4384a7
push 0
push 0
push 0
push str.Bmp
push 0x4addfa
call fcn.0040fefe
or eax, eax
jne 0x4384a7
push 0
push 1
push 0
lea eax, [ebp - 0x260]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438611
lea esi, [0x4addfa]
push 0
push 0
push 0
lea eax, [ebp - 0x260]
push eax
push esi
call fcn.0040fefe
or eax, eax
je 0x4384fc
mov esi, eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x200]
push eax
push 0x4addfa
push esi
call fcn.00436e26
lea eax, [ebp - 0x260]
push eax
call fcn.004010ef
add esi, eax
jmp 0x4384b5
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
mov eax, 0x676c44
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438589
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
jmp 0x438611
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
mov eax, 0x756e4d
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
push 1
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
call fcn.0040fefe
or eax, eax
je 0x438611
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
pop esi
push 0
lea eax, [ebp - 0x100]
push eax
push 0x4addfa
push esi
call fcn.00436e26
push 0x4addfa
call fcn.004010ef
mov dword [ebp - 0x2b4], eax
push 0
lea eax, [ebp - 0x2b4]
push eax
push dword [ebp - 0x2b4]
push 0x4addfa
push dword [ebp - 0x2c8]
call sub.kernel32.dll_WriteFile
pop dword [ebp - 0x2b4]
jmp 0x438667
push dword [ebp - 0x2c8]
call sub.kernel32.dll_CloseHandle
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2b8], 3
pop esi
lea edi, [0x4addfa]
dec dword [ebp - 0x2b4]
cmp dword [ebp - 0x2b0], 0
jne 0x437a36
cmp dword [ebp - 0x2b4], 0
jne 0x437a36
push dword [ebp - 0x2ac]
call sub.kernel32.dll_CloseHandle
xor eax, eax
ret