Function at 0x46b360
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov eax, dword [0x53273c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [0x540de8]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [0x540bf0]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
cmp ecx, dword [eax + 8]
jne 0x46b3e4
mov eax, dword [0x540d70]
movsd xmm0, qword [eax + 0x68]
ucomisd xmm0, qword [0x540de0]
lahf
test ah, 0x44
jp 0x46b3e4
cmp dword [0x540be4], 0
jne 0x46b40e
jmp 0x46b406
mov eax, dword [0x540be4]
test eax, eax
je 0x46b406
push eax
push dword [0x540ddc]
call fcn.00447c80
add esp, 8
mov dword [0x540be4], 0
call fcn.00469d40
mov edx, dword [ebp - 0x70]
xor eax, eax
mov dword [0x540c0c], 0x4fc5ab
mov dword [ebp - 0x70], eax
test esi, esi
je 0x46b45c
push edx
push dword [esi + 8]
call fcn.00459480
push esi
push eax
mov dword [ebp - 0x70], eax
call fcn.00457580
mov ecx, dword [0x540a20]
add esp, 0x10
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x64], 0
lea edx, [eax + eax*4]
mov ecx, dword [ecx + edx*8 + 0x1c]
mov dword [0x540c0c], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x68], ecx
jmp 0x46b488
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], ecx
cmp dword [0x540c48], eax
je 0x46b488
test edi, edi
je 0x46b488
mov eax, dword [0x540ce4]
lea ecx, [eax + eax*4]
mov eax, dword [0x540a20]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x60]
cmp byte [esi], 0
je 0x46b570
push 0x4fcae8
push esi
call fcn.00447b30
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46b4d9
call fcn.004d2e71
push esi
push str.cant_open__s_n
push 1
mov dword [eax], ebx
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
add esp, 0xc
call fcn.0044ca70
mov dword [ebp - 0x60], 0x4fc5ab
jmp 0x46b56d
call fcn.0046bd80
mov eax, dword [0x540bf0]
mov ecx, dword [0x540be8]
mov dword [ebp - 0x74], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x46b564
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax + 0x14]
test edi, edi
js 0x46b557
call fcn.004e37bc
push 0xa
mov eax, dword [eax]
mov edi, dword [eax + edi*4]
push edi
call fcn.004d0a10
mov esi, eax
add esp, 8
test esi, esi
je 0x46b545
nop
inc esi
push edi
mov ecx, esi
sub ecx, edi
push ecx
push 0x5030dc
push ebx
call fcn.00408350
push 0xa
push esi
mov edi, esi
call fcn.004d0a10
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x46b520
push edi
push 0x4fc87c
push ebx
call fcn.00408350
mov ecx, dword [ebp - 0x74]
add esp, 0xc
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x46b4f6
push ebx
call fcn.004d5359
add esp, 4
mov ebx, dword [ebp - 0x6c]
mov eax, dword [0x540c48]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x46b5b4
test esi, esi
jne 0x46b5b4
push dword [0x540c24]
mov dword [0x540ce4], esi
call fcn.00457080
mov edi, dword [ebp - 0x68]
add esp, 4
test edi, edi
je 0x46b5a8
xor eax, eax
cmp dword [edi], eax
cmove edi, eax
mov dword [ebp - 0x68], edi
mov dword [0x540c48], 0
jmp 0x46b5b7
mov edi, dword [ebp - 0x68]
push 0
push 0
call fcn.0040c830
add esp, 8
call fcn.0040c9b0
cmp dword [0x5357b8], 0
mov eax, dword [ebp - 0x80]
fstp qword [ebp - 0x94]
je 0x46ba8e
test eax, eax
je 0x46ba8e
test edi, edi
je 0x46b5fc
push dword [edi]
mov esi, dword [0x540c0c]
call fcn.004d5359
add esp, 4
jmp 0x46b626
test esi, esi
je 0x46b621
mov eax, dword [0x540c20]
push dword [esi]
mov dword [ebp - 0x74], eax
call fcn.004d5359
mov esi, dword [ebp - 0x74]
add esp, 4
mov dword [0x540c48], 0
jmp 0x46b626
mov esi, 0x4fc5ab
cmp dword [0x533f1c], 0
je 0x46b644
mov eax, dword [str.misc]
push str.run_args
mov dword [ebp - 0x78], eax
call fcn.00411360
add esp, 4
xor ecx, ecx
cmp dword [ebx], ecx
je 0x46b657
nop word [eax + eax]
inc ecx
cmp dword [ebx + ecx*4], 0
jne 0x46b650
mov eax, dword [ebp - 0x60]
push esi
push eax
mov eax, dword [0x535784]
add eax, 8
push eax
push ecx
push str.solve_args__d__q__q__q
call fcn.004084d0
mov eax, dword [ebx]
add esp, 0x14
test eax, eax
je 0x46b698
nop dword [eax]
push eax
push 0x4ff2b0
call fcn.004084d0
mov eax, dword [ebx + 4]
lea ebx, [ebx + 4]
add esp, 8
test eax, eax
jne 0x46b680
push 0x4fd7c0
call fcn.004084d0
add esp, 4
cmp dword [0x533f1c], 0
je 0x46b6cf
push str.prompt7
call fcn.00411360
push 0x4fd7c0
call fcn.004084d0
push dword [ebp - 0x78]
call fcn.00411360
add esp, 0xc
jmp 0x46b6df
push 1
call fcn.004d27a8
push eax
call fcn.004d9e2c
add esp, 8
cmp dword [0x533f1c], 0
mov ecx, 4
movups xmm0, xmmword [0x540e78]
mov eax, 0x54
cmovne eax, ecx
push eax
lea eax, [ebp - 0x58]
push eax
push 0
movups xmmword [ebp - 0xa4], xmm0
call fcn.004e3c87
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46b71e
mov dword [ebp - 0x5c], eax
jmp 0x46b840
cmp ebx, 0x54
jae 0x46bb20
cmp dword [0x533f1c], 0
lea eax, [ebp - 0x58]
mov byte [eax + ebx], 0
jne 0x46b73e
mov esi, eax
jmp 0x46b7ca
push 0xa
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.004d49ff
mov ecx, dword [ebp - 0x60]
mov edx, eax
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x58]
cmp ecx, eax
jbe 0x46b840
mov eax, 0x50
lea esi, [ecx + 1]
cmp edx, eax
cmovg edx, eax
sub ecx, ebx
lea eax, [ebp - 0x58]
sub ecx, eax
lea eax, [edx + 1]
add eax, ecx
push eax
lea eax, [ebp - 0x58]
add eax, ebx
push eax
push 0
call fcn.004e3c87
add esp, 0xc
test eax, eax
jg 0x46b7ba
lea ebx, [ebp - 0x58]
push ebx
push str.exit__exitcode___system_time___user_time_
push str.run_args_reply:_expected
push str._s__s_nbut_got___s_
push 0
call fcn.0044c950
add esp, 0x14
xor eax, eax
mov dword [ebp - 0x5c], eax
jmp 0x46b840
add eax, ebx
cmp eax, 0x54
jae 0x46bb20
mov byte [ebp + eax - 0x58], 0
push 5
push str.exit
push esi
mov ebx, esi
call fcn.004d9aa0
add esp, 0xc
test eax, eax
jne 0x46b796
push 0xa
lea eax, [ebp - 0x60]
add esi, 5
push eax
push esi
mov dword [ebp - 0x60], esi
call fcn.004d49ff
mov dword [ebp - 0x5c], eax
add esp, 0xc
mov eax, dword [ebp - 0x60]
cmp esi, eax
je 0x46b796
xor edi, edi
lea ecx, [ebp - 0x60]
mov esi, eax
push ecx
push eax
call fcn.004016a0
mov eax, dword [ebp - 0x60]
add esp, 8
fstp qword [ebp - 0x8c]
cmp eax, esi
je 0x46b83d
movsd xmm0, qword [ebp - 0x8c]
addsd xmm0, qword [ebp + edi*8 - 0xa4]
movsd qword [ebp + edi*8 - 0xa4], xmm0
inc edi
cmp edi, 2
jl 0x46b801
mov edi, dword [ebp - 0x68]
test edi, edi
je 0x46ba13
push 0x50247c
push dword [0x540c0c]
call fcn.00447b30
add esp, 8
mov dword [edi], eax
test eax, eax
jne 0x46b88a
mov eax, dword [ebp - 0x7c]
lea esi, [eax + eax*4]
mov eax, dword [0x540a20]
shl esi, 3
add eax, esi
push eax
call fcn.00457720
mov eax, dword [0x540a20]
add eax, 0x20
add eax, esi
push eax
call fcn.004802a0
add esp, 8
mov ebx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x5c]
call fcn.0040c9b0
mov edx, dword [ebp - 0x84]
mov esi, 2
fsub qword [ebp - 0x94]
mov eax, dword [edx + 0xc]
fstp qword [ebp - 0x94]
movsd xmm0, qword [ebp - 0x94]
mov eax, dword [eax + 0x94]
movsd qword [eax], xmm0
mov eax, dword [edx + 0x1c]
mov eax, dword [eax + 0x94]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd xmm0, qword [ebp - 0xa4]
subsd xmm0, qword [0x540e78]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x94]
movsd qword [eax], xmm0
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x94]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd xmm0, qword [ebp - 0xa4]
mov eax, dword [edx + 8]
movsd qword [0x540e78], xmm0
movsd xmm0, qword [ebp - 0x9c]
subsd xmm0, qword [0x540e80]
mov eax, dword [eax + 0x94]
movsd qword [eax], xmm0
mov eax, dword [edx + 0x18]
add edx, 4
mov eax, dword [eax + 0x94]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd xmm0, qword [ebp - 0x9c]
movsd qword [0x540e80], xmm0
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x94]
mov eax, dword [edx]
movsd xmm0, qword [ecx]
mov eax, dword [eax + 0x94]
addsd xmm0, qword [eax]
mov eax, dword [edx - 4]
add edx, 0x10
mov eax, dword [eax + 0x94]
movsd qword [eax], xmm0
sub esi, 1
jne 0x46b951
mov ecx, dword [ebp - 0x84]
movsd xmm0, qword [0x521320]
mov eax, dword [ecx]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 4]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 8]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 0xc]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 0x10]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 0x14]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
mov eax, dword [ecx + 0x1c]
movsd xmm0, qword [0x521320]
movsd qword [eax + 0x68], xmm0
test ebx, ebx
je 0x46bad2
mov eax, dword [ebx]
jmp 0x46baed
mov ebx, dword [ebp - 0x64]
test ebx, ebx
je 0x46b88d
push 0x50247c
push dword [0x540c20]
call fcn.00447b30
mov dword [0x540c48], eax
add esp, 8
mov dword [ebx], eax
cmp dword [0x540c48], 0
jne 0x46b88d
mov eax, dword [0x540ce4]
lea ecx, [eax + eax*4]
mov eax, dword [0x540a20]
lea eax, [eax + ecx*8]
push eax
call fcn.00457720
mov eax, dword [0x540ce4]
lea ecx, [eax + eax*4]
mov eax, dword [0x540a20]
lea eax, [eax + ecx*8]
add eax, 0x20
push eax
call fcn.004802a0
push dword [0x540c20]
push str.Could_not_reopen_log_file__Q
push 0
call fcn.0044c950
add esp, 0x14
jmp 0x46b88d
push dword [eax*4 + 0x522378]
lea ecx, [ebp - 0xa4]
push dword [0x540be4]
push ecx
push dword [eax*4 + 0x5223c4]
push esi
push edi
push dword [eax*4 + 0x540df8]
push dword [eax*4 + 0x540d4c]
push ebx
push dword [ebp - 0x88]
call fcn.004a6d00
mov ebx, dword [ebp - 0x64]
add esp, 0x28
mov edi, eax
jmp 0x46b890
cmp dword [ebp - 0x6c], 0
je 0x46baf2
push 0x540ce4
push 1
push dword [0x540c24]
call fcn.00457370
add esp, 0xc
mov dword [0x540c48], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x46bb0d
dec dword [eax + 4]
cmp dword [eax + 4], 0
jg 0x46bb0d
push eax
push dword [eax]
call fcn.00447c80
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret
call fcn.004cee9d
int3