Function at 0x402870
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x98
mov eax, dword [0x444600]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [0x446be0]
cmp dword [eax - 8], 0
jne 0x4028a6
xor al, al
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.00423324
add esp, 0x98
ret
push esi
push 3
lea ecx, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
mov byte [esp + 0xf], 1
mov dword [esp + 0x10], ecx
call fcn.00404360
mov edx, dword [esp + 8]
push 0x43d1bc
push edx
call fcn.00423fa7
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
add esp, 8
cmp eax, ecx
je 0x4028e9
push eax
call fcn.00423946
add esp, 4
test esi, esi
jne 0x402905
xor al, al
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.00423324
add esp, 0x98
ret
push ebx
push edi
push 2
xor eax, eax
push 0xfffffffffffffff8
push esi
mov byte [esp + 0xa0], 0
mov dword [esp + 0xa1], eax
mov dword [esp + 0xa5], eax
mov bl, 1
call fcn.0042463f
add esp, 0xc
cmp eax, 0xffffffff
je 0x402ba7
push 9
call fcn.0042330e
mov edi, eax
push esi
xor eax, eax
push 8
mov dword [edi], eax
push 1
mov dword [edi + 4], eax
push edi
mov byte [edi + 8], al
call fcn.00424337
add esp, 0x14
test eax, eax
jne 0x402960
xor bl, bl
jmp 0x402973
push 8
lea edx, [esp + 0x98]
push edi
push edx
call fcn.004235c0
add esp, 0xc
test edi, edi
je 0x402980
push edi
call fcn.0042408c
add esp, 4
test bl, bl
je 0x402ba7
lea eax, [esp + 0x94]
push eax
call fcn.00423b43
add esp, 4
cmp eax, 0x3415
jne 0x402ba7
push 2
xor eax, eax
push 0xfffffffffffffff0
push esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], al
mov bl, 1
call fcn.0042463f
add esp, 0xc
cmp eax, 0xffffffff
je 0x402ba7
push 9
call fcn.0042330e
mov edi, eax
push esi
xor eax, eax
push 8
mov dword [edi], eax
push 1
mov dword [edi + 4], eax
push edi
mov byte [edi + 8], al
call fcn.00424337
add esp, 0x14
test eax, eax
jne 0x4029fb
xor bl, bl
jmp 0x402a0e
push 8
lea ecx, [esp + 0x98]
push edi
push ecx
call fcn.004235c0
add esp, 0xc
test edi, edi
je 0x402a1b
push edi
call fcn.0042408c
add esp, 4
test bl, bl
je 0x402ba7
lea edx, [esp + 0x94]
push edx
call fcn.00423b43
add esp, 4
test eax, eax
jle 0x402ba7
push 2
mov dword [0x446ba8], eax
xor eax, eax
push 0xffffffffffffffe0
push esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], al
mov bl, 1
call fcn.0042463f
add esp, 0xc
cmp eax, 0xffffffff
je 0x402ba7
push 9
call fcn.0042330e
mov edi, eax
push esi
xor eax, eax
push 8
mov dword [edi], eax
push 1
mov dword [edi + 4], eax
push edi
mov byte [edi + 8], al
call fcn.00424337
add esp, 0x14
test eax, eax
jne 0x402a98
xor bl, bl
jmp 0x402aab
push 8
lea eax, [esp + 0x98]
push edi
push eax
call fcn.004235c0
add esp, 0xc
test edi, edi
je 0x402ab8
push edi
call fcn.0042408c
add esp, 4
test bl, bl
je 0x402ba7
lea ecx, [esp + 0x94]
push ecx
call fcn.00423b43
add esp, 4
test eax, eax
jle 0x402ba7
push 2
xor eax, eax
push 0xffffffffffffffe8
push esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], al
mov bl, 1
call fcn.0042463f
add esp, 0xc
cmp eax, 0xffffffff
je 0x402ba7
push 9
call fcn.0042330e
mov edi, eax
push esi
xor eax, eax
push 8
mov dword [edi], eax
push 1
mov dword [edi + 4], eax
push edi
mov byte [edi + 8], al
call fcn.00424337
add esp, 0x14
test eax, eax
jne 0x402b30
xor bl, bl
jmp 0x402b43
push 8
lea edx, [esp + 0x98]
push edi
push edx
call fcn.004235c0
add esp, 0xc
test edi, edi
je 0x402b50
push edi
call fcn.0042408c
add esp, 4
test bl, bl
je 0x402ba7
lea eax, [esp + 0x94]
push eax
call fcn.00423b43
add esp, 4
test eax, eax
jle 0x402ba7
mov dword [0x446ba4], eax
inc eax
push eax
call fcn.0042330e
mov ecx, dword [0x446ba4]
inc ecx
push ecx
push 0
push eax
mov dword [0x446ba0], eax
call fcn.00427fc0
mov edx, dword [0x446ba0]
mov eax, dword [0x446ba4]
add esp, 0x10
push edx
push eax
add eax, 0x20
mov ecx, esi
call fcn.00402be0
test al, al
jne 0x402bac
mov byte [esp + 0xf], 0
push esi
call fcn.0042478c
mov ecx, dword [esp + 0xa4]
mov al, byte [esp + 0x13]
add esp, 4
pop edi
pop ebx
pop esi
xor ecx, esp
call fcn.00423324
add esp, 0x98
ret