Function at 0x40f4f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, 0x55
sub esp, 0x7c
mov dword [ebp - 0x48], eax
mov eax, dword [sym.imp.msvcrt.dll__open]
mov dword [esp + 8], 0x180
mov dword [esp + 4], 0x8101
mov dword [esp], str.fdopen.tst
mov dword [ebp - 0x40], eax
call eax
mov esi, eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], str.ghjghjghjghj
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__write]
sub ebx, 1
jne 0x40f524
mov dword [esp + 8], 2
mov dword [esp + 4], 0x45d8a8
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__write]
mov dword [esp + 8], 0x28
mov dword [esp + 4], str.0_1_2_3_4_5_6_7_8_9_r_n_r_nA_B_C_D_E_r_nX_Y_Z
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__write]
mov eax, dword [sym.imp.msvcrt.dll__close]
mov dword [esp], esi
mov dword [ebp - 0x50], eax
call eax
mov edi, dword [ebp - 0x48]
test edi, edi
je 0x410592
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x40]
mov esi, 0x3fd
mov dword [esp], str.fdopen.tst
call eax
mov dword [esp + 4], 0x45af56
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__fdopen]
mov dword [ebp - 0x5c], eax
call eax
mov dword [esp + 4], 0x106
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x1c], eax
call fcn.0044c860
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x4c], 0x204
mov dword [ebp - 0x30], 0x424
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], edi
mov edi, str.ascii_mode
mov edx, dword [sym.imp.msvcrt.dll_ftell]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov dword [esp], eax
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.Did_not_start_at_beginning_of_file_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x107
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov ecx, dword [sym.imp.msvcrt.dll_fgets]
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], 0x500
mov dword [esp], 0x46b320
mov dword [ebp - 0x28], ecx
mov dword [esp + 8], eax
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.padding_line_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov dword [esp], eax
call edx
mov dword [esp + 4], 0x10a
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x34], eax
call fcn.0044c860
mov eax, dword [ebp - 0x34]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0x3fe
cmp eax, 0x3fe
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.padding_line_ftell_got__d_should_be__d_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x10b
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, 0x46b320
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40f6dc
mov ecx, eax
mov dword [esp + 0x10], edi
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0xc], esi
cmove eax, ecx
lea ecx, [edx + 2]
mov dword [esp + 4], str.padding_line_fgets_got_size__d_should_be__d_in__s_n
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 0x46b323
xor eax, eax
cmp edx, esi
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.0044cad0
xor eax, eax
jmp 0x40f742
mov eax, esi
lea esi, [eax + 1]
cmp esi, 0x27
je 0x41061a
cmp byte [esi + str.0_1_2_3_4_5_6_7_8_9_r_n_r_nA_B_C_D_E_r_nX_Y_Z], 0xa
jne 0x40f740
lea ecx, [eax + 0x400]
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 0x402]
add eax, 0xe
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
mov dword [esp + 4], 0x110
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], 0x100
mov dword [esp], 0x46b320
mov dword [esp + 8], eax
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.line_1_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov dword [esp + 4], 0x112
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x3c], eax
call fcn.0044c860
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x10], edi
mov dword [esp + 4], str.line_1_ftell_got__d_should_be__d_in__s_n
cmp eax, edx
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x113
mov dword [esp], 0x45a2c0
call fcn.0044c860
add esi, dword [ebp - 0x44]
mov edx, 0x46b320
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40f825
mov ecx, eax
mov dword [esp + 0x10], edi
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0xc], esi
cmove eax, ecx
lea ecx, [edx + 2]
mov dword [esp + 4], str.line_1_fgets_got_size__d_should_be__d_in__s_n
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 0x46b323
xor eax, eax
cmp esi, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x117
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, dword [sym.imp.msvcrt.dll_fseek]
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x3fe
mov dword [ebp - 0x44], edx
mov dword [esp], eax
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.seek_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov dword [esp], eax
call edx
mov dword [esp + 4], 0x119
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x3c], eax
call fcn.0044c860
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0x3fe
cmp eax, 0x3fe
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.ftell_after_seek_got__d_should_be__d_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x11a
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], 0x100
mov dword [esp], 0x46b320
mov dword [esp + 8], eax
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.second_read_of_line_1_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov dword [esp], eax
call edx
mov dword [esp + 4], 0x11c
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x3c], eax
call fcn.0044c860
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x10], edi
mov dword [esp + 4], str.second_read_of_line_1_ftell_got__d_should_be__d_in__s_n
cmp eax, ecx
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ecx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x11d
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, 0x46b320
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40f9cc
mov ecx, eax
mov dword [esp + 0xc], esi
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0x10], edi
cmove eax, ecx
lea ecx, [edx + 2]
mov dword [esp + 4], str.second_read_of_line_1_fgets_got_size__d_should_be__d_in__s_n
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 0x46b323
xor eax, eax
cmp esi, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x11f
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov esi, dword [ebp - 0x1c]
mov dword [esp + 4], 0x100
mov dword [esp], 0x46b320
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], esi
call eax
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.line_2_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp], esi
mov eax, dword [ebp - 0x20]
call eax
mov dword [esp + 4], 0x122
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
mov eax, dword [ebp - 0x38]
mov dword [esp + 0x10], edi
mov dword [esp + 8], esi
cmp esi, eax
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 4], str.line_2_ftell_got__d_should_be__d_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x123
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, 0x46b320
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40facb
mov ecx, eax
mov dword [esp + 0x10], edi
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 4], str.line_2_fgets_got_size__d_should_be__d_in__s_n
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
mov eax, dword [ebp - 0x24]
sbb edx, 0x46b323
cmp eax, edx
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov esi, dword [ebp - 0x1c]
mov eax, dword [sym.imp.msvcrt.dll_rewind]
mov dword [esp], esi
mov dword [ebp - 0x38], eax
call eax
mov dword [esp + 4], 0x128
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov dword [esp], esi
mov eax, dword [ebp - 0x20]
call eax
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.Did_not_start_at_beginning_of_file_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x129
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, dword [ebp - 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x1fa
mov dword [esp], 0x46b320
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.padding_line_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov edx, dword [sym.imp.msvcrt.dll_fread]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x227
mov dword [ebp - 0x34], edx
mov dword [esp + 4], 1
mov dword [esp], 0x46b320
call edx
mov dword [esp + 4], 0x12c
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x24], eax
call fcn.0044c860
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0x227
cmp eax, 0x227
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 4], str.fread_failed__expected__d_got__d_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp], esi
mov eax, dword [ebp - 0x20]
call eax
mov dword [esp + 4], 0x12e
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp eax, esi
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 4], str.ftell_after_fread_got__d_should_be__d_in__s_n
xor esi, esi
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov byte [ebp - 0x30], 0x67
mov edx, 0x68
mov dword [ebp - 0x3c], ebx
mov ebx, edx
mov dword [esp + 4], 0x130
mov dword [esp], 0x45a2c0
call fcn.0044c860
movsx ecx, byte [esi + 0x46b320]
mov dword [esp + 4], str.expected__c_got__c_n
mov eax, ecx
mov dword [esp + 0xc], ecx
movsx ecx, byte [ebp - 0x30]
cmp al, bl
sete al
mov dword [esp + 8], ecx
add esi, 1
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
cmp esi, 3
je 0x40fcd1
movzx eax, byte [esi + str.ghjghjghjghj]
movzx ebx, byte [esi + 0x45d8b0]
mov byte [ebp - 0x30], al
jmp 0x40fc75
mov ebx, dword [ebp - 0x3c]
mov esi, str.0_1_2_3_4_5_6_7_8_9_r_n_r_nA_B_C_D_E_r_nX_Y_Z
mov ecx, dword [ebp - 0x4c]
cmp dword [ebp - 0x24], ecx
jle 0x40fd5c
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x4c]
lea esi, [esi]
nop
mov dword [esp + 4], 0x134
mov dword [esp], 0x45a2c0
call fcn.0044c860
movsx ecx, byte [ebx + 0x46b320]
movzx eax, byte [esi]
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov edx, ecx
mov dword [esp + 0x10], ecx
movsx ecx, al
cmp dl, al
mov dword [esp + 0xc], ecx
sete al
mov dword [esp + 4], str.char__d_expected__c_got__c_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov edx, dword [ebp - 0x2c]
lea eax, [esi + 1]
test edx, edx
je 0x40fd4f
cmp byte [esi + 1], 0xd
je 0x410530
mov esi, eax
add ebx, 1
cmp dword [ebp - 0x24], ebx
jne 0x40fcf0
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov dword [esp], esi
call eax
mov dword [esp + 4], 0x13b
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, dword [ebp - 0x20]
mov dword [esp], esi
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.Did_not_start_at_beginning_of_file_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x13c
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov ecx, dword [ebp - 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x1fa
mov dword [esp], 0x46b320
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.padding_line_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x1c], esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], 1
mov dword [esp], 0x46b320
call eax
mov dword [esp + 4], 0x13f
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
mov edx, dword [ebp - 0x58]
xor eax, eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
cmp esi, edx
mov dword [esp + 8], edx
sete al
mov dword [esp + 4], str.fread_failed__expected__d_got__d_in__s_n
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x141
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x44]
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], esi
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.seek_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x142
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov dword [ebp - 0x1c], esi
mov dword [esp], esi
mov esi, dword [sym.imp.msvcrt.dll_feof]
call esi
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.feof_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x143
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 0x46b320
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.fread_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x144
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call esi
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.feof_failure_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x145
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x44]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xfffffffd
mov dword [esp], eax
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.seek_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x146
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call esi
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.feof_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x147
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov dword [esp + 0xc], eax
mov dword [esp], 0x46b320
call ecx
mov dword [esp + 8], edi
cmp eax, 1
mov dword [esp + 4], str.fread_failed_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x148
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call esi
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.feof_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x149
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
mov dword [esp + 8], 1
mov dword [esp + 4], 2
mov dword [esp + 0xc], eax
mov dword [esp], 0x46b320
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.fread_failure_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x14a
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call esi
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.feof_failure_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov dword [esp], esi
call eax
mov dword [esp + 4], 0x14e
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov edx, dword [ebp - 0x20]
mov dword [esp], esi
call edx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.Did_not_start_at_beginning_of_file_in__s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x14f
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov ecx, dword [ebp - 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x500
mov dword [esp], 0x46b320
call ecx
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.padding_line_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [sym.imp.msvcrt.dll__getw]
mov dword [esp], esi
mov dword [ebp - 0x20], eax
call eax
mov dword [esp + 4], 0x152
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
xor eax, eax
cmp esi, 0x2c312c30
mov dword [esp + 0x10], edi
sete al
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x2c312c30
mov dword [esp + 4], str._getw_failed__expected__08x_got__08x_in__s_n
mov dword [esp], eax
call fcn.0044cad0
xor edx, edx
jmp 0x4101d5
mov edx, eax
lea eax, [edx + 1]
cmp eax, 0x27
je 0x410604
cmp byte [eax + str.0_1_2_3_4_5_6_7_8_9_r_n_r_nA_B_C_D_E_r_nX_Y_Z], 0xa
jne 0x4101d3
lea eax, [edx - 4]
lea esi, [edx - 1]
movzx edx, byte [edx + 0x45d87f]
mov dword [ebp - 0x24], eax
mov dword [esp + 4], 0x157
mov dword [esp], 0x45a2c0
mov byte [ebp - 0x30], dl
call fcn.0044c860
mov eax, dword [ebp - 0x1c]
mov dword [esp], 0x46b320
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
call eax
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 4], str.line_1_fgets_failed_unexpected_in__s_n
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [ebp - 0x24], ebx
xor ecx, ecx
xor eax, eax
mov ebx, dword [ebp - 0x2c]
movzx edx, byte [ebp - 0x30]
jmp 0x410268
movzx edx, byte [esi + eax + str.0_1_2_3_4_5_6_7_8_9_r_n_r_nA_B_C_D_E_r_nX_Y_Z]
test ebx, ebx
je 0x410271
cmp dl, 0xd
je 0x41027a
mov byte [ecx + 0x46b320], dl
add ecx, 1
add eax, 1
cmp eax, 6
jne 0x410260
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
mov dword [esp], eax
call ecx
mov dword [esp + 4], 0x15e
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
mov eax, dword [0x46b320]
mov dword [esp + 0x10], edi
mov edi, 0x46b320
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str._getw_failed__expected__08x_got__08x_in__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll_fclose]
mov dword [ebp - 0x1c], eax
call eax
mov eax, dword [sym.imp.msvcrt.dll__unlink]
mov dword [esp], str.fdopen.tst
mov dword [ebp - 0x20], eax
call eax
mov dword [esp + 8], 0x180
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], 0x8101
mov dword [esp], str.fdopen.tst
call eax
mov dword [esp + 4], 0x165
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 4], str.open_failed_n
setne al
mov dword [esp], eax
call fcn.0044cad0
mov edx, 0x800
mov eax, 0x61616161
mov ecx, edx
rep stosd dword es:[edi], eax
mov dword [esp + 4], 0x168
mov dword [esp], 0x45a2c0
mov byte [0x46b321], 0x1a
mov dword [ebp - 0x24], ecx
call fcn.0044c860
mov dword [esp], esi
mov dword [esp + 8], 0x2000
mov dword [esp + 4], 0x46b320
call dword [sym.imp.msvcrt.dll__write]
mov dword [esp + 4], str.write_failed_n
cmp eax, 0x2000
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x169
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov dword [esp], esi
mov edi, dword [ebp - 0x50]
call edi
mov dword [esp + 4], str.close_failed_n
mov edi, 0x46b320
cmp eax, 0xffffffff
setne al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x40]
mov dword [esp], str.fdopen.tst
call eax
mov dword [esp + 4], 0x16c
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 4], str.open_failed_n
setne al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [ebp - 0x48]
mov ecx, 0x45b429
mov dword [esp], esi
test eax, eax
mov eax, 0x45af56
cmove eax, ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c]
call eax
mov dword [esp + 4], 0x16e
mov dword [esp], 0x45a2c0
mov esi, eax
call fcn.0044c860
xor eax, eax
test esi, esi
mov dword [esp + 4], str.fdopen_failed_n
setne al
mov dword [esp], eax
call fcn.0044cad0
mov edx, dword [ebp - 0x24]
mov ecx, 0x800
mov eax, edx
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], esi
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x1000
mov dword [esp], 0x46b320
call eax
mov dword [esp + 4], 0x172
mov dword [esp], 0x45a2c0
mov edi, eax
call fcn.0044c860
xor eax, eax
test edi, edi
mov dword [esp + 4], str.fread_succeeded_n
sete al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x173
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [esi + 0x18]
mov dword [esp + 4], str.file___bufsiz___d_n
cmp eax, 0x1000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
jmp 0x410514
cmp eax, 0x61
jne 0x410538
cmp ebx, 0xfff
je 0x41063b
add ebx, 1
mov edi, ebx
movsx eax, byte [ebx + 0x46b320]
cmp ebx, 1
jne 0x410500
cmp eax, 0x1a
je 0x410511
xor ebx, ebx
jmp 0x410543
add esi, 2
jmp 0x40fd51
xor ebx, ebx
cmp edi, 0x1000
sete bl
mov dword [esp + 4], 0x176
mov dword [esp], 0x45a2c0
call fcn.0044c860
movsx eax, byte [edi + 0x46b320]
mov dword [esp], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.buffer__d____d_n
call fcn.0044cad0
mov dword [esp], esi
mov eax, dword [ebp - 0x1c]
call eax
mov dword [esp], str.fdopen.tst
mov eax, dword [ebp - 0x20]
call eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x8000
mov eax, dword [ebp - 0x40]
mov esi, 0x3fe
mov edi, str.binary_mode
mov dword [esp], str.fdopen.tst
call eax
mov dword [esp + 4], 0x45b429
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__fdopen]
mov dword [ebp - 0x5c], eax
call eax
mov dword [esp + 4], 0x106
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x1c], eax
call fcn.0044c860
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x4c], 0x205
mov dword [ebp - 0x30], 0x420
mov dword [ebp - 0x24], 2
jmp 0x40f5f5
mov edx, 0x2c
mov esi, 0x25
mov dword [ebp - 0x24], 0x22
jmp 0x4101fa
mov dword [ebp - 0x58], 0x34
mov dword [ebp - 0x54], 0x34
mov dword [ebp - 0x38], 0x428
mov dword [ebp - 0x34], 0x426
jmp 0x40f772
mov ebx, 1
mov edi, 0x1000
jmp 0x410543