Function at 0x403b78
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1bc
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x8c], eax
cld
mov ecx, 2
mov esi, eax
mov edi, 0x40f562
repe cmpsb byte [esi], byte es:[edi]
je 0x40405c
mov eax, dword [0x4110e4]
test eax, eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0x40e2e4
jne 0x404047
mov ebp, 0x8000
mov esi, dword [0x4421c0]
mov dword [0x40e2e4], esi
xor ebx, ebx
mov esi, 0xffffffff
cld
mov ecx, esi
mov edi, dword [esp + 0x8c]
mov al, bl
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x102
ja 0x404078
sub esp, 8
push dword [esp + 0x94]
push 0x432030
call sub.msvcrt.dll_strcpy
pop edi
pop eax
push 0x420fa0
push 0x180
mov edx, ebp
mov eax, 0x432030
call fcn.00402658
add esp, 0x10
test eax, eax
js 0x404278
test eax, eax
mov dword [0x420fd0], eax
js 0x40406d
mov bx, word [0x420fa6]
movzx ecx, bx
mov edx, ecx
and edx, 0xf000
cmp edx, 0x4000
je 0x404168
mov esi, dword [0x4110e0]
test esi, esi
je 0x4040b0
mov eax, ebx
and eax, 0xf000
cmp eax, 0x8000
mov edx, 0xffffffff
mov ecx, 0xffffffff
je 0x40440a
mov ebx, dword [0x40e24c]
test ebx, ebx
mov dword [0x420fe0], edx
mov dword [0x420fe4], ecx
mov dword [0x432164], 0xffffffff
je 0x403cdc
mov edx, dword [0x4110d0]
test edx, edx
je 0x403d02
mov edi, dword [0x420fc4]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov dword [0x432160], ecx
mov dword [0x432164], ebp
test esi, esi
je 0x4040f4
mov esi, dword [0x4110d0]
test esi, esi
jne 0x4040f4
mov eax, dword [0x4110c0]
test eax, eax
jne 0x4040f4
cld
mov esi, str.stdout
mov ecx, 1
mov edi, 0x4421d0
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x5c], edi
movsw word es:[edi], word [esi]
mov dword [esp + 0x3c], edi
movsb byte es:[edi], byte [esi]
call fcn.0040a2c0
mov ebp, dword [0x4110dc]
test ebp, ebp
mov dword [0x420ff0], 0
jne 0x404886
mov ebx, dword [0x4110d0]
test ebx, ebx
jne 0x4048a2
mov ecx, dword [0x4110e0]
test ecx, ecx
je 0x4045b4
mov edi, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [edi + 0x30]
mov dword [0x4421b0], esi
mov edx, dword [0x4110cc]
mov eax, dword [0x432150]
test eax, eax
jne 0x403dab
xor ecx, ecx
cmp dword [0x40e250], 0
sete cl
mov dword [0x432150], ecx
test edx, edx
je 0x403e20
jmp 0x4049ba
mov eax, dword [0x4110dc]
test eax, eax
je 0x403e4a
mov ebx, dword [0x4622e0]
test ebx, ebx
jne 0x403e4a
mov eax, dword [0x432170]
cmp eax, dword [0x421000]
jne 0x403df9
cmp eax, 0x8000
jne 0x403e4a
sub esp, 0xc
push 1
call fcn.0040a964
add esp, 0x10
inc eax
je 0x403e4a
mov dword [0x432170], 0
mov eax, dword [0x420fd0]
call fcn.00402704
test eax, eax
mov dword [0x40e244], eax
js 0x403e4a
mov dword [0x418f50], 0
mov dword [0x418f54], 0
sub esp, 8
push dword [0x4421b0]
push dword [0x420fd0]
call dword [0x40e080]
add esp, 0x10
test eax, eax
je 0x403db4
mov dword [0x40e244], 0xffffffff
sub esp, 0xc
push dword [0x420fd0]
call sub.msvcrt.dll__close
add esp, 0x10
test eax, eax
jne 0x404a28
mov ebp, dword [0x4110e0]
test ebp, ebp
jne 0x403f8d
mov edi, dword [0x420fc0]
mov edx, dword [0x420fc4]
mov dword [esp + 0x48], edi
mov bx, word [0x420fa6]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], 0
mov edi, dword [0x4110dc]
and ebx, 0x1ff
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
test edi, edi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], esi
je 0x403f1c
mov edx, dword [0x432164]
test edx, edx
js 0x403f1c
mov esi, dword [0x432160]
cmp dword [esp + 0x98], esi
je 0x404de2
mov edx, dword [0x432160]
mov ecx, dword [0x432164]
cmp dword [0x4110cc], 1
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
jg 0x404dc1
push eax
lea ebp, [esp + 0x94]
push ebp
push 0x4421d0
push dword [0x4421b0]
call fcn.0040c580
add esp, 0x10
test eax, eax
jne 0x404baf
sub esp, 8
movzx esi, bx
push esi
push 0x4421d0
call sub.msvcrt.dll__chmod
add esp, 0x10
test eax, eax
jne 0x404c05
sub esp, 0xc
push dword [0x4421b0]
call sub.msvcrt.dll__close
add esp, 0x10
test eax, eax
jne 0x404bfb
mov ebx, dword [0x40e258]
test ebx, ebx
mov dword [0x40e254], 0xffffffff
jne 0x404c51
cmp dword [0x40e244], 0xffffffff
je 0x404ae8
mov esi, dword [0x4110cc]
test esi, esi
je 0x40406d
mov edx, dword [0x4110c0]
test edx, edx
jne 0x404d3d
mov ebx, dword [0x4110dc]
test ebx, ebx
je 0x404cfc
mov eax, dword [sym.imp.msvcrt.dll__iob]
sub esp, 0xc
add eax, 0x40
push eax
mov ecx, dword [0x421010]
push dword [0x418f54]
mov ebx, dword [0x421014]
sub ecx, dword [0x462360]
push dword [0x418f50]
sbb ebx, dword [0x462364]
mov eax, dword [0x418f50]
mov edx, dword [0x418f54]
sub eax, ecx
sbb edx, ebx
push edx
push eax
call fcn.0040acc4
add esp, 0x20
mov ecx, dword [0x4110c0]
test ecx, ecx
jne 0x404025
mov esi, dword [0x4110e0]
test esi, esi
je 0x404df4
mov ebp, dword [sym.imp.msvcrt.dll__iob]
sub esp, 8
add ebp, 0x40
push ebp
push 0xa
call sub.msvcrt.dll_fputc
add esp, 0x10
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x4110dc]
xor ebp, ebp
test edx, edx
je 0x403bf6
jmp 0x403bf1
mov ebx, dword [0x4110e0]
call fcn.00403690
mov dword [0x4110e0], ebx
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
push dword [esp + 0x8c]
push dword [0x414740]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s:_file_name_too_long_n
add ecx, 0x40
push ecx
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov eax, 0xffffffff
mov dword [0x4110b8], 1
jmp 0x403c5d
cmp edx, 0x8000
je 0x40441b
mov edi, dword [0x4110c8]
test edi, edi
je 0x40459f
mov ebp, dword [0x4110b8]
test ebp, ebp
jne 0x4040de
mov dword [0x4110b8], 2
sub esp, 0xc
push dword [0x420fd0]
call sub.msvcrt.dll__close
add esp, 0x10
jmp 0x40403c
sub esp, 8
push 0x432030
push 0x4421d0
call sub.msvcrt.dll_strcpy
add esp, 0x10
mov eax, 0x4421d0
call fcn.00402560
mov edx, dword [0x4110dc]
test edx, edx
mov ebx, eax
je 0x4042ce
test eax, eax
je 0x4048d5
sub esp, 0xc
push eax
mov ebp, 5
call fcn.0040a340
mov esi, ebx
cld
mov edi, str..tgz
mov ecx, ebp
add esp, 0x10
repe cmpsb byte [esi], byte es:[edi]
je 0x40447d
mov esi, ebx
mov edi, str..taz
mov ecx, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x40447d
mov byte [ebx], 0
jmp 0x403d42
mov ebx, dword [0x4110d4]
test ebx, ebx
je 0x404326
sub esp, 0xc
push eax
call sub.msvcrt.dll__close
pop ecx
push dword [esp + 0x98]
call fcn.0040d1d0
add esp, 0x10
test eax, eax
mov dword [esp + 0x74], eax
je 0x404386
nop
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], 0
push dword [esp + 0x80]
call fcn.0040d410
add esp, 0x10
test eax, eax
je 0x40435d
lea ebx, [eax + 8]
cld
mov ecx, 2
mov esi, ebx
mov edi, 0x40f580
repe cmpsb byte [esi], byte es:[edi]
je 0x40419c
mov ecx, 3
mov esi, ebx
mov edi, 0x40f582
repe cmpsb byte [esi], byte es:[edi]
je 0x40419c
xor eax, eax
mov edi, dword [esp + 0x8c]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov esi, ecx
mov edi, ebx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not esi
lea ebp, [esi - 1]
not ecx
lea eax, [ebp + ecx]
cmp eax, 0x102
ja 0x4043d3
sub esp, 8
push dword [esp + 0x94]
lea edx, [esp + 0xac]
push edx
call sub.msvcrt.dll_strcpy
add esp, 0x10
test ebp, ebp
je 0x404251
mov ecx, dword [esp + 0x8c]
mov al, byte [ecx + ebp - 1]
cmp al, 0x5c
je 0x404251
cmp al, 0x3a
je 0x404251
mov byte [esp + ebp + 0xa0], 0x2f
mov ebp, esi
sub esp, 8
push ebx
lea ebx, [esp + 0xac]
add ebx, ebp
push ebx
call sub.msvcrt.dll_strcpy
add esp, 0x10
lea eax, [esp + 0xa0]
call fcn.00403b78
jmp 0x40419c
mov edx, dword [0x4110dc]
test edx, edx
je 0x404290
call sub.msvcrt.dll__errno
cmp dword [eax], 2
je 0x40448c
call sub.msvcrt.dll__errno
mov edi, dword [eax]
push esi
push dword [0x414740]
mov esi, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
add esp, 0x10
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], edi
push 0x432030
call sub.msvcrt.dll_perror
jmp 0x404099
test eax, eax
je 0x4049dc
mov edx, dword [0x4110cc]
test edx, edx
jne 0x4042fb
mov ebp, dword [0x4110d4]
test ebp, ebp
jne 0x4040de
mov eax, dword [0x4110c8]
test eax, eax
jne 0x4040de
sub esp, 0xc
push ebx
push 0x432030
push dword [0x414740]
mov ebx, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s_already_has__s_suffix____unchanged_n
add ebx, 0x40
push ebx
call sub.msvcrt.dll_fprintf
add esp, 0x20
jmp 0x4040de
sub esp, 0xc
push eax
call sub.msvcrt.dll__close
mov ecx, dword [0x4110c8]
add esp, 0x10
test ecx, ecx
je 0x404932
mov esi, dword [0x4110b8]
test esi, esi
jne 0x40406d
mov dword [0x4110b8], 2
jmp 0x40406d
call sub.msvcrt.dll__errno
mov esi, dword [eax]
test esi, esi
jne 0x404959
sub esp, 0xc
push dword [esp + 0x80]
call fcn.0040d560
add esp, 0x10
test eax, eax
je 0x40406d
call sub.msvcrt.dll__errno
mov ebx, dword [eax]
push eax
push dword [0x414740]
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x40
push 0x40f546
push edx
call sub.msvcrt.dll_fprintf
add esp, 0x10
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], ebx
push dword [esp + 0x98]
call sub.msvcrt.dll_perror
add esp, 0x10
mov dword [0x4110b8], 1
jmp 0x40406d
sub esp, 0xc
push ebx
push dword [esp + 0x9c]
push dword [0x414740]
mov ebp, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s__s:_pathname_too_long_n
add ebp, 0x40
push ebp
call sub.msvcrt.dll_fprintf
add esp, 0x20
mov dword [0x4110b8], 1
jmp 0x40419c
mov edx, dword [0x420fb8]
mov ecx, dword [0x420fbc]
jmp 0x403cb2
test ch, 8
jne 0x40445e
test ch, 4
je 0x404b2a
mov edx, dword [0x4110c8]
test edx, edx
jne 0x4040ca
push 0x432030
push dword [0x414740]
push str._s:__s_is_set_group_ID_on_execution___ignored_n
mov ebx, dword [sym.imp.msvcrt.dll__iob]
add ebx, 0x40
push ebx
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4040ca
mov eax, dword [0x4110c8]
test eax, eax
jne 0x4040ca
push 0x432030
push dword [0x414740]
push str._s:__s_is_set_user_ID_on_execution___ignored_n
jmp 0x404447
mov dword [ebx], 0x7261742e
mov byte [ebx + 4], 0
jmp 0x403d42
mov eax, 0x432030
call fcn.00402560
test eax, eax
jne 0x404290
cld
mov ecx, esi
mov edi, 0x432030
mov al, bl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x88], ecx
mov esi, dword [0x4421c0]
mov ecx, 4
mov edi, 0x40f1ea
repe cmpsb byte [esi], byte es:[edi]
jne 0x4044d3
mov dword [esp + 0x80], 0x40e2e8
mov edx, dword [esp + 0x80]
mov ebx, dword [edx]
jmp 0x4044f7
add dword [esp + 0x80], 4
mov edx, dword [esp + 0x80]
mov ebx, dword [edx]
test ebx, ebx
je 0x404e66
sub esp, 8
push dword [esp + 0x94]
push 0x432030
call sub.msvcrt.dll_strcpy
mov edi, ebx
xor eax, eax
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
add esp, 0x10
not ecx
mov edi, dword [esp + 0x88]
lea esi, [ecx + edi - 1]
cmp esi, 0x103
ja 0x404078
sub esp, 8
push ebx
push 0x432030
call sub.msvcrt.dll_strcat
pop eax
pop edx
push 0x420fa0
push 0x180
mov edx, ebp
mov eax, 0x432030
call fcn.00402658
add esp, 0x10
test eax, eax
jns 0x403c5d
call sub.msvcrt.dll__errno
cmp dword [eax], 2
jne 0x404290
sub esp, 8
push dword [0x4421c0]
push ebx
call sub.msvcrt.dll_strcmp
add esp, 0x10
test eax, eax
jne 0x4044de
call sub.msvcrt.dll__errno
mov ebx, dword [eax]
mov dword [esp + 0x84], ebx
jmp 0x4044de
push 0x432030
push dword [0x414740]
push str._s:__s_is_not_a_directory_or_a_regular_file___ignored_n
jmp 0x404447
mov eax, dword [0x4110e4]
xor ebx, ebx
test eax, eax
je 0x4045d1
mov edx, dword [0x4110dc]
test edx, edx
mov dword [esp + 0x58], 0x501
jne 0x4045dc
mov dword [esp + 0x58], 0x8501
lea esi, [esi]
push esi
push 0x180
push dword [esp + 0x60]
push 0x4421d0
call fcn.0040c770
add esp, 0x10
mov dword [0x4421b0], eax
mov dword [0x40e254], eax
call sub.msvcrt.dll__errno
mov ebp, dword [0x4421b0]
test ebp, ebp
mov eax, dword [eax]
jns 0x404a32
cmp eax, 0x11
je 0x404669
cmp eax, 0x26
jne 0x404713
xor eax, eax
mov dword [esp + 0x54], 0
cld
mov ecx, 0xffffffff
mov edi, 0x4421d0
repne scasb al, byte es:[edi]
not ecx
lea ebx, [ecx - 1]
mov ecx, dword [0x4110dc]
test ecx, ecx
mov ebp, 3
je 0x404760
cmp ebx, 1
jle 0x404871
mov byte [ebx + 0x4421cf], 0
mov ebx, 1
jmp 0x4045dc
mov ebp, dword [0x4110d8]
test ebp, ebp
jne 0x4046fb
push 0x4421d0
push dword [0x414740]
mov esi, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s_already_exists_
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
mov edi, dword [0x4110bc]
add esp, 0x10
test edi, edi
je 0x404cdc
sub esp, 0xc
mov edx, dword [sym.imp.msvcrt.dll__iob]
push dword [edx + 0x10]
call sub.msvcrt.dll__isatty
add esp, 0x10
test eax, eax
je 0x404cdc
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x24
push 1
push str._do_you_wish_to_overwrite__y_or_n__
call sub.msvcrt.dll_fwrite
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
mov dword [esp], ecx
call sub.msvcrt.dll_fflush
add esp, 0x10
call fcn.0040c6d0
test eax, eax
je 0x404cdc
sub esp, 0xc
push 0x4421d0
call fcn.0040a3fc
add esp, 0x10
test eax, eax
je 0x4045dc
call sub.msvcrt.dll__errno
mov edi, dword [eax]
push eax
push dword [0x414740]
mov esi, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
add esp, 0x10
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], edi
push 0x4421d0
call sub.msvcrt.dll_perror
add esp, 0x10
mov dword [0x4110b8], 1
jmp 0x4040de
mov eax, 0x4421d0
call fcn.00402560
test eax, eax
mov dword [esp + 0x50], eax
je 0x4049a5
mov eax, dword [esp + 0x50]
cmp ebx, 4
mov byte [eax], 0
mov dword [0x432150], 1
jle 0x4047b8
mov esi, eax
sub esi, 4
cld
mov ecx, 5
mov edi, str..tar
repe cmpsb byte [esi], byte es:[edi]
jne 0x4047b8
mov ebx, dword [esp + 0x50]
mov dword [ebx - 4], 0x7a67742e
mov byte [ebx], 0
mov ebx, 1
jmp 0x4045dc
sub esp, 8
push 0x2f
push 0x4421d0
call sub.msvcrt.dll_strrchr
add esp, 0x10
test eax, eax
mov edx, 0x4421d0
je 0x4047d6
lea edx, [eax + 1]
cmp byte [edx], 0
mov ebx, edx
je 0x404815
lea esi, [esi]
sub esp, 8
push 0x40f580
push ebx
call sub.msvcrt.dll_strcspn
add esp, 0x10
cmp eax, ebp
lea edx, [ebx + eax]
jle 0x4047ff
lea eax, [edx - 1]
mov dword [esp + 0x54], eax
cmp byte [edx], 0
je 0x40480d
cmp byte [edx + 1], 0
lea ebx, [edx + 1]
jne 0x4047e0
mov edx, dword [esp + 0x54]
test edx, edx
jne 0x40485a
dec ebp
jne 0x4047b8
sub esp, 8
push 0x2e
push 0x4421d0
call sub.msvcrt.dll_strrchr
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x404b64
mov al, byte [ebx + 1]
cmp al, 1
mov eax, ebx
sbb eax, 0
sub esp, 8
push dword [0x4421c0]
push eax
call sub.msvcrt.dll_strcpy
mov ebx, 1
add esp, 0x10
jmp 0x4045dc
mov edi, dword [esp + 0x54]
mov cl, byte [edi + 1]
mov byte [edi], cl
inc edi
test cl, cl
mov dword [esp + 0x54], edi
jne 0x40485a
mov eax, edi
dec eax
jmp 0x40483e
sub esp, 0xc
push str.name_too_short
call fcn.0040a4b4
add esp, 0x10
jmp 0x404658
mov eax, dword [0x420fd0]
call fcn.00402704
test eax, eax
mov dword [0x40e244], eax
jns 0x403d5f
jmp 0x4040de
mov edx, dword [0x40e244]
mov eax, dword [0x420fd0]
call fcn.00403178
sub esp, 0xc
push dword [0x420fd0]
call sub.msvcrt.dll__close
add esp, 0x10
test eax, eax
je 0x40406d
call fcn.0040a900
jmp 0x40406d
mov eax, dword [0x4110d4]
test eax, eax
jne 0x4048fa
mov ebx, dword [0x4110d0]
test ebx, ebx
jne 0x403d42
mov ebp, dword [0x4110c0]
test ebp, ebp
jne 0x403d42
mov edi, dword [0x4110cc]
test edi, edi
jne 0x404b79
test eax, eax
jne 0x4040de
mov eax, dword [0x4110c8]
test eax, eax
jne 0x4040de
push 0x432030
push dword [0x414740]
push str._s:__s:_unknown_suffix____ignored_n
jmp 0x404447
push 0x432030
push dword [0x414740]
mov ebp, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s_is_a_directory____ignored_n
add ebp, 0x40
push ebp
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x404340
call sub.msvcrt.dll__errno
mov edi, dword [eax]
push eax
push dword [0x414740]
mov eax, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add eax, 0x40
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], edi
push dword [esp + 0x98]
call sub.msvcrt.dll_perror
add esp, 0x10
mov dword [0x4110b8], 1
jmp 0x40436c
sub esp, 0xc
push str.cant_recover_suffix_n
call fcn.0040a4b4
add esp, 0x10
jmp 0x404776
push ecx
push 0x432030
mov edx, dword [sym.imp.msvcrt.dll__iob]
push str._s:_t
add edx, 0x40
push edx
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x403e20
xor eax, eax
mov edi, 0x4421d0
mov dword [0x432150], 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov esi, dword [0x442180]
lea edi, [ecx + esi - 1]
cmp edi, 0x103
ja 0x404b8c
sub esp, 8
push dword [0x4421c0]
push 0x4421d0
call sub.msvcrt.dll_strcat
add esp, 0x10
jmp 0x403d42
call fcn.0040a900
jmp 0x403e63
test ebx, ebx
je 0x404a7f
mov edx, dword [0x4110dc]
test edx, edx
je 0x404a8d
mov ecx, dword [0x4110c8]
test ecx, ecx
jne 0x404a6b
push 0x4421d0
push dword [0x414740]
mov eax, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s:_warning__name_truncated_n
add eax, 0x40
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov ebx, dword [0x4110b8]
test ebx, ebx
jne 0x404a7f
mov dword [0x4110b8], 2
mov ebp, dword [0x4110dc]
test ebp, ebp
jne 0x403d8a
mov eax, dword [0x432150]
test eax, eax
je 0x404d5d
mov edx, dword [0x4110cc]
test edx, edx
jne 0x403d95
mov edi, dword [0x4110c8]
test edi, edi
jne 0x403d95
sub esp, 0xc
push 0x4421d0
push 0x432030
push dword [0x414740]
mov esi, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s_compressed_to__s_n
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
add esp, 0x20
jmp 0x403d8a
mov ecx, dword [0x4110e0]
test ecx, ecx
jne 0x40406d
mov eax, dword [0x40e254]
test eax, eax
js 0x40406d
sub esp, 0xc
push eax
mov dword [0x40e254], 0xffffffff
call sub.msvcrt.dll__close
mov dword [esp], 0x4421d0
call fcn.0040a3fc
add esp, 0x10
jmp 0x40403c
mov ebp, dword [0x4110d8]
test ebp, ebp
jne 0x403c96
and ch, 2
je 0x404d68
mov ecx, dword [0x4110c8]
test ecx, ecx
jne 0x4040ca
push 0x432030
push dword [0x414740]
push str._s:__s_has_the_sticky_bit_set___file_ignored_n
jmp 0x404447
sub esp, 0xc
push str.internal_error_in_shorten_name
call fcn.0040a4b4
add esp, 0x10
jmp 0x404834
mov esi, dword [0x4110c8]
test esi, esi
jne 0x4040ca
jmp 0x40491d
mov edx, dword [0x4110c8]
test edx, edx
jne 0x4040ca
push 0x432030
push dword [0x414740]
push str._s:__s:_file_name_too_long_n
jmp 0x404447
call sub.msvcrt.dll__errno
mov esi, dword [eax]
mov eax, dword [0x4110c8]
test eax, eax
je 0x404e3e
mov ecx, dword [0x4110b8]
test ecx, ecx
jne 0x404bd7
mov dword [0x4110b8], 2
test eax, eax
jne 0x403f40
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], esi
push 0x4421d0
call sub.msvcrt.dll_perror
add esp, 0x10
jmp 0x403f40
call fcn.0040a68c
jmp 0x403f75
call sub.msvcrt.dll__errno
mov ebx, dword [eax]
mov eax, dword [0x4110c8]
test eax, eax
je 0x404e16
mov ebp, dword [0x4110b8]
test ebp, ebp
jne 0x404c2d
mov dword [0x4110b8], 2
test eax, eax
jne 0x403f5c
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], ebx
push 0x4421d0
call sub.msvcrt.dll_perror
add esp, 0x10
jmp 0x403f5c
sub esp, 0xc
push 0x432030
call fcn.0040a3fc
add esp, 0x10
test eax, eax
je 0x403f8d
call sub.msvcrt.dll__errno
mov ebx, dword [eax]
test ebx, ebx
je 0x403f8d
mov eax, dword [0x4110c8]
test eax, eax
jne 0x404ca3
push ecx
push dword [0x414740]
mov eax, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add eax, 0x40
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov eax, dword [0x4110c8]
mov edi, dword [0x4110b8]
test edi, edi
jne 0x404cb7
mov dword [0x4110b8], 2
test eax, eax
jne 0x403f8d
call sub.msvcrt.dll__errno
sub esp, 0xc
mov dword [eax], ebx
push 0x432030
call sub.msvcrt.dll_perror
add esp, 0x10
jmp 0x403f8d
mov ebx, dword [sym.imp.msvcrt.dll__iob]
add ebx, 0x40
push ebx
push 0x11
push 1
push str._tnot_overwritten_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4040ca
mov edi, dword [sym.imp.msvcrt.dll__iob]
sub esp, 0xc
add edi, 0x40
push edi
mov ecx, dword [0x418f50]
push dword [0x421014]
mov ebx, dword [0x418f54]
sub ecx, dword [0x462360]
push dword [0x421010]
sbb ebx, dword [0x462364]
mov eax, dword [0x421010]
mov edx, dword [0x421014]
jmp 0x403fff
mov ebp, dword [sym.imp.msvcrt.dll__iob]
add ebp, 0x40
push ebp
push 3
push 1
push 0x40f7c1
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x40400d
mov edx, dword [0x4110cc]
jmp 0x403d99
mov ax, word [0x420fa8]
cmp ax, 1
jle 0x403c96
mov esi, dword [0x4110c8]
test esi, esi
jne 0x4040ca
sub esp, 8
cmp ax, 2
mov edx, 0x20
je 0x404d96
mov dl, 0x73
cwde
push edx
dec eax
push eax
push 0x432030
push dword [0x414740]
mov edi, dword [sym.imp.msvcrt.dll__iob]
push str._s:__s_has__lu_other_link_c____unchanged_n
add edi, 0x40
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x20
jmp 0x4040ca
push eax
push 0x4421d0
mov eax, dword [sym.imp.msvcrt.dll__iob]
push str._s:_time_stamp_restored_n
add eax, 0x40
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x403f1c
cmp dword [esp + 0x9c], edx
jne 0x403ef5
jmp 0x403f1c
push esi
push 0x4421d0
mov edx, dword [sym.imp.msvcrt.dll__iob]
push str.____replaced_with__s
add edx, 0x40
push edx
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x404025
push edi
push dword [0x414740]
mov edx, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add edx, 0x40
push edx
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov eax, dword [0x4110c8]
jmp 0x404c19
push eax
push dword [0x414740]
mov edi, dword [sym.imp.msvcrt.dll__iob]
push 0x40f546
add edi, 0x40
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x10
mov eax, dword [0x4110c8]
jmp 0x404bc3
sub esp, 8
push dword [esp + 0x94]
push 0x432030
call sub.msvcrt.dll_strcpy
pop edi
pop ebp
push dword [0x4421c0]
push 0x432030
call sub.msvcrt.dll_strcat
add esp, 0x10
call sub.msvcrt.dll__errno
mov ebp, dword [esp + 0x84]
mov dword [eax], ebp
jmp 0x404290