Function at 0x408920
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x43b0f8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x448e90]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x3c]
push str.rb_ccsUTF_16LE
push eax
lea ecx, [esp + 0x24]
xor ebp, ebp
push ecx
mov dword [esp + 0x30], ebp
call fcn.00423b26
add esp, 0xc
test eax, eax
jne 0x408a74
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x408a74
push eax
call fcn.00423f35
push eax
call fcn.00423e36
push 0x3f0
mov edi, eax
call fcn.00423998
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x408a74
push 0x3f0
push ebp
push esi
call fcn.00421cd0
push edi
call fcn.00423998
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x28], ebx
cmp ebx, ebp
je 0x408a74
push edi
push ebp
push ebx
call fcn.00421cd0
add esp, 0xc
jmp 0x4089d0
mov edx, dword [esp + 0x1c]
push edx
push 0x3e8
push 1
push esi
call fcn.00423e19
mov edi, eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.00423915
add esp, 0x14
test eax, eax
jne 0x408a74
push edi
push esi
push ebx
call fcn.00421520
mov ecx, dword [esp + 0x28]
push ecx
add ebx, edi
add ebp, edi
call fcn.004238e1
add esp, 0x10
test eax, eax
je 0x4089d0
mov eax, dword [esp + 0x1c]
xor edi, edi
cmp eax, edi
je 0x408a29
push eax
call fcn.0042370a
add esp, 4
mov dword [esp + 0x1c], edi
push esi
call fcn.004226c3
add esp, 4
lea ecx, [esp + 0x17]
xor esi, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], edi
call fcn.00408d40
mov ebx, dword [esp + 0x28]
push edi
push ebp
push ebx
lea edx, [esp + 0x2c]
push edx
push edi
lea ecx, [esp + 0x2b]
mov dword [esp + 0x48], edi
call fcn.00408eb0
test eax, eax
je 0x408a8a
lea ecx, [esp + 0x17]
mov dword [esp + 0x34], 0xffffffff
call fcn.00408d50
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [esp + 0x20]
push eax
call fcn.00423998
mov edi, eax
add esp, 4
test edi, edi
je 0x408b8e
mov ecx, dword [esp + 0x20]
push ecx
push 0
push edi
call fcn.00421cd0
add esp, 0xc
push 0
push ebp
push ebx
lea edx, [esp + 0x2c]
push edx
push edi
lea ecx, [esp + 0x2b]
call fcn.00408eb0
test eax, eax
jne 0x408b8e
mov eax, dword [esp + 0x20]
push eax
push edi
lea ecx, [esp + 0x20]
push ecx
push 0
lea ecx, [esp + 0x27]
call fcn.00408d60
mov edx, dword [esp + 0x18]
push edx
call fcn.00423998
mov esi, eax
add esp, 4
test esi, esi
je 0x408b8e
mov eax, dword [esp + 0x18]
push eax
push 0
push esi
call fcn.00421cd0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push ecx
push edi
lea edx, [esp + 0x20]
push edx
push esi
lea ecx, [esp + 0x27]
call fcn.00408d60
cmp byte [esi], 0xff
mov dword [esp + 0x24], 1
jne 0x408b61
cmp byte [esi + 1], 0xfe
jne 0x408b61
cmp byte [esi + 2], 0x3c
lea eax, [esi + 2]
jne 0x408b61
cmp byte [esi + 3], 0
jne 0x408b61
mov ecx, dword [esp + 0x18]
push ecx
push eax
push esi
call fcn.00421520
mov edx, dword [esp + 0x24]
mov byte [edx + esi - 1], 0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov byte [eax + esi - 2], 0
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x408b75
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov dword [ecx], edx
jmp 0x408b8e
mov ebp, dword [esp + 0x44]
mov ecx, dword [ebp]
push ecx
push esi
push eax
call fcn.00421520
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [ebp], edx
push ebx
call fcn.004226c3
add esp, 4
test edi, edi
je 0x408ba4
push edi
call fcn.004226c3
add esp, 4
test esi, esi
je 0x408bb1
push esi
call fcn.004226c3
add esp, 4
lea ecx, [esp + 0x17]
mov dword [esp + 0x34], 0xffffffff
call fcn.00408d50
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret