Function at 0x4071f0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push esi
test ebp, ebp
push edi
mov dword [esp + 0x18], 0
jne 0x407211
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x24]
cmp eax, 3
ja case.default.0x40721e
jmp dword [eax*4 + 0x4078c0]
test ebp, ebp
mov dword [esp + 0x20], ebp
mov ebx, 0x10000
jle 0x4073ea
test ebx, ebx
jle 0x4073ea
mov ebx, dword [esp + 0x20]
mov edi, dword [0x41cdd4]
cmp ebx, 0x10000
mov ebp, edi
mov dword [esp + 0x10], edi
jle 0x40725b
mov ebx, 0x10000
mov esi, ebx
mov dword [esp + 0x24], edi
test ebx, ebx
mov dword [esp + 0x14], esi
je 0x407317
mov eax, dword [0x41cd24]
test eax, eax
jne 0x4072c1
mov eax, dword [0x41cd20]
mov ecx, dword [0x41cdd8]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0xc
mov dword [0x41cd24], eax
test eax, eax
je 0x40737a
jl 0x40737e
mov ecx, dword [0x424f78]
mov edx, dword [0x41cd20]
add ecx, 0x2000
mov dword [0x41cdc4], edx
mov dword [0x424f78], ecx
cmp ebx, eax
mov edx, ebx
jb 0x4072c9
mov edx, eax
mov esi, dword [0x41cdc4]
mov edi, dword [esp + 0x24]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x24]
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x41cdc4]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [0x41cd24]
add edi, edx
sub eax, edx
mov dword [0x41cdc4], edi
mov edi, dword [esp + 0x10]
sub ebx, edx
mov dword [0x41cd24], eax
jne 0x407272
mov eax, esi
test eax, eax
mov ebx, eax
je 0x40788f
mov ecx, dword [0x41cdd4]
mov edx, dword [esp + 0x20]
sub edx, eax
mov byte [ecx + eax], 0
mov al, byte [ebp]
test al, al
mov dword [esp + 0x20], edx
je 0x407358
cmp al, 0xd
jne 0x40734a
mov al, byte [ebp + 1]
inc ebp
cmp al, 0xd
je 0x407342
mov dl, byte [ebp]
mov byte [edi], dl
mov al, byte [ebp + 1]
inc edi
inc ebp
test al, al
jne 0x40733e
mov byte [edi], 0
mov esi, dword [0x41cdd4]
mov eax, 0x41cf20
mov cl, byte [esi]
test cl, cl
je 0x4073c9
cmp cl, 0x1b
jne 0x407394
mov byte [eax], 0x5e
inc eax
mov byte [eax], 0x5b
jmp 0x407396
sub esi, ebx
jmp 0x407317
push 0x417d88
push 0x419ea0
call fcn.0040dba4
add esp, 8
xor eax, eax
jmp 0x407319
mov byte [eax], cl
inc eax
mov ecx, eax
sub ecx, 0x41cf20
cmp ecx, 0x7ffd
jbe 0x4073c1
push 0x41cf20
push 0x417fa4
mov byte [eax], 0
call fcn.0040defd
add esp, 8
mov eax, 0x41cf20
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x40736c
push 0x41cf20
push 0x417fa8
mov byte [eax], 0
call fcn.0040defd
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
jg 0x407236
push 0x417fac
call fcn.0040defd
add esp, 4
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
cmp ebp, 0x105
mov dword [esp + 0x24], 0
jb 0x40743c
push 0x417f04
push 0x419ea0
call fcn.0040dba4
add esp, 8
add ebp, 0xfffffefc
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], 1
mov ebp, 0x104
test ebp, ebp
mov ebx, ebp
mov dword [esp + 0x20], 0x41cde0
je 0x4074f0
mov eax, dword [0x41cd24]
test eax, eax
jne 0x4074a2
mov edx, dword [0x41cd20]
mov eax, dword [0x41cdd8]
push 0x2000
push edx
push eax
call fcn.0041227f
add esp, 0xc
mov dword [0x41cd24], eax
test eax, eax
je 0x407503
jl 0x407509
mov ecx, dword [0x424f78]
add ecx, 0x2000
mov dword [0x424f78], ecx
mov ecx, dword [0x41cd20]
mov dword [0x41cdc4], ecx
cmp ebx, eax
mov edx, ebx
jb 0x4074aa
mov edx, eax
mov esi, dword [0x41cdc4]
mov edi, dword [esp + 0x20]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x41cdc4]
mov dword [esp + 0x20], eax
mov eax, dword [0x41cd24]
add edi, edx
sub eax, edx
sub ebx, edx
mov dword [0x41cdc4], edi
mov dword [0x41cd24], eax
jne 0x407453
mov eax, ebp
test eax, eax
jne 0x407528
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0xc
ret
mov eax, ebp
sub eax, ebx
jmp 0x4074f2
push 0x417d88
push 0x419ea0
call fcn.0040dba4
add esp, 8
mov eax, 0x33
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [0x416044]
mov byte [ebp + 0x41cde0], 0
test byte [ecx + 0x14], 0x10
je 0x407599
mov al, byte [0x41cde0]
mov esi, 0x41cde0
test al, al
je 0x407596
mov edi, 1
cmp dword [0x41a2ec], edi
jle 0x407566
xor edx, edx
push edi
mov dl, byte [esi]
push edx
call fcn.0040e439
add esp, 8
jmp 0x407575
mov ecx, dword [0x41a0e0]
xor eax, eax
mov al, byte [esi]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x407588
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0040e36e
add esp, 4
jmp 0x40758c
xor eax, eax
mov al, byte [esi]
mov byte [esi], al
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40754e
mov byte [esi], 0
mov eax, dword [0x416044]
test byte [eax + 0x14], 0x20
je 0x4075c3
cmp ebp, 8
jbe 0x4075c3
cmp byte [0x41cde8], 0x2e
jne 0x4075c3
mov eax, 0x41cde9
mov cl, byte [eax]
mov byte [eax - 1], cl
mov dl, cl
inc eax
test dl, dl
jne 0x4075b7
cmp word [esp + 0x24], 0
je case.default.0x40721e
push 0x41cde0
push 0x417fb0
push 0x419ea0
call fcn.0040dba4
mov ebp, dword [esp + 0x30]
add esp, 0xc
and ebp, 0xffff
mov eax, dword [0x41a8f4]
mov edi, dword [0x41cd20]
mov edx, dword [0x41cdc4]
mov ebx, dword [0x424f78]
sub eax, edi
add eax, edx
add eax, ebx
add eax, ebp
mov esi, eax
and esi, 0x80001fff
jns 0x407621
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jge 0x40764d
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
cmp ecx, ebx
je 0x4076b6
mov eax, dword [0x41cdd8]
push 0
push ecx
push eax
call fcn.004121e5
mov ecx, dword [0x41cd20]
mov edx, dword [0x41cdd8]
push 0x2000
push ecx
push edx
mov dword [0x424f78], eax
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jg 0x407695
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0xc
ret
mov ecx, dword [0x41cd20]
pop edi
add ecx, esi
sub eax, esi
pop esi
mov dword [0x41cd24], eax
mov eax, dword [esp + 0x10]
pop ebp
mov dword [0x41cdc4], ecx
pop ebx
add esp, 0xc
ret
mov eax, dword [0x41cd24]
sub edx, edi
sub edx, esi
add eax, edx
add edi, esi
mov dword [0x41cdc4], edi
pop edi
pop esi
mov dword [0x41cd24], eax
mov eax, dword [esp + 0x10]
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x41a8f8]
test eax, eax
je 0x4076ec
push eax
call fcn.0040df2e
add esp, 4
push ebp
call fcn.0040db30
add esp, 4
mov dword [0x41a8f8], eax
test eax, eax
jne 0x4077df
push ebp
push 0x417f30
push 0x419ea0
call fcn.0040dba4
mov eax, dword [0x41a8f4]
mov edi, dword [0x41cd20]
mov edx, dword [0x41cdc4]
mov ebx, dword [0x424f78]
sub eax, edi
add esp, 0xc
add eax, edx
add eax, ebx
add eax, ebp
mov esi, eax
and esi, 0x80001fff
jns 0x407746
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jge 0x407772
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
cmp ecx, ebx
je 0x4076b6
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 0x4077be
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0xc
ret
mov edx, dword [0x41cd20]
pop edi
add edx, esi
sub eax, esi
pop esi
mov dword [0x41cd24], eax
mov eax, dword [esp + 0x10]
pop ebp
mov dword [0x41cdc4], edx
pop ebx
add esp, 0xc
ret
mov dword [esp + 0x20], eax
mov eax, dword [0x41cd24]
mov ebx, ebp
test eax, eax
jne 0x407839
mov eax, dword [0x41cd20]
mov ecx, dword [0x41cdd8]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0xc
mov dword [0x41cd24], eax
test eax, eax
je 0x40789c
jl 0x4078a0
mov ecx, dword [0x424f78]
mov edx, dword [0x41cd20]
add ecx, 0x2000
mov dword [0x41cdc4], edx
mov dword [0x424f78], ecx
cmp ebx, eax
mov edx, ebx
jb 0x407841
mov edx, eax
mov esi, dword [0x41cdc4]
mov edi, dword [esp + 0x20]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x41cdc4]
mov dword [esp + 0x20], eax
mov eax, dword [0x41cd24]
add edi, edx
sub eax, edx
sub ebx, edx
mov dword [0x41cdc4], edi
mov dword [0x41cd24], eax
jne 0x4077ea
test ebp, ebp
jne case.default.0x40721e
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0xc
ret
sub ebp, ebx
jmp 0x407887
push 0x417d88
push 0x419ea0
call fcn.0040dba4
add esp, 8
mov eax, 0x33
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret