Function at 0x414550
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x154
mov eax, dword [0x4f2fb0]
xor eax, esp
mov dword [esp + 0x150], eax
cmp dword [0x4f68dc], 0
push esi
mov esi, dword [esp + 0x160]
push edi
mov edi, dword [esp + 0x160]
jne 0x414594
push 0x2a5a
call fcn.0047af44
add esp, 4
xor ecx, ecx
mov dword [0x4f68dc], eax
mov word [eax], cx
mov ecx, 0x4c7663
mov eax, esi
jmp 0x4145a0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4145c0
test dl, dl
je 0x4145bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4145c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4145a0
xor eax, eax
jmp 0x4145c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4145e2
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.004982db
add esp, 0x154
ret
mov ecx, 0x4c8814
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x414610
test dl, dl
je 0x41460c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x414610
add eax, 2
add ecx, 2
test dl, dl
jne 0x4145f0
xor eax, eax
jmp 0x414615
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4145c9
push esi
push edi
lea edx, [esp + 0x7c]
push str._s_s
push edx
call fcn.00414530
push 0x4c8810
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00498288
add esp, 0x1c
test eax, eax
jne 0x4145c9
mov edx, dword [esp + 8]
push ebp
push edx
push 1
push 1
push 0x4f68d8
call fcn.0049af28
mov eax, dword [esp + 0x1c]
push eax
push 1
lea ecx, [esp + 0x28]
push 2
push ecx
call fcn.0049af28
xor edx, edx
add esp, 0x20
xor ebp, ebp
cmp dx, word [esp + 0x10]
jge 0x4147c6
push ebx
mov eax, dword [esp + 0x10]
push eax
movsx esi, bp
push 1
lea ebx, [esp + esi*2 + 0x104]
push 2
push ebx
call fcn.0049af28
add esp, 0x10
cmp esi, 4
ja case.default.0x4146a7
jmp dword [esi*4 + 0x4147f0]
mov ecx, dword [esp + 0x10]
push ecx
push 1
lea esi, [esp + esi*2 + 0x20]
push 2
push esi
call fcn.0049af28
mov edx, dword [esp + 0x20]
movsx eax, word [esi]
mov ecx, dword [0x4f68dc]
push edx
push 1
push eax
push ecx
jmp 0x4147b1
xor edx, edx
xor edi, edi
cmp dx, word [ebx]
jge case.default.0x4146a7
lea esi, [esp + esi*2 + 0x18]
lea esp, [esp]
mov eax, dword [esp + 0x10]
push eax
push 1
push 2
push esi
call fcn.0049af28
mov ecx, dword [esp + 0x20]
movsx edx, word [esi]
movsx eax, di
imul eax, eax, 0x36
push ecx
mov ecx, dword [0x4f68dc]
push 1
push edx
lea edx, [eax + ecx + 2]
push edx
call fcn.0049af28
inc edi
add esp, 0x20
cmp di, word [ebx]
jl 0x4146f0
jmp case.default.0x4146a7
mov eax, dword [esp + 0x10]
push eax
push 1
lea esi, [esp + esi*2 + 0x20]
push 2
push esi
call fcn.0049af28
mov ecx, dword [esp + 0x20]
movsx edx, word [esi]
mov eax, dword [0x4f68dc]
push ecx
push 1
push edx
add eax, 0x2a32
push eax
jmp 0x4147b1
mov ecx, dword [esp + 0x10]
push ecx
push 1
lea esi, [esp + esi*2 + 0x20]
push 2
push esi
call fcn.0049af28
mov edx, dword [esp + 0x20]
movsx eax, word [esi]
mov ecx, dword [0x4f68dc]
push edx
push 1
push eax
add ecx, 0x2a3a
push ecx
jmp 0x4147b1
mov edx, dword [esp + 0x10]
push edx
push 1
lea esi, [esp + esi*2 + 0x20]
push 2
push esi
call fcn.0049af28
mov eax, dword [esp + 0x20]
movsx ecx, word [esi]
mov edx, dword [0x4f68dc]
push eax
push 1
push ecx
add edx, 0x2a42
push edx
call fcn.0049af28
add esp, 0x20
inc ebp
cmp bp, word [esp + 0x14]
jl 0x414682
pop ebx
mov eax, dword [esp + 0xc]
push eax
call fcn.00497eda
mov ecx, dword [esp + 0x160]
add esp, 4
pop ebp
pop edi
pop esi
xor ecx, esp
mov eax, 1
call fcn.004982db
add esp, 0x154
ret