Function at 0x41d0a0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x44d448
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x45d2b0]
xor eax, esp
mov dword [esp + 0x1c], eax
push ebx
push ebp
push edi
mov eax, dword [0x45d2b0]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x40]
xor ebx, ebx
cmp ebp, ebx
jne 0x41d119
cmp byte [esi + 0x44], bl
jne 0x41d112
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 0x41d0f6
sub eax, edi
push eax
push edx
lea ecx, [esi + 0x4c]
call fcn.00404610
or eax, 0xffffffff
mov dword [esi + 0x70], eax
mov dword [esi + 0x6c], eax
xor al, al
jmp 0x41d2f8
mov edi, dword [esi + 0x18]
cmp edi, ebx
je 0x41d131
mov ecx, edi
mov eax, dword [ecx]
mov edx, dword [eax]
mov edi, dword [edi + 0x40]
push 1
call edx
cmp edi, ebx
jne 0x41d120
push 2
or eax, 0xffffffff
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
push ebx
push ebp
mov dword [esi + 8], eax
mov dword [esi + 4], eax
call fcn.0043a130
push ebp
call fcn.00439fef
push ebx
push ebx
push ebp
mov edi, eax
call fcn.0043a130
add esp, 0x1c
cmp edi, ebx
jne 0x41d18c
cmp byte [esi + 0x44], bl
jne 0x41d112
mov byte [esi + 0x44], 1
mov dword [esi + 0x48], 0xd
mov edx, dword [str.Error_document_empty.]
mov eax, edx
lea edi, [eax + 1]
jmp 0x41d180
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d180
jmp 0x41d0fd
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], ebx
mov byte [esp + 0x14], bl
mov dword [esp + 0x38], ebx
cmp edi, 0xf
je 0x41d1cb
push 1
push edi
lea ecx, [esp + 0x18]
call fcn.004049d0
test al, al
je 0x41d1cb
cmp dword [esp + 0x28], 0x10
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
jae 0x41d1c8
lea eax, [esp + 0x14]
mov byte [eax], 0
lea eax, [edi + 1]
push eax
call fcn.004376db
push ebp
push 1
mov ebx, eax
push edi
push ebx
mov byte [ebx], 0
call fcn.00439d19
add esp, 0x14
cmp eax, 1
je 0x41d242
cmp byte [esi + 0x44], 0
jne 0x41d223
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 0x41d207
sub eax, edi
push eax
push edx
lea ecx, [esi + 0x4c]
call fcn.00404610
or eax, 0xffffffff
mov dword [esi + 0x70], eax
mov dword [esi + 0x6c], eax
cmp dword [esp + 0x28], 0x10
jb 0x41d112
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0043876e
add esp, 4
xor al, al
jmp 0x41d2f8
mov byte [ebx + edi], 0
cmp byte [ebx], 0
mov eax, ebx
mov ebp, ebx
je 0x41d2a9
nop
mov cl, byte [ebp]
cmp cl, 0xa
jne 0x41d26d
mov edx, ebp
sub edx, eax
inc edx
push edx
push eax
lea eax, [esp + 0x18]
call fcn.0041e050
inc ebp
mov eax, ebp
jmp 0x41d2a3
cmp cl, 0xd
jne 0x41d2a2
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x41d285
push ecx
push eax
lea eax, [esp + 0x18]
call fcn.0041e050
push 0xa
mov eax, 1
lea edi, [esp + 0x14]
call fcn.0041e2b0
cmp byte [ebp + 1], 0xa
jne 0x41d268
add ebp, 2
mov eax, ebp
jmp 0x41d2a3
inc ebp
cmp byte [ebp], 0
jne 0x41d250
sub ebp, eax
je 0x41d2b8
push ebp
push eax
lea eax, [esp + 0x18]
call fcn.0041e050
push ebx
call fcn.00438e02
mov eax, dword [esp + 0x18]
add esp, 4
cmp dword [esp + 0x28], 0x10
jae 0x41d2d0
lea eax, [esp + 0x14]
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 + 0x10]
je 0x41d2f1
call fcn.00404be0
xor al, al
jmp 0x41d2f8
call fcn.00404be0
mov al, 1
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.00437bf9
add esp, 0x2c
ret 4