Function at 0x40d3f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x53273c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea ebx, [eax + 0x34]
push edi
mov edi, dword [ebp + 0xc]
push esi
push 1
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x6c]
push 0x28
push eax
mov dword [ebp - 0x78], edi
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x70], ebx
call fcn.004d563d
add esp, 0x10
cmp eax, 1
jne 0x40e5fd
lea eax, [ebp - 0x80]
mov dword [ebp - 0xdc], 0
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.004016a0
movd xmm2, dword [0x51ffd0]
add esp, 8
cvtdq2pd xmm2, xmm2
fstp qword [ebp - 0xc8]
movsd xmm1, qword [ebp - 0xc8]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x40d4c3
movsd xmm0, qword [0x4fc9c0]
subsd xmm0, xmm2
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x40d519
lea eax, [ebp - 0x6c]
mov dword [ebp - 0xdc], 1
push eax
call fcn.00410f40
add esp, 4
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov eax, dword [edi + 0x28]
add edx, ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xf8], edx
cmp ecx, eax
je 0x40d589
push eax
push ecx
lea eax, [ebp - 0x44]
push str.header_gives_arity__d_rather_than__d
push eax
call fcn.004086e0
mov ecx, dword [ebp - 0x9c]
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d500
sub ecx, edx
lea edx, [ebp - 0x44]
lea esi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x40d510
jmp 0x40d557
sub esp, 8
lea eax, [ebp - 0x44]
movsd qword [esp], xmm1
push str.header_gives_unexpected_arkind___g
push eax
call fcn.004086e0
mov ecx, dword [ebp - 0x9c]
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d540
sub ecx, edx
lea edx, [ebp - 0x44]
lea esi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x40d550
sub edx, esi
lea eax, [edx + 0x20]
add eax, ecx
push eax
push dword [edi + 0x20]
mov eax, dword [ebx]
call eax
lea ecx, [ebp - 0x44]
push ecx
push dword [ebp - 0x9c]
push str.Error_reading_file__s:_n_t_s.
push eax
mov dword [edi + 0x18], eax
call fcn.004086e0
push dword [ebp - 0xa4]
jmp 0x40e634
mov ebx, dword [edi + 0x2c]
mov dword [ebp - 0x7c], ebx
cmp edx, ebx
jge 0x40d5e6
lea eax, [ebx + ecx]
push eax
lea eax, [edx + ecx]
push eax
lea eax, [ebp - 0x44]
push str.header_says_only__d_columns__expected_at_least__d
push eax
call fcn.004086e0
mov ebx, dword [ebp - 0x9c]
add esp, 0x10
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d5b7
sub ecx, edx
lea edx, [ebp - 0x44]
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x40d5c6
sub edx, esi
lea eax, [edx + 0x20]
add eax, ecx
push eax
mov eax, dword [ebp - 0x70]
push dword [edi + 0x20]
mov eax, dword [eax]
call eax
lea ecx, [ebp - 0x44]
push ecx
push ebx
jmp 0x40d570
mov eax, dword [ebp - 0x48]
lea edi, [edx*4]
add eax, edi
mov dword [ebp - 0x84], edi
push eax
mov eax, dword [ebp - 0x78]
push dword [eax + 0x20]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x124]
mov esi, eax
mov dword [ebp - 0xd4], ecx
push str.string_table
push edx
push ecx
lea eax, [edi + esi]
mov dword [ebp - 0x110], esi
push eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x80], eax
call fcn.00410940
add esp, 0x18
test eax, eax
jne 0x40e63c
mov ecx, dword [ebp - 0x80]
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0x80], ecx
test al, al
jne 0x40d644
mov eax, dword [ebp - 0xf8]
xor edx, edx
test eax, eax
jle 0x40d67b
nop word [eax + eax]
mov dword [esi + edx*4], ecx
mov ecx, dword [ebp - 0x80]
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0x80], ecx
test al, al
jne 0x40d666
mov eax, dword [ebp - 0xf8]
inc edx
cmp edx, eax
jl 0x40d660
mov ecx, dword [ebp - 0x74]
lea esi, [ebx + eax]
lea eax, [esi + ebx]
lea eax, [eax + esi*2]
lea eax, [eax + ecx*2]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [ebp - 0x78]
push dword [eax + 0x20]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
call eax
mov edx, dword [ebp - 0x74]
mov ecx, eax
mov dword [ebp - 0xf4], ecx
push 0
shl ebx, 2
lea eax, [edx*8]
mov dword [ebp - 0x88], ebx
add eax, ecx
mov dword [ebp - 0xac], eax
lea ecx, [eax + esi*4]
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0xd0], ecx
add ecx, ebx
push ecx
push dword [ebp - 0x110]
mov dword [ebp - 0xbc], ecx
push dword [esi + 0xc]
push eax
push edx
push edx
call fcn.00410f90
add esp, 0x24
test eax, eax
je 0x40d730
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + eax*4 - 4]
mov dword [ebp - 0x80], ecx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d700
sub ecx, edx
lea eax, [ecx + 0x20]
push eax
mov eax, dword [ebp - 0x70]
push dword [esi + 0x20]
mov eax, dword [eax]
call eax
push dword [ebp - 0x80]
mov dword [esi + 0x18], eax
push str.Column__Q_not_found.
push eax
call fcn.004086e0
add esp, 0x14
jmp 0x40e63c
cmp dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0xd8], 0
lea ecx, [eax*4]
lea esi, [ecx + edx]
je 0x40d7db
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0x110]
add eax, ecx
push eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 0xc]
add eax, ecx
push eax
mov eax, dword [ebp - 0xf8]
sub eax, dword [ebp - 0x74]
push esi
push eax
push dword [ebp - 0x7c]
call fcn.00410f90
mov edx, dword [ebp - 0x7c]
add esp, 0x1c
xor ecx, ecx
test edx, edx
jle 0x40d7d5
mov ebx, dword [ebp - 0xd0]
xor edi, edi
mov eax, dword [esi + ecx*4]
test eax, eax
js 0x40d7b5
add eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x7c]
mov dword [esi + ecx*4], eax
jmp 0x40d7be
mov eax, dword [ebp - 0x74]
add eax, ecx
mov dword [ebx + edi*4], eax
inc edi
inc ecx
cmp ecx, edx
jl 0x40d7a3
mov ebx, dword [ebp - 0x88]
mov dword [ebp - 0xd8], edi
mov edi, dword [ebp - 0x84]
mov edx, dword [ebp - 0xac]
mov esi, dword [ebp - 0x7c]
add esi, dword [ebp - 0x74]
cmp dword [ebp - 0xf8], 0
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x98], esi
jle 0x40d809
mov ecx, edi
mov edi, dword [ebp - 0xbc]
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x84]
xor eax, eax
test esi, esi
jle 0x40d82a
mov ebx, dword [ebp - 0xbc]
mov ecx, dword [edx + eax*4]
test ecx, ecx
js 0x40d81f
mov dword [ebx + ecx*4], eax
inc eax
cmp eax, esi
jl 0x40d815
mov ebx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xbc]
lea edx, [edi + ecx]
cmp dword [ebp - 0x74], esi
jge 0x40d850
shr ebx, 2
or eax, 0xffffffff
mov ecx, ebx
mov ebx, dword [ebp - 0x74]
lea edi, [edx + ebx*4]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xbc]
jmp 0x40d853
mov ebx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xf8]
mov eax, ebx
cmp ebx, edx
jge 0x40d872
nop
cmp dword [ecx + eax*4], 0
jge 0x40d86a
mov dword [ecx + eax*4], esi
inc esi
inc eax
cmp eax, edx
jl 0x40d860
mov dword [ebp - 0x7c], esi
xor edi, edi
xor edx, edx
xor esi, esi
test ebx, ebx
jle 0x40d8ae
nop dword [eax]
mov eax, dword [ecx + esi*4]
inc esi
mov ecx, dword [ebp - 0xe0]
movsx ecx, byte [eax + ecx]
lea eax, [edx + 1]
test cl, 1
cmove eax, edx
test cl, 2
mov ecx, dword [ebp - 0xbc]
mov edx, eax
lea eax, [edi + 1]
cmove eax, edi
mov edi, eax
cmp esi, ebx
jl 0x40d880
cmp dword [ebp - 0x50], 0
mov ecx, 1
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x78]
je 0x40d8ea
test edx, edx
lea eax, [ebx*8]
mov dword [ebp - 0xf0], eax
cmove edx, ecx
imul eax, edx
push eax
mov eax, dword [ebp - 0x70]
push dword [esi + 0x20]
mov eax, dword [eax]
call eax
add esp, 8
mov dword [ebp - 0x94], eax
jmp 0x40d908
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0x4c], 0
mov dword [ebp - 0xcc], eax
je 0x40d96a
test bl, 1
lea eax, [ebx + 1]
cmove eax, ebx
mov ebx, dword [ebp - 0x70]
imul eax, dword [0x520030]
push eax
push dword [esi + 0x20]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebx]
call eax
mov ecx, dword [ebp - 0x54]
test edi, edi
mov dword [ebp - 0xc0], eax
lea eax, [eax + ecx*4]
mov dword [ebp - 0xe8], eax
mov eax, 1
cmove edi, eax
mov eax, dword [ebx]
imul ecx, edi
shl ecx, 2
push ecx
push dword [esi + 0x20]
call eax
add esp, 0x10
mov dword [ebp - 0x88], eax
jmp 0x40d997
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x88], edx
mov ecx, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0xec], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x90], edi
test ecx, ecx
jle 0x40dc57
nop dword [eax]
mov eax, dword [ebp - 0xe0]
mov esi, ebx
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xa0], 0
movsx ebx, byte [eax]
inc eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0xe0], eax
test bl, 1
je 0x40da76
push dword [ebp - 0xa4]
mov eax, dword [ebp - 0x94]
push 1
push dword [ebp - 0xf0]
mov dword [ebp - 0xb8], eax
push eax
call fcn.004d563d
add esp, 0x10
cmp eax, 1
jne 0x40dbcc
cmp dword [ebp - 0xdc], 0
mov ecx, esi
mov dword [ebp - 0x70], ecx
je 0x40da79
mov eax, dword [ebp - 0x94]
mov edi, eax
mov ebx, dword [ebp - 0xf0]
add ebx, eax
mov dword [ebp - 0x70], ecx
cmp eax, ebx
jae 0x40db3c
mov dword [ebp - 0x70], esi
nop dword [eax]
mov edx, edi
lea esi, [edi + 7]
add edi, 8
mov al, byte [esi]
mov cl, byte [edx]
mov byte [edx], al
inc edx
mov byte [esi], cl
dec esi
cmp edx, esi
jb 0x40da58
cmp edi, ebx
jb 0x40da50
mov ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x70]
mov esi, ecx
test bl, 2
je 0x40dbc4
mov edi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xc0]
mov ebx, eax
push edi
push 1
push dword [ebp - 0xd4]
mov dword [ebp - 0x84], ebx
push eax
call fcn.004d563d
add esp, 0x10
cmp eax, 1
jne 0x40dc10
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x70], esi
je 0x40daf8
mov edx, ebx
mov dword [ebp - 0x70], esi
mov ebx, dword [ebp - 0xd4]
mov edi, edx
add ebx, edx
cmp edx, ebx
jae 0x40daf2
mov dword [ebp - 0x70], esi
mov edx, edi
lea esi, [edi + 3]
add edi, 4
nop dword [eax]
mov al, byte [esi]
mov cl, byte [edx]
mov byte [edx], al
inc edx
mov byte [esi], cl
dec esi
cmp edx, esi
jb 0x40dae0
cmp edi, ebx
jb 0x40dad5
mov ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
mov edx, edi
mov esi, dword [ebp - 0xe8]
mov dword [ebp - 0xa0], edx
cmp dword [ebp - 0xc0], esi
jae 0x40db72
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebx]
lea edx, [edi + 4]
add ebx, 4
sub eax, 0
je 0x40db57
sub eax, 1
je 0x40db4d
mov dword [edi], ecx
mov ecx, dword [ebp - 0x80]
nop
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0x80], ecx
test al, al
jne 0x40db30
jmp 0x40db60
mov ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x90]
jmp 0x40da79
mov eax, dword [ebp - 0xe4]
mov dword [edi], eax
jmp 0x40db5d
mov dword [edi], 0
mov ecx, dword [ebp - 0x80]
mov edi, edx
cmp ebx, esi
jb 0x40db17
mov dword [ebp - 0x88], edx
mov edx, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x90]
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0xf4]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0xb8]
mov dword [esi + ecx*8], eax
test eax, eax
je 0x40dba6
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x54]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0x94], ebx
inc edi
mov dword [esi + ecx*8 + 4], edx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x90], edi
cmp edi, ecx
jge 0x40dc54
mov ebx, dword [ebp - 0x70]
jmp 0x40d9c0
mov edx, dword [ebp - 0xa0]
jmp 0x40db78
mov esi, dword [ebp - 0x9c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dbd7
mov ebx, dword [ebp - 0x78]
sub ecx, edx
lea eax, [ecx + 0x29]
push eax
mov eax, dword [ebp - 0x70]
push dword [ebx + 0x20]
mov eax, dword [eax]
call eax
push esi
push str.real_data
push str.could_not_read__s_from_file__s.
push eax
mov dword [ebx + 0x18], eax
call fcn.004086e0
push dword [ebp - 0xa4]
jmp 0x40e634
mov esi, dword [ebp - 0x9c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dc20
mov ebx, dword [ebp - 0x78]
sub ecx, edx
lea eax, [ecx + 0x2f]
push eax
mov eax, dword [ebp - 0x70]
push dword [ebx + 0x20]
mov eax, dword [eax]
call eax
push esi
push str.symbol_pointers
push str.could_not_read__s_from_file__s.
push eax
mov dword [ebx + 0x18], eax
call fcn.004086e0
push edi
jmp 0x40e634
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x54]
mov esi, dword [esi + 0x34]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x94], esi
lea eax, [eax + ecx*2]
mov dword [ebp - 0xac], esi
add eax, ecx
add eax, esi
shl eax, 2
push eax
mov eax, dword [ebp - 0x78]
push dword [eax + 0x20]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
call eax
mov ebx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x88], ebx
lea edi, [eax*8]
push edi
push 0
push ebx
call fcn.004d0130
mov edx, dword [ebp - 0x74]
lea ecx, [edi + ebx]
mov ebx, dword [ebp - 0xb0]
add esp, 0x14
lea eax, [edx*4]
add eax, ecx
mov dword [ebp - 0xb4], eax
lea edx, [eax + ebx*4]
mov dword [ebp - 0x84], edx
test esi, esi
jle 0x40dcd6
mov ecx, esi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
xor esi, esi
mov dword [ebp - 0xa8], esi
test ebx, ebx
jle 0x40dddd
mov ebx, dword [ebp - 0xf4]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0xa0], edx
xor edi, edi
cmp dword [ebp - 0x74], ecx
jle 0x40dd92
mov eax, dword [ebx + 4]
test eax, eax
je 0x40dd67
mov esi, dword [eax + esi*4]
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x40dd61
cmp esi, dword [ebp - 0xe4]
je 0x40dd61
test ecx, ecx
jne 0x40dd5e
mov esi, dword [ebp - 0x74]
mov edx, esi
lea ecx, [edx*4]
push ecx
lea eax, [esi*8]
add eax, dword [ebp - 0x88]
push 0
push eax
mov dword [ebp - 0xb8], eax
call fcn.004d0130
mov esi, dword [ebp - 0x8c]
add esp, 0xc
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa0]
mov dword [ecx + edi*4], esi
mov esi, dword [ebp - 0xa8]
mov eax, dword [ebx]
test eax, eax
je 0x40dd85
mov edx, dword [ebp - 0x88]
movsd xmm0, qword [eax + esi*8]
mov eax, edx
mov dword [ebp - 0xa0], edx
movsd qword [eax + edi*8], xmm0
inc edi
add ebx, 8
cmp edi, dword [ebp - 0x74]
jl 0x40dd01
mov edi, dword [ebp - 0x78]
push edi
push ecx
push edx
mov eax, dword [edi + 0x3c]
call eax
mov ecx, dword [ebp - 0xb4]
add esp, 0xc
test eax, eax
js 0x40ddb8
mov edx, dword [ebp - 0x84]
mov dword [ecx + esi*4], eax
mov dword [edx + eax*4], esi
jmp 0x40ddc8
mov eax, dword [ebp - 0xac]
mov dword [ecx + esi*4], eax
inc eax
mov dword [ebp - 0xac], eax
inc esi
mov dword [ebp - 0xa8], esi
cmp esi, dword [ebp - 0xb0]
jl 0x40dce6
jmp 0x40dde0
mov edi, dword [ebp - 0x78]
mov ebx, dword [ebp - 0xac]
cmp ebx, dword [edi + 0x48]
jle 0x40ddf5
mov eax, dword [edi + 0x40]
push ebx
push edi
call eax
add esp, 8
mov esi, dword [ebp - 0x94]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x90], eax
je 0x40e0a2
lea edi, [eax*4]
mov eax, dword [ebp - 0x78]
push edi
mov dword [ebp - 0x8c], edi
push dword [eax + 0x20]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
call eax
xor ecx, ecx
mov dword [ebp - 0x88], eax
add esp, 8
mov dword [ebp - 0xb8], ecx
cmp dword [ebp - 0xb0], ecx
jle 0x40df50
mov edx, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 0xa0], edx
cmp dword [edx], esi
jl 0x40df2c
mov ebx, dword [ebp - 0x78]
xor edi, edi
mov esi, dword [ebp - 0xf4]
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0xc4], eax
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0xa8], esi
cmp dword [ebp - 0x74], edi
jle 0x40df20
mov eax, dword [esi + 4]
test eax, eax
je 0x40dec4
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x40debe
cmp esi, dword [ebp - 0xe4]
je 0x40debe
mov eax, dword [ebx + 4]
test eax, eax
jne 0x40deb7
mov eax, dword [ebp - 0x78]
push 1
push edi
push eax
mov eax, dword [eax + 0x44]
call eax
mov edx, dword [ebp - 0xa0]
add esp, 0xc
mov ecx, dword [edx]
mov dword [eax + ecx*4], esi
jmp 0x40def8
mov esi, dword [ebp - 0xa8]
mov eax, dword [ebx]
test eax, eax
jne 0x40dede
push eax
mov eax, dword [ebp - 0x78]
push edi
push eax
mov eax, dword [eax + 0x44]
call eax
mov edx, dword [ebp - 0xa0]
add esp, 0xc
mov ecx, dword [esi]
mov esi, dword [ebp - 0xb8]
mov edx, dword [edx]
movsd xmm0, qword [ecx + esi*8]
movsd qword [eax + edx*8], xmm0
mov edx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0xa8]
inc edi
mov ecx, dword [ebp - 0xb8]
add esi, 8
add ebx, 8
mov dword [ebp - 0xa8], esi
cmp edi, dword [ebp - 0x74]
jl 0x40de85
mov eax, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0x94]
inc ecx
add edx, 4
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xa0], edx
cmp ecx, ebx
jl 0x40de55
mov edi, dword [ebp - 0x8c]
mov ebx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x78]
xor esi, esi
mov dword [ecx + 0x34], ebx
mov ebx, dword [ecx + 0x10]
cmp dword [ebp - 0xd8], esi
jle 0x40dfb8
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + esi*4]
mov edx, dword [ebx + eax*8 + 4]
test edx, edx
jne 0x40df82
push 1
push eax
mov eax, dword [ecx + 0x44]
push ecx
call eax
add esp, 0xc
mov edx, eax
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0xac]
jge 0x40dfa6
mov eax, dword [ebp - 0xe4]
mov ecx, edi
mov edi, dword [ebp - 0x94]
shr ecx, 2
lea edi, [edx + edi*4]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x8c]
inc esi
mov ecx, dword [ebp - 0x78]
cmp esi, dword [ebp - 0xd8]
jl 0x40df63
mov eax, dword [ebp - 0x90]
mov edi, ecx
mov ebx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x98]
cmp ebx, ecx
jle 0x40e0b3
lea eax, [ebx + ebx*2]
shl eax, 2
push eax
mov eax, dword [ebp - 0x70]
push dword [edi + 0x20]
mov eax, dword [eax]
call eax
mov esi, eax
mov eax, dword [ebp - 0x98]
shl eax, 3
push eax
mov dword [ebp - 0x8c], eax
lea edi, [esi + ebx*8]
mov ebx, dword [ebp - 0x78]
add ebx, 0x10
mov dword [ebp - 0xc4], ebx
push dword [ebx]
push esi
call fcn.004cfba0
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x98]
shl eax, 3
push eax
mov eax, dword [ebp - 0x8c]
add eax, esi
push 0
push eax
call fcn.004d0130
mov eax, dword [ebp - 0x98]
shl eax, 2
push eax
mov eax, dword [ebp - 0x78]
push dword [eax + 0xc]
push edi
call fcn.004cfba0
mov eax, dword [ebp - 0x78]
add esp, 0x2c
mov dword [ebx], esi
xor ecx, ecx
mov esi, dword [ebp - 0x98]
mov edx, esi
mov ebx, dword [ebp - 0x110]
mov dword [eax + 0xc], edi
nop dword [eax]
mov eax, dword [ebp - 0xbc]
cmp dword [eax + ecx*4], esi
jge 0x40e076
nop dword [eax + eax]
inc ecx
cmp dword [eax + ecx*4], esi
jl 0x40e070
mov eax, dword [ebx + ecx*4]
inc ecx
mov dword [edi + edx*4], eax
inc edx
mov eax, dword [ebp - 0x7c]
cmp edx, eax
jl 0x40e060
mov edi, dword [ebp - 0x78]
sub eax, dword [ebp - 0x74]
mov ebx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x70], eax
jmp 0x40e0c1
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x88], ecx
jmp 0x40dfc0
test eax, eax
je 0x40e5a3
lea ebx, [edi + 0x10]
shl ecx, 3
mov edx, dword [ebp - 0x94]
xor esi, esi
xor eax, eax
test edx, edx
jle 0x40e0fd
nop
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + eax*4], 0
jge 0x40e0e4
mov dword [ecx + esi*4], eax
inc esi
mov ecx, ebx
jmp 0x40e0e7
lea ecx, [edi + 0x10]
inc eax
cmp eax, edx
jl 0x40e0d0
mov edx, dword [ebp - 0x98]
mov ebx, ecx
lea ecx, [edx*8]
jmp 0x40e103
mov edx, dword [ebp - 0x98]
mov eax, dword [ebx]
mov dword [ebp - 0xd8], eax
test esi, esi
je 0x40e17c
mov edi, edx
mov dword [ebp - 0x8c], edi
cmp edx, dword [ebp - 0x7c]
jge 0x40e17c
lea ebx, [eax + 4]
add ebx, ecx
mov dword [ebp - 0xd0], ebx
mov eax, dword [ebx]
test eax, eax
jne 0x40e13c
mov eax, dword [ebp - 0x78]
push 1
push edi
push eax
mov eax, dword [eax + 0x44]
call eax
add esp, 0xc
xor edx, edx
test esi, esi
jle 0x40e167
mov ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0xe4]
nop
mov ecx, dword [ebx + edx*4]
inc edx
mov dword [eax + ecx*4], edi
cmp edx, esi
jl 0x40e150
mov edi, dword [ebp - 0x8c]
mov ebx, dword [ebp - 0xd0]
inc edi
add ebx, 8
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0xd0], ebx
cmp edi, dword [ebp - 0x7c]
jl 0x40e127
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0xf8]
jge 0x40e5a3
mov ebx, dword [ebp - 0x70]
nop
mov ecx, dword [ebp - 0xe0]
mov esi, ebx
movsx ebx, byte [ecx]
inc ecx
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xd0], ebx
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0x7c], edi
test bl, 1
je 0x40e3db
push dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xf0]
push 1
push ebx
push dword [ebp - 0xcc]
call fcn.004d563d
add esp, 0x10
cmp eax, 1
jne 0x40e5b6
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x70], esi
je 0x40e225
mov eax, dword [ebp - 0xcc]
mov edi, eax
add ebx, eax
mov dword [ebp - 0x70], esi
cmp eax, ebx
jae 0x40e222
mov dword [ebp - 0x70], esi
mov edx, edi
lea esi, [edi + 7]
add edi, 8
nop dword [eax + eax]
mov al, byte [esi]
mov cl, byte [edx]
mov byte [edx], al
inc edx
mov byte [esi], cl
dec esi
cmp edx, esi
jb 0x40e210
cmp edi, ebx
jb 0x40e203
mov edi, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x90]
cmp edi, dword [ebp - 0x98]
jge 0x40e23b
test ebx, ebx
je 0x40e3d8
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + edi*8]
test esi, esi
jne 0x40e258
mov eax, dword [ebp - 0x78]
push esi
push edi
push eax
mov eax, dword [eax + 0x44]
call eax
add esp, 0xc
mov esi, eax
xor edx, edx
cmp edi, dword [ebp - 0x98]
jl 0x40e309
mov ebx, dword [ebp - 0xb0]
cmp ebx, 4
jl 0x40e2d9
mov ecx, dword [ebp - 0xb4]
add ebx, 0xfffffffc
mov edi, dword [ebp - 0xcc]
add ecx, 8
shr ebx, 2
add edi, 0x10
inc ebx
lea edx, [ebx*4]
mov eax, dword [ecx - 8]
lea edi, [edi + 0x20]
movsd xmm0, qword [edi - 0x30]
lea ecx, [ecx + 0x10]
movsd qword [esi + eax*8], xmm0
mov eax, dword [ecx - 0x14]
movsd xmm0, qword [edi - 0x28]
movsd qword [esi + eax*8], xmm0
mov eax, dword [ecx - 0x10]
movsd xmm0, qword [edi - 0x20]
movsd qword [esi + eax*8], xmm0
mov eax, dword [ecx - 0xc]
movsd xmm0, qword [edi - 0x18]
movsd qword [esi + eax*8], xmm0
sub ebx, 1
jne 0x40e291
mov edi, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0xb0]
cmp edx, ebx
jge 0x40e3d8
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xcc]
lea ecx, [eax + edx*4]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
movsd xmm0, qword [edi + edx*8]
inc edx
movsd qword [esi + eax*8], xmm0
cmp edx, ebx
jl 0x40e2f0
jmp 0x40e3d5
cmp ebx, 4
jl 0x40e3a1
mov edi, dword [ebp - 0x88]
add ebx, 0xfffffffc
shr ebx, 2
add edi, 8
inc ebx
mov dword [ebp - 0x8c], ebx
lea edx, [ebx*4]
mov dword [ebp - 0xc4], edx
mov edx, dword [ebp - 0xb4]
nop dword [eax + eax]
sub dword [ebp - 0x8c], 1
lea edi, [edi + 0x10]
mov eax, dword [edi - 0x18]
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [edx + eax*4]
movsd xmm0, qword [ebx + eax*8]
movsd qword [esi + ecx*8], xmm0
mov eax, dword [edi - 0x14]
mov ecx, dword [edx + eax*4]
movsd xmm0, qword [ebx + eax*8]
movsd qword [esi + ecx*8], xmm0
mov eax, dword [edi - 0x10]
mov ecx, dword [edx + eax*4]
movsd xmm0, qword [ebx + eax*8]
movsd qword [esi + ecx*8], xmm0
mov eax, dword [edi - 0xc]
mov ecx, dword [edx + eax*4]
movsd xmm0, qword [ebx + eax*8]
movsd qword [esi + ecx*8], xmm0
jne 0x40e340
mov edx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x90]
cmp edx, ebx
jge 0x40e3d8
mov edi, dword [ebp - 0xb4]
nop dword [eax + eax]
mov eax, dword [ebp - 0x88]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [eax + edx*4]
inc edx
mov ecx, dword [edi + eax*4]
movsd xmm0, qword [ebx + eax*8]
movsd qword [esi + ecx*8], xmm0
cmp edx, dword [ebp - 0x90]
jl 0x40e3b0
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x74]
test byte [ebp - 0xd0], 2
mov ebx, dword [ebp - 0x70]
mov esi, ebx
je 0x40e593
push dword [ebp - 0xa4]
mov eax, dword [ebp - 0xc0]
mov ebx, eax
push 1
push dword [ebp - 0xd4]
mov dword [ebp - 0xc4], ebx
push eax
call fcn.004d563d
add esp, 0x10
cmp eax, 1
jne 0x40e5cd
cmp edi, dword [ebp - 0x98]
jge 0x40e433
cmp dword [ebp - 0x90], 0
mov dword [ebp - 0x70], esi
je 0x40e58d
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x70], esi
je 0x40e48b
mov ecx, dword [ebp - 0xc0]
mov edi, ecx
mov eax, dword [ebp - 0xd4]
add eax, ecx
mov dword [ebp - 0x70], esi
cmp ecx, eax
jae 0x40e488
mov ebx, dword [ebp - 0xd4]
mov dword [ebp - 0x70], esi
nop
mov edx, edi
lea esi, [edi + 3]
add edi, 4
mov al, byte [esi]
mov cl, byte [edx]
mov byte [edx], al
inc edx
mov byte [esi], cl
dec esi
cmp edx, esi
jb 0x40e468
mov eax, dword [ebp - 0xc0]
add eax, ebx
cmp edi, eax
jb 0x40e460
mov ebx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + edi*8 + 4]
mov dword [ebp - 0x84], esi
test esi, esi
jne 0x40e4b6
mov eax, dword [ebp - 0x78]
push 1
push edi
push eax
mov eax, dword [eax + 0x44]
call eax
add esp, 0xc
mov dword [ebp - 0x84], eax
mov esi, eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0xc0], eax
jae 0x40e514
mov ecx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x78]
mov eax, dword [ebx]
add ebx, 4
sub eax, 0
je 0x40e4f7
sub eax, 1
je 0x40e4f0
mov dword [edx], ecx
mov ecx, dword [ebp - 0x80]
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0x80], ecx
test al, al
jne 0x40e4e4
jmp 0x40e500
mov eax, dword [esi + 0x14]
mov dword [edx], eax
jmp 0x40e4fd
mov dword [edx], 0
mov ecx, dword [ebp - 0x80]
add edx, 4
cmp ebx, dword [ebp - 0xe8]
jb 0x40e4d0
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x7c]
xor edx, edx
cmp edi, dword [ebp - 0x98]
jl 0x40e553
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
jle 0x40e58d
mov edi, dword [ebp - 0xec]
mov esi, ecx
mov edx, dword [ebp - 0xb4]
sub edi, edx
mov ebx, dword [ebp - 0x84]
nop
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, dword [edi + edx - 4]
mov dword [ebx + ecx*4], eax
sub esi, 1
jne 0x40e540
jmp 0x40e58d
mov ebx, dword [ebp - 0x90]
test ebx, ebx
jle 0x40e58d
mov edi, dword [ebp - 0xec]
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [eax + edx*4]
inc edx
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi + eax*4]
mov dword [esi + ecx*4], eax
cmp edx, ebx
jl 0x40e570
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
cmp eax, dword [ebp - 0xf8]
jl 0x40e190
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x9c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e5c1
jmp 0x40dbde
mov esi, dword [ebp - 0x9c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e5d8
mov ebx, dword [ebp - 0x78]
sub ecx, edx
lea eax, [ecx + 0x2f]
push eax
mov eax, dword [ebp - 0x70]
push dword [ebx + 0x20]
mov eax, dword [eax]
call eax
push esi
push str.symbol_pointers
jmp 0x40dbf7
mov ecx, dword [ebp - 0x9c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e606
sub ecx, edx
lea eax, [ecx + 0x26]
push eax
push dword [edi + 0x20]
mov eax, dword [ebx]
call eax
push dword [ebp - 0x9c]
mov dword [edi + 0x18], eax
push str.header
push str.could_not_read__s_from_file__s.
push eax
call fcn.004086e0
push esi
call fcn.004d5359
add esp, 0x1c
mov ecx, dword [ebp - 4]
mov eax, 2
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret