Function at 0x401870
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x10428
call fcn.00410170
mov eax, dword [0x41b2d0]
xor eax, esp
mov dword [esp + 0x10424], eax
push ebx
push esi
push edi
mov edi, ecx
call fcn.00401ba0
mov esi, eax
test esi, esi
je 0x41438d
sub esi, edi
cmp esi, 0xf0
ja 0x401b16
push esi
lea eax, [esp + 0x24]
push edi
push eax
call fcn.004099c0
mov eax, dword [0x419890]
lea ebx, [esp + 0x2d]
mov dword [esp + esi + 0x2c], eax
add esp, 0xc
mov eax, dword [0x419894]
add ebx, esi
mov dword [esp + esi + 0x24], eax
mov eax, dword [0x419898]
mov dword [esp + esi + 0x28], eax
mov eax, dword [0x41989c]
mov dword [esp + esi + 0x2c], eax
mov eax, dword [0x4198a0]
mov dword [esp + esi + 0x30], eax
push str.MOZ_RUN_GTEST
mov dword [esp + 0x10], ebx
call fcn.00402a5b
add esp, 4
test eax, eax
jne 0x401b1a
lea ecx, [esp + 0x20]
call fcn.00401b40
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
je 0x401b16
push ebp
push edi
lea eax, [esp + 0x12c]
mov byte [ebx], 0
push 0x104
push eax
call fcn.00402bba
add esp, 0xc
test eax, eax
je 0x401ada
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x128]
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401950
sub ecx, edx
je 0x401abc
cmp byte [esp + 0x128], 0x23
je 0x401abc
cmp byte [esp + ecx + 0x127], 0xa
jne 0x40198d
lea eax, [ecx - 1]
cmp eax, 0x104
jae 0x401b24
mov byte [esp + eax + 0x128], 0
lea eax, [esp + 0x24]
sub ecx, eax
add ecx, ebx
cmp ecx, 0x104
ja 0x4143e4
lea ecx, [esp + 0x128]
mov edx, ebx
mov eax, ecx
sub edx, eax
mov edi, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4019b0
mov bl, byte [0x41e354]
lea eax, [esp + 0x22c]
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x30]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test bl, bl
je 0x401a7e
push 0
push 0x8000000
push 3
push 0
push 1
push 0x80000000
lea eax, [esp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x401a7a
push 1
lea eax, [esp + 0x20]
push eax
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x401a73
xor esi, esi
jmp 0x401a30
push 0
lea eax, [esp + 0x1c]
push eax
push 0x10000
lea eax, [esp + 0x440]
push eax
push edi
call ebp
test eax, eax
je 0x401a60
cmp dword [esp + 0x18], 0x10000
jne 0x401a60
add esi, 0x10000
cmp esi, 0xffffffff
jb 0x401a30
push 0
push 0
push dword [esp + 0x28]
push dword [esp + 0x28]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x14]
push 8
push 0
lea eax, [esp + 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
test esi, esi
je 0x401b29
push 8
call fcn.0040301b
mov ebx, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x401abc
mov ecx, dword [0x41e358]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [0x41e358], eax
push edi
lea eax, [esp + 0x12c]
push 0x104
push eax
call fcn.00402bba
add esp, 0xc
test eax, eax
jne 0x401944
mov eax, dword [0x41e358]
push str.NS_GetFrozenFunctions
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x401b29
push edi
call fcn.00402f7e
add esp, 4
mov eax, esi
pop ebp
mov ecx, dword [esp + 0x10430]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004024f5
add esp, 0x10428
ret
xor eax, eax
jmp 0x401afe
lea edi, [esp + 0x20]
dec edi
jmp 0x4143ce
call fcn.00402e36
call fcn.00414adc
jmp 0x4143e4
mov eax, dword [str.dependentlibs.list]
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [0x419d84]
mov dword [esp + 0x24], eax
mov eax, dword [0x419d88]
mov dword [esp + 0x28], eax
mov eax, dword [0x419d8c]
mov dword [esp + 0x2c], eax
mov ax, word [0x419d90]
mov word [esp + 0x30], ax
mov al, byte [0x419d92]
mov byte [esp + 0x32], al
jmp 0x4018ec
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4143ce
mov esi, str..gtest
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x401905
push edi
call fcn.00402f7e
add esp, 4
xor eax, eax
jmp 0x401afd