Function at 0x4380e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x65c
mov eax, dword [ebp + 8]
mov byte [ebp - 0x641], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x873420]
mov dword [esp + 8], eax
mov eax, 0x400
mov dword [esp + 4], eax
lea eax, [ebp - 0x468]
mov dword [esp], eax
call fcn.0047eb50
xor eax, eax
mov dword [esp + 4], eax
lea eax, [ebp - 0x468]
mov dword [esp], eax
call fcn.0047efa0
test eax, eax
js 0x438174
mov dword [esp], eax
call fcn.0047f190
lea eax, [ebp - 0x468]
lea ebx, [ebp - 0x598]
mov dword [esp + 0xc], eax
mov eax, str.Replace_existing_file__s_
mov dword [esp + 8], eax
mov eax, 0xa0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00495420
mov dword [esp], ebx
call fcn.00482220
test al, al
je 0x4383ab
lea eax, [ebp - 0x468]
mov edi, 0x4ae0fc
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0047ec20
mov dword [ebp - 0x640], eax
test eax, eax
je 0x4383ab
mov eax, dword [ebp - 0x640]
mov ecx, 0x4aea91
mov edx, str.____s__s_Character_Dump__n_n
mov dword [esp + 8], ecx
mov esi, 0x4817b0
mov ebx, 0x4ada40
mov dword [0x4d8f90], esi
lea edi, [ebp - 0x63a]
mov esi, 2
mov dword [esp + 4], edx
mov dword [0x4c5a70], eax
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 0
call fcn.00435f50
xor ebx, ebx
nop
lea esi, [esi]
mov dword [esp], ebx
lea eax, [ebp - 0x639]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call fcn.00497450
movzx eax, byte [ebp - 0x639]
mov byte [ebp + ebx - 0x468], al
inc ebx
cmp ebx, 0x4e
jle 0x4381f0
test ebx, ebx
jle 0x438231
cmp byte [ebp + ebx - 0x469], 0x20
jne 0x438231
dec ebx
test ebx, ebx
jg 0x438222
xor eax, eax
mov ecx, 0x4aeab0
inc esi
mov byte [ebp + ebx - 0x468], al
lea eax, [ebp - 0x468]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x640]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
cmp esi, 0x16
jle 0x4381e9
mov eax, dword [0x4a49e8]
cmp byte [eax + 0x3a6], 0
jne 0x4384ee
cmp word [eax + 0x476], 0
jne 0x438639
mov dword [esp], str.___Inventory__n_n
mov eax, dword [ebp - 0x640]
mov ecx, 0xf
mov dword [esp + 8], ecx
mov edx, 1
xor ebx, ebx
mov dword [esp + 4], edx
lea edi, [ebp - 0x68]
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x4382ec
mov dword [esp], ebx
inc ebx
call fcn.00463d90
mov dword [esp + 0xc], edi
movsx eax, al
mov dword [esp + 8], eax
mov eax, str._c___s_n
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x640]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], esi
call fcn.00463d30
cmp ebx, 0x16
jg 0x4383bb
mov eax, ebx
mov edx, dword [0x4f3410]
shl eax, 4
sub eax, ebx
lea esi, [edx + eax*4]
cmp word [esi], 0
je 0x4383bb
mov dword [esp + 8], esi
mov eax, 3
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, 0x50
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00462aa0
movzx edx, word [esi + 0xc]
test dx, dx
je 0x4382b0
movzx eax, byte [esi + 6]
sub al, 0x13
cmp al, 4
ja 0x4382b0
movzx eax, byte [esi + 0xb]
movsx ecx, dx
mov edx, 0x66666667
imul ecx, eax
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
lea eax, [edx + edx*4]
mov dword [esp + 8], edx
add eax, eax
sub ecx, eax
mov dword [esp + 0xc], ecx
mov eax, str.__d._1d_lb
mov dword [esp + 4], eax
lea eax, [ebp - 0x638]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp], edi
mov eax, 0x50
mov dword [esp + 8], eax
lea eax, [ebp - 0x638]
mov dword [esp + 4], eax
call fcn.004980b0
jmp 0x4382b0
mov eax, 0xffffffff
add esp, 0x65c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0xa
mov eax, dword [ebp - 0x640]
mov ebx, 0xc
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x640]
mov ecx, 1
mov dword [esp + 4], ecx
xor ebx, ebx
mov dword [esp], str._n___Notes__n_n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
cmp byte [0x4d8fb0], 0
je 0x438418
movsx esi, byte [ebx + 0x4d8fb0]
test esi, esi
jne 0x4384d4
inc ebx
test esi, esi
jne 0x438404
mov dword [esp], 0xa
mov eax, dword [ebp - 0x640]
mov ebx, pe_nt_image_headers32
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov eax, dword [0x4a49ec]
mov edx, dword [ebx*4 + 0x4a39a0]
test edx, edx
je 0x438451
cmp byte [ebx + eax + 0x40], 0
je 0x438451
mov byte [ebp - 0x641], 1
inc ebx
cmp ebx, 0x9f
jle 0x438438
cmp byte [ebp - 0x641], 0
jne 0x438788
mov dword [esp], 0x4aeae4
mov eax, dword [ebp - 0x640]
mov ecx, 2
mov dword [esp + 8], ecx
mov edx, 1
lea ebx, [ebp - 0x4f8]
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, ebx
call fcn.00437ca0
mov dword [esp], ebx
call fcn.00437000
mov dword [esp + 8], eax
mov eax, str.___Score__.9d__n_n
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x640]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp - 0x640]
mov dword [esp], eax
call fcn.0047ec70
xor eax, eax
jmp 0x4383b0
mov dword [esp], esi
mov eax, dword [ebp - 0x640]
inc ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
test esi, esi
jmp 0x438416
call fcn.004806f0
movsx ebx, ax
cmp ebx, 0xf
jle 0x438500
mov ebx, 0xf
mov dword [esp], str._n___Last_Messages__n_n
mov eax, dword [ebp - 0x640]
mov edx, 0x14
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
jmp 0x438550
movsx eax, bx
mov dword [esp], eax
call fcn.00480bf0
mov dword [esp + 8], eax
mov eax, str.___s_n
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x640]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, ebx
dec ebx
test eax, eax
jg 0x43852a
mov dword [esp], 0xa
mov eax, dword [ebp - 0x640]
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], str._n___Screenshot__n_n
mov eax, dword [ebp - 0x640]
mov dword [esp + 0xc], eax
mov eax, 0x11
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [0x4a49e8]
cmp word [eax + 0x3a0], 0
jne 0x4387f8
xor edi, edi
mov dword [esp], 0x4aeb27
mov eax, dword [ebp - 0x640]
lea esi, [edi*8]
xor ebx, ebx
sub esi, edi
mov dword [esp + 0xc], eax
mov eax, 2
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [ebp - 0x640]
mov dword [esp + 4], eax
movsx eax, byte [esi + ebx + 0x4c6e00]
inc ebx
mov dword [esp], eax
call sub.msvcrt.dll_fputc
cmp ebx, 6
jle 0x4385dd
mov dword [esp], 0xa
mov eax, dword [ebp - 0x640]
inc edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
cmp edi, 6
jle 0x4385aa
mov dword [esp], 0xa
mov eax, dword [ebp - 0x640]
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov eax, dword [0x4a49e8]
jmp 0x438273
mov dword [esp], str._n___Equipment__n_n
mov eax, dword [ebp - 0x640]
mov ecx, 0x10
mov dword [esp + 8], ecx
mov edx, 1
mov ebx, 0x18
mov dword [esp + 4], edx
lea edi, [ebp - 0x68]
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x4386ac
mov dword [esp], ebx
inc ebx
call fcn.00463d90
mov dword [esp + 0xc], edi
movsx eax, al
mov dword [esp + 8], eax
mov eax, str._c___s_n
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x640]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], esi
call fcn.00463d30
cmp ebx, 0x25
jg 0x43875b
mov dword [esp], edi
mov edx, dword [0x4f3410]
mov eax, ebx
shl eax, 4
sub eax, ebx
lea esi, [edx + eax*4]
mov dword [esp + 8], esi
mov eax, 3
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, 0x50
mov dword [esp + 4], eax
call fcn.00462aa0
movzx edx, word [esi + 0xc]
test dx, dx
je 0x438670
movzx eax, byte [esi + 6]
sub al, 0x13
cmp al, 4
ja 0x438670
movzx eax, byte [esi + 0xb]
movsx ecx, dx
imul ecx, eax
mov eax, 0x66666667
imul ecx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
mov dword [esp + 8], edx
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
mov eax, str.__d._1d_lb
mov dword [esp + 4], eax
lea eax, [ebp - 0x5e8]
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp], edi
mov eax, 0x50
mov dword [esp + 8], eax
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], eax
call fcn.004980b0
jmp 0x438670
mov dword [esp], 0x4aeae4
mov eax, dword [ebp - 0x640]
mov esi, 2
mov dword [esp + 8], esi
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x438281
mov dword [esp], str.___Challenges__n_n
mov eax, dword [ebp - 0x640]
mov edi, 1
mov dword [esp + 4], edi
mov ebx, pe_nt_image_headers32
mov dword [esp + 0xc], eax
mov eax, 0x10
mov dword [esp + 8], eax
call sub.msvcrt.dll_fwrite
jmp 0x4387c4
inc ebx
cmp ebx, 0x9f
jg 0x438467
mov edx, dword [ebx*4 + 0x4a39a0]
test edx, edx
je 0x4387b7
mov eax, dword [0x4a49ec]
cmp byte [ebx + eax + 0x40], 0
je 0x4387b7
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x640]
mov esi, str.__45s_n
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4387b7
mov dword [esp], str.__......._n
mov eax, dword [ebp - 0x640]
mov edi, 0xa
mov dword [esp + 8], edi
mov esi, 1
mov ebx, 0xa
mov dword [esp + 4], esi
mov edi, 1
mov esi, 0xa
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x640]
mov ecx, 1
mov dword [esp + 4], ecx
mov ebx, 1
mov dword [esp], 0x4aeb5e
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov dword [esp], 0x4aeb69
mov eax, dword [ebp - 0x640]
mov edx, 0xa
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov dword [esp], str.__.._..._n
mov eax, dword [ebp - 0x640]
mov dword [esp + 0xc], eax
mov eax, 0xa
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov dword [esp], str.__...._n
mov eax, dword [ebp - 0x640]
mov dword [esp + 0xc], eax
mov eax, 0xa
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x640]
mov dword [esp], str.__....._n
mov dword [esp + 0xc], eax
mov eax, 0xa
mov dword [esp + 8], eax
call sub.msvcrt.dll_fwrite
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x640]
mov dword [esp + 4], ebx
mov dword [esp], str.__......_n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x438619