Function at 0x428f80
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x46d508
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x483390]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push edi
mov eax, dword [0x483390]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov ebx, ecx
xor ebp, ebp
cmp ebx, ebp
jne 0x428ff8
cmp byte [esi + 0x44], 0
jne 0x428ff1
mov byte [esi + 0x44], 1
mov dword [esi + 0x48], 2
mov edx, dword [str.Failed_to_open_file]
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428fd5
sub eax, edi
push eax
push edx
lea ecx, [esi + 0x4c]
call fcn.00405400
or eax, 0xffffffff
mov dword [esi + 0x70], eax
mov dword [esi + 0x6c], eax
xor al, al
jmp 0x4291c9
mov edi, dword [esi + 0x18]
cmp edi, ebp
je 0x429011
nop
mov ecx, edi
mov eax, dword [ecx]
mov edx, dword [eax]
mov edi, dword [edi + 0x40]
push 1
call edx
cmp edi, ebp
jne 0x429000
push 2
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebp
or edi, 0xffffffff
push ebp
push ebx
mov dword [esi + 8], edi
mov dword [esi + 4], edi
call fcn.00445780
push ebx
call fcn.0044563c
push 0
push 0
push ebx
mov ebp, eax
call fcn.00445780
xor eax, eax
add esp, 0x1c
cmp ebp, eax
jne 0x429080
cmp byte [esi + 0x44], al
jne 0x429079
mov byte [esi + 0x44], 1
mov dword [esi + 0x48], 0xd
mov edx, dword [str.Error_document_empty.]
mov eax, edx
lea ebx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429060
sub eax, ebx
push eax
push edx
lea ecx, [esi + 0x4c]
call fcn.00405400
mov dword [esi + 0x70], edi
mov dword [esi + 0x6c], edi
xor al, al
jmp 0x4291c9
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], eax
mov byte [esp + 0x18], 0
push ebp
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], eax
call fcn.00429f30
lea eax, [ebp + 1]
push eax
call fcn.00441dab
push ebx
mov edi, eax
push 1
push ebp
push edi
mov dword [esp + 0x24], edi
mov byte [edi], 0
call fcn.00445366
add esp, 0x14
cmp eax, 1
je 0x429117
cmp byte [esi + 0x44], 0
jne 0x4290fc
mov byte [esi + 0x44], 1
mov dword [esi + 0x48], 2
mov edx, dword [str.Failed_to_open_file]
mov eax, edx
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4290e0
sub eax, edi
push eax
push edx
lea ecx, [esi + 0x4c]
call fcn.00405400
or eax, 0xffffffff
mov dword [esi + 0x70], eax
mov dword [esi + 0x6c], eax
cmp dword [esp + 0x2c], 0x10
jb 0x429110
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0044423f
add esp, 4
xor al, al
jmp 0x4291c9
mov ebx, dword [esp + 0x10]
mov byte [ebx + ebp], 0
cmp byte [ebx], 0
mov eax, edi
je 0x42917a
mov cl, byte [edi]
cmp cl, 0xa
jne 0x429142
mov edx, edi
sub edx, eax
inc edx
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.00425740
inc edi
mov eax, edi
jmp 0x429175
cmp cl, 0xd
jne 0x429174
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x42915a
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00425740
push 0xa
push 1
lea ecx, [esp + 0x1c]
call fcn.0042abb0
cmp byte [edi + 1], 0xa
jne 0x42913d
add edi, 2
mov eax, edi
jmp 0x429175
inc edi
cmp byte [edi], 0
jne 0x429126
sub edi, eax
je 0x429189
push edi
push eax
lea ecx, [esp + 0x1c]
call fcn.00425740
push ebx
call fcn.00443398
mov eax, dword [esp + 0x1c]
add esp, 4
cmp dword [esp + 0x2c], 0x10
jae 0x4291a1
lea eax, [esp + 0x18]
mov edx, dword [esi]
push 0
push 0
push eax
mov eax, dword [edx + 8]
mov ecx, esi
call eax
cmp byte [esi + 0x44], 0
lea ecx, [esp + 0x14]
je 0x4291c2
call fcn.00404d70
xor al, al
jmp 0x4291c9
call fcn.00404d70
mov al, 1
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.004426a0
add esp, 0x30
ret