Function at 0x401fd0
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [0x41cddc]
push ebx
push esi
push edi
push 0x41cda0
push eax
xor ebx, ebx
xor esi, esi
call fcn.0041318e
add esp, 8
test eax, eax
jne 0x402693
mov ax, word [0x41cda6]
xor edx, edx
mov cx, ax
and ecx, 0xf000
cmp ecx, 0x4000
sete dl
mov esi, edx
test esi, esi
jne 0x402693
mov ecx, dword [0x41cdb4]
test al, 0x40
mov dword [0x41c718], ecx
je 0x40202b
mov ebx, 1
call fcn.00406470
test eax, eax
je 0x40203d
pop edi
pop esi
mov eax, 9
pop ebx
ret
mov eax, dword [0x41a8cc]
mov edx, dword [0x41cd20]
test eax, eax
mov dword [0x424f78], 0
mov dword [0x41cdc4], edx
jne 0x402078
mov eax, dword [0x41cef0]
test eax, eax
jne 0x402081
mov eax, dword [0x41cddc]
push eax
push 0x417454
call fcn.0040defd
add esp, 8
mov eax, dword [0x41cef0]
test eax, eax
je 0x4020b3
mov ecx, dword [0x41c718]
push ecx
call fcn.00406a30
mov edi, eax
add esp, 4
test edi, edi
jne 0x402123
call fcn.0040a1b0
mov edi, eax
cmp edi, 1
jg 0x402123
mov eax, dword [0x41cef0]
test eax, eax
jne 0x40216f
mov eax, dword [0x41c718]
cmp eax, 0x101d0
jl 0x4020c4
mov eax, 0x101d0
push eax
call fcn.00406a30
mov edi, eax
add esp, 4
test edi, edi
jne 0x402123
mov eax, dword [0x41cf10]
test ax, ax
je 0x40211e
mov ecx, dword [0x41a8ec]
test ecx, ecx
jg 0x4020f3
jne 0x40211e
mov ecx, dword [0x41a8cc]
test ecx, ecx
jne 0x40211e
and eax, 0xffff
push 1
push eax
call fcn.004071f0
add esp, 8
test eax, eax
je 0x40211e
push 0x4173a8
push 0x419ea0
call fcn.0040dba4
add esp, 8
mov edi, 1
cmp edi, 1
jle 0x40216f
mov edx, dword [0x41cdd8]
push edx
call fcn.0041098b
add esp, 4
test ebx, ebx
je 0x40214e
mov eax, dword [0x41cddc]
push eax
push 0x417080
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40215c
mov eax, edi
pop edi
pop esi
pop ebx
ret
pop edi
pop esi
mov dword [0x41a904], 1
mov eax, 9
pop ebx
ret
mov eax, dword [0x41a8ec]
test eax, eax
mov eax, dword [0x41cef0]
jle 0x402196
test eax, eax
jne 0x4021fb
mov ecx, dword [0x41cdd8]
push ecx
call fcn.0041098b
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
ret
test eax, eax
jne 0x4021fb
cmp word [0x41cf00], 0
je 0x4021c1
mov eax, dword [0x41cddc]
push eax
push 0x417138
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov edi, 1
mov eax, dword [0x41cd7c]
mov ecx, dword [0x41cdcc]
sub eax, ecx
mov dword [0x41a8f4], eax
jns 0x402227
mov ecx, dword [0x41cddc]
neg eax
push eax
push ecx
push 0x41729c
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
mov edi, 2
jmp 0x40228f
mov dx, word [0x41cf00]
cmp dx, word [0x41cf02]
je 0x4021c1
push 0x4170b8
push 0x419ea0
call fcn.0040dba4
add esp, 8
mov edi, 0xb
jmp 0x40264c
test eax, eax
jle 0x402294
mov ecx, dword [0x41cf0c]
test ecx, ecx
jne 0x402270
mov ecx, dword [0x41cf08]
test ecx, ecx
je 0x402270
mov edx, dword [0x41cddc]
push edx
push 0x4172e8
push 0x419ea0
call fcn.0040dba4
mov eax, dword [0x41a8f4]
add esp, 0xc
mov dword [0x41cf0c], eax
xor eax, eax
mov dword [0x41a8f4], eax
mov edi, 2
jmp 0x402294
mov ecx, dword [0x41cddc]
push eax
push ecx
push 0x41723c
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
mov edi, 1
mov eax, dword [0x41a8f4]
mov ecx, dword [0x41cdcc]
test ecx, ecx
jne 0x402310
mov ecx, dword [0x41cf08]
test ecx, ecx
jne 0x402310
mov eax, dword [0x41cef0]
test eax, eax
je 0x4022d5
mov eax, dword [0x416030]
cmp eax, 9
mov eax, 0x417464
jg 0x4022c5
mov eax, 0x41a920
push eax
push 0x417468
call fcn.0040defd
add esp, 8
jmp 0x4022ee
mov edx, dword [0x41cddc]
push edx
push 0x417338
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, dword [0x41cdd8]
push eax
call fcn.0041098b
add esp, 4
cmp edi, 1
mov eax, edi
jg 0x402734
pop edi
pop esi
mov eax, 1
pop ebx
ret
mov ecx, dword [0x41cf0c]
add eax, ecx
mov esi, eax
and esi, 0x80001fff
jns 0x40232a
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jge 0x402352
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebx
ret
cmp ecx, dword [0x424f78]
je 0x4023b1
mov edx, dword [0x41cdd8]
push 0
push ecx
push edx
call fcn.004121e5
mov ecx, dword [0x41cdd8]
mov dword [0x424f78], eax
mov eax, dword [0x41cd20]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jg 0x40239a
pop edi
pop esi
mov eax, 0x33
pop ebx
ret
mov edx, dword [0x41cd20]
add edx, esi
sub eax, esi
mov dword [0x41cdc4], edx
mov dword [0x41cd24], eax
jmp 0x4023d5
mov ecx, dword [0x41cdc4]
mov eax, dword [0x41cd20]
mov edx, dword [0x41cd24]
sub ecx, eax
sub ecx, esi
add edx, ecx
add eax, esi
mov dword [0x41cd24], edx
mov dword [0x41cdc4], eax
push 4
push 0x41cd38
call fcn.00406520
add esp, 8
test eax, eax
je 0x402404
push 4
push 0x424f80
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
je 0x40252a
mov eax, dword [0x41cf0c]
mov edi, dword [0x41a8f4]
mov esi, eax
mov dword [0x41a8f4], 0
and esi, 0x80001fff
jns 0x40242b
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jge 0x402453
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebx
ret
cmp ecx, dword [0x424f78]
je 0x4024b2
mov edx, dword [0x41cdd8]
push 0
push ecx
push edx
call fcn.004121e5
mov ecx, dword [0x41cdd8]
mov dword [0x424f78], eax
mov eax, dword [0x41cd20]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jg 0x40249b
pop edi
pop esi
mov eax, 0x33
pop ebx
ret
mov edx, dword [0x41cd20]
add edx, esi
sub eax, esi
mov dword [0x41cdc4], edx
mov dword [0x41cd24], eax
jmp 0x4024d6
mov ecx, dword [0x41cdc4]
mov eax, dword [0x41cd20]
mov edx, dword [0x41cd24]
sub ecx, eax
sub ecx, esi
add edx, ecx
add eax, esi
mov dword [0x41cd24], edx
mov dword [0x41cdc4], eax
push 4
push 0x41cd38
call fcn.00406520
add esp, 8
test eax, eax
je 0x402661
push 4
push 0x424f80
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
jne 0x402661
mov edx, dword [0x41cddc]
neg edi
push edi
push edx
push 0x416308
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
mov edi, 2
mov eax, dword [0x41cf0c]
mov ecx, dword [0x41a8f4]
add eax, ecx
mov esi, eax
and esi, 0x80001fff
jns 0x402549
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jge 0x402571
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebx
ret
cmp ecx, dword [0x424f78]
je 0x4025d0
mov edx, dword [0x41cdd8]
push 0
push ecx
push edx
call fcn.004121e5
mov ecx, dword [0x41cdd8]
mov dword [0x424f78], eax
mov eax, dword [0x41cd20]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jg 0x4025b9
pop edi
pop esi
mov eax, 0x33
pop ebx
ret
mov edx, dword [0x41cd20]
add edx, esi
sub eax, esi
mov dword [0x41cdc4], edx
mov dword [0x41cd24], eax
jmp 0x4025f4
mov ecx, dword [0x41cdc4]
mov eax, dword [0x41cd20]
mov edx, dword [0x41cd24]
sub ecx, eax
sub ecx, esi
add edx, ecx
add eax, esi
mov dword [0x41cd24], edx
mov dword [0x41cdc4], eax
mov eax, dword [0x41cef0]
test eax, eax
je 0x40261d
call fcn.0040a3c0
mov esi, eax
mov eax, dword [0x416030]
cmp eax, 9
jle 0x402646
push 0x41747c
call fcn.0040defd
add esp, 4
jmp 0x402646
mov eax, dword [0x41a8e4]
test eax, eax
je 0x40263f
mov eax, dword [0x41a8d8]
test eax, eax
jne 0x40263f
mov eax, dword [0x41a8a4]
test eax, eax
jne 0x40263f
call fcn.0040bd60
jmp 0x402644
call fcn.00404ac0
mov esi, eax
cmp esi, edi
jle 0x40264c
mov edi, esi
mov edx, dword [0x41cdd8]
push edx
call fcn.0041098b
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
ret
mov eax, dword [0x41cddc]
push 0x4161e4
push eax
push 0x41735c
push 0x419ea0
call fcn.0040dba4
mov ecx, dword [0x41cdd8]
push ecx
call fcn.0041098b
add esp, 0x14
mov eax, 3
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x10]
test eax, eax
je 0x402728
mov eax, dword [0x41a904]
test eax, eax
mov eax, dword [0x41cef0]
je 0x4026f9
test eax, eax
je 0x4026bd
mov ecx, 0x417430
mov eax, 0x417434
jmp 0x4026c7
mov ecx, 0x41a91c
mov eax, 0x41743c
mov edx, dword [0x41cddc]
push edx
push ecx
mov ecx, dword [0x424f6c]
push ecx
push eax
push 0x417004
push 0x419ea0
call fcn.0040dba4
mov eax, esi
add esp, 0x18
neg eax
sbb eax, eax
pop edi
and eax, 0x43
pop esi
add eax, 9
pop ebx
ret
test eax, eax
mov eax, 0x417444
jne 0x402707
mov eax, 0x41744c
mov edx, dword [0x41cddc]
mov ecx, dword [0x424f6c]
push edx
push ecx
push eax
push 0x417054
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
mov eax, esi
neg eax
sbb eax, eax
and eax, 0x43
add eax, 9
pop edi
pop esi
pop ebx
ret