Function at 0x4541b4
Capabilities:
Read file on windows

Disassembly:
pop ebx
mov esi, edi
inc dword [ebp + 0x683175c0]
add byte [eax + eax], al
add byte [eax + 0x7400047b], al
add eax, 0xeb04c383
add eax, 0x4a211bbb
add byte [ebx - 0x73], dl
xchg byte [eax + 0x50000022], cl
call 0x4c1a61
mov byte [esi + 0x2687], 0
add esp, 0xc
jmp 0x454440
cmp dword [0x467104], 0x32
jb 0x4549f5
cmp dword [0x467104], 0x100000
jae 0x453f84
mov eax, dword [edi]
mov edx, dword [0x467104]
mov byte [eax + edx + 1], 0
mov byte [0x4671dc], 0
mov byte [0x4671dd], 0
mov byte [0x4671de], 0
mov esi, dword [0x467104]
test esi, esi
jbe 0x4549be
mov ebx, 1
cmp byte [0x4671de], 0
jne 0x453fcc
mov eax, dword [edi]
cmp byte [eax + ebx], 8
jne 0x454192
inc byte [0x4671de]
jmp 0x454192
cmp byte [0x4671de], 1
jne 0x454013
mov eax, dword [edi]
mov al, byte [eax + ebx]
mov edx, eax
and dl, 0xf
cmp dl, 9
jne 0x454007
and eax, 0xff
shr eax, 4
cmp eax, 0xff
ja 0x453ffa
bt dword [0x464e54], eax
jae 0x454007
inc byte [0x4671de]
jmp 0x454192
mov byte [0x4671de], 0
jmp 0x454192
cmp byte [0x4671de], 1
jbe 0x454053
cmp byte [0x4671de], 9
jae 0x454053
mov eax, dword [edi]
mov al, byte [eax + ebx]
xor edx, edx
mov dl, al
shr edx, 4
cmp edx, 0xa
jae 0x454047
and al, 0xf
cmp al, 0xa
jae 0x454047
inc byte [0x4671de]
jmp 0x454192
mov byte [0x4671de], 0
jmp 0x454192
mov al, byte [0x4671de]
add al, 0xf7
sub al, 7
jae 0x45407d
mov eax, dword [edi]
cmp byte [eax + ebx], 0
jne 0x454071
inc byte [0x4671de]
jmp 0x454192
mov byte [0x4671de], 0
jmp 0x454192
cmp byte [0x4671de], 0x10
jne 0x454192
mov eax, 0x467080
mov edx, 0x454d38
call fcn.004045b8
mov eax, dword [0x46714c]
call fcn.00404a24
mov edx, eax
xor eax, eax
mov al, byte [0x4671de]
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi]
add eax, ecx
mov ecx, 9
call fcn.00408ba4
mov eax, dword [0x46714c]
call fcn.00408b40
test al, al
je 0x45418b
mov eax, dword [0x467150]
call fcn.00404a24
mov edx, eax
mov eax, dword [edi]
add eax, ebx
mov ecx, 0x10
call fcn.00408ba4
mov eax, dword [0x467150]
call fcn.00408b40
test al, al
je 0x45418b
mov edx, dword [0x467138]
mov eax, dword [0x467150]
call fcn.00404b68
test eax, eax
jne 0x45418b
push dword [0x467138]
push 0x454cc8
push 0x454d78
mov eax, dword [0x467120]
add eax, ebx
xor edx, edx
mov dl, byte [0x4671de]
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x14]
call fcn.004079c4
push dword [ebp - 0x14]
push 0x454d88
push dword [0x46714c]
push 0x454d94
push 0x454da0
mov eax, dword [0x467120]
add eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x18]
call fcn.004079c4
push dword [ebp - 0x18]
push 0x454d88
push dword [0x467150]
mov eax, 0x467138
mov edx, 0xb
call fcn.004048e4
inc dword [0x46712c]
mov byte [0x4671de], 0
cmp byte [0x4671dc], 0
jne 0x4541b2
mov eax, dword [edi]
cmp byte [eax + ebx], 0x30
jne 0x454548
inc byte [0x4671dc]
jmp 0x454548
cmp byte [0x4671dc], 1
jne 0x4541f7
mov eax, dword [edi]
cmp byte [eax + ebx], 0x38
jne 0x4541d5
inc byte [0x4671dc]
mov byte [0x4671dd], 2
jmp 0x4549b6
mov byte [0x4671dc], 0
mov byte [0x4671dd], 0
mov eax, 0x467080
mov edx, 0x454db0
call fcn.004045b8
jmp 0x454548
cmp byte [0x4671dc], 2
jne 0x45423e
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464e34], eax
jae 0x454232
mov eax, dword [edi]
mov al, byte [eax + ebx - 3]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x454232
inc byte [0x4671dc]
jmp 0x454548
mov byte [0x4671dc], 0
jmp 0x454548
cmp byte [0x4671dc], 3
jne 0x454266
mov eax, dword [edi]
cmp byte [eax + ebx], 0x39
jne 0x45425a
inc byte [0x4671dc]
jmp 0x454548
mov byte [0x4671dc], 0
jmp 0x454548
cmp byte [0x4671dc], 3
jbe 0x4542a2
cmp byte [0x4671dc], 0x11
jae 0x4542a2
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464dd4], eax
jae 0x454296
inc byte [0x4671dc]
jmp 0x454548
mov byte [0x4671dc], 0
jmp 0x454548
cmp byte [0x4671dc], 0x11
jne 0x454548
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464dd4], eax
jae 0x454548
mov eax, dword [edi]
mov al, byte [eax + ebx + 1]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x454548
xor eax, eax
mov al, byte [0x4671dc]
mov edx, ebx
sub edx, eax
mov dword [0x467108], edx
mov byte [0x4671dc], 0
mov eax, 0x46713c
call fcn.00404a7c
mov edx, dword [edi]
mov ecx, dword [0x467108]
add edx, ecx
mov ecx, 0x12
call fcn.00406f5c
mov eax, dword [0x46713c]
call fcn.00408b40
test al, al
je 0x454548
push dword [0x467130]
push 0x454cc8
push 0x454e78
mov eax, dword [0x467120]
add eax, dword [0x467108]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1c]
call fcn.004079c4
push dword [ebp - 0x1c]
push 0x454d88
push dword [0x46713c]
mov eax, 0x467130
mov edx, 6
call fcn.004048e4
cmp dword [0x467108], 0xc8
jbe 0x454387
mov eax, dword [0x467108]
sub eax, 0xc8
mov dword [0x467110], eax
jmp 0x454391
mov dword [0x467110], 1
mov eax, dword [0x467108]
add eax, 0xc8
mov dword [0x467118], eax
mov eax, dword [0x467118]
add eax, 0x20
cmp eax, dword [0x467104]
jbe 0x4543ba
mov eax, dword [0x467104]
mov dword [0x467118], eax
mov eax, dword [0x467110]
cmp eax, dword [0x467118]
ja 0x454541
mov eax, dword [0x467110]
cmp eax, dword [0x467108]
jbe 0x4543e6
cmp ebx, dword [0x467110]
jbe 0x4543e6
mov dword [0x467110], ebx
cmp byte [0x4671dc], 0x1f
jae 0x45441f
mov eax, dword [edi]
mov edx, dword [0x467110]
mov al, byte [eax + edx]
and eax, 0xff
bt dword [0x464df4], eax
jae 0x454413
inc byte [0x4671dc]
jmp 0x45452a
mov byte [0x4671dc], 0
jmp 0x45452a
cmp byte [0x4671dc], 0x1f
jne 0x45452a
mov eax, dword [edi]
mov edx, dword [0x467110]
mov al, byte [eax + edx]
and eax, 0xff
bt dword [0x464df4], eax
jae 0x454523
dec ebp
inc esi
add byte [edi], cl
sbb edx, 0
add byte [eax], al
mov eax, dword [edi]
mov edx, dword [0x467110]
mov al, byte [eax + edx + 1]
and eax, 0xff
bt dword [0x464e14], eax
dec esi
inc esi
add byte [edi], cl
invalid
invalid
add byte [eax], al
invalid
mov eax, dword [edi]
mov edx, dword [0x467110]
mov al, byte [eax + edx - 0x20]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x454523
mov eax, 0x467140
call fcn.00404a7c
xor edx, edx
mov dl, byte [0x4671dc]
mov ecx, dword [0x467110]
sub ecx, edx
mov edx, dword [edi]
add edx, ecx
mov ecx, 0x20
call fcn.00406f5c
mov eax, dword [0x467140]
call fcn.00408b40
test al, al
je 0x454523
mov edx, dword [0x467130]
mov eax, dword [0x467140]
call fcn.00404b68
test eax, eax
jne 0x454523
push dword [0x467130]
push 0x454d94
push 0x454e88
mov eax, dword [0x467120]
add eax, dword [0x467110]
xor edx, edx
mov dl, byte [0x4671dc]
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x20]
call fcn.004079c4
push dword [ebp - 0x20]
push 0x454d88
push dword [0x467140]
mov eax, 0x467130
mov edx, 6
call fcn.004048e4
inc dword [0x467124]
mov byte [0x4671dc], 0
inc dword [0x467110]
mov eax, dword [0x467110]
cmp eax, dword [0x467118]
jbe 0x4543cb
mov byte [0x4671dc], 0
cmp byte [0x4671dd], 1
jbe 0x4549b6
cmp byte [0x4671dd], 2
jne 0x45457d
mov eax, dword [edi]
cmp byte [eax + ebx], 0x20
jne 0x454571
inc byte [0x4671dd]
jmp 0x4549b6
mov byte [0x4671dd], 0
jmp 0x4549b6
cmp byte [0x4671dd], 3
jne 0x4545b0
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464e34], eax
jae 0x4545a4
inc byte [0x4671dd]
jmp 0x4549b6
mov byte [0x4671dd], 0
jmp 0x4549b6
cmp byte [0x4671dd], 4
jne 0x4545d8
mov eax, dword [edi]
cmp byte [eax + ebx], 0x39
jne 0x4545cc
inc byte [0x4671dd]
jmp 0x4549b6
mov byte [0x4671dd], 0
jmp 0x4549b6
mov al, byte [0x4671dd]
cmp al, 0x1f
ja 0x4545eb
and eax, 0x7f
bt dword [0x454e8c], eax
jae 0x45460c
mov eax, dword [edi]
cmp byte [eax + ebx], 0x20
jne 0x454600
inc byte [0x4671dd]
jmp 0x4549b6
mov byte [0x4671dd], 0
jmp 0x4549b6
mov al, byte [0x4671dd]
cmp al, 0x1f
ja 0x45461f
and eax, 0x7f
bt dword [0x454e90], eax
jae 0x45464b
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464dd4], eax
jae 0x45463f
inc byte [0x4671dd]
jmp 0x4549b6
mov byte [0x4671dd], 0
jmp 0x4549b6
cmp byte [0x4671dd], 0x19
jne 0x4549b6
mov eax, dword [edi]
mov al, byte [eax + ebx]
and eax, 0xff
bt dword [0x464dd4], eax
jae 0x4549b6
mov eax, dword [edi]
mov al, byte [eax + ebx + 1]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x4549b6
mov eax, dword [edi]
mov al, byte [eax + ebx - 0x1a]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x4549b6
xor eax, eax
mov al, byte [0x4671dd]
mov edx, ebx
sub edx, eax
mov dword [0x46710c], edx
mov byte [0x4671dd], 0
mov eax, dword [edi]
mov edx, dword [0x46710c]
lea edx, [eax + edx]
mov eax, 0x467144
mov ecx, 0x1a
call fcn.00404654
lea edx, [ebp - 0x24]
fsub qword [ecx + 0x467144]
call fcn.00408ab8
mov edx, dword [ebp - 0x24]
mov eax, 0x467144
call fcn.004045b8
mov eax, dword [0x467144]
call fcn.00408b40
test al, al
je 0x4549b6
push dword [0x467134]
push 0x454cc8
push 0x454e9c
mov eax, dword [0x467120]
add eax, dword [0x46710c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.004079c4
push dword [ebp - 0x28]
push 0x454d88
push dword [0x467144]
mov eax, 0x467134
mov edx, 6
call fcn.004048e4
cmp dword [0x46710c], 0xc8
jbe 0x45475e
mov eax, dword [0x46710c]
sub eax, 0xc8
mov dword [0x467114], eax
jmp 0x454768
mov dword [0x467114], 1
mov eax, dword [0x46710c]
add eax, 0xc8
mov dword [0x46711c], eax
mov eax, dword [0x46711c]
add eax, 0x2f
cmp eax, dword [0x467104]
jbe 0x454791
mov eax, dword [0x467104]
mov dword [0x46711c], eax
mov eax, dword [0x467114]
cmp eax, dword [0x46711c]
ja 0x4549af
mov eax, 0x467080
mov edx, 0x454eac
call fcn.004045b8
mov eax, dword [0x467114]
cmp eax, dword [0x46710c]
add eax, 0x46710c
jbe 0x4547cc
cmp ebx, dword [0x467114]
jbe 0x4547cc
mov dword [0x467114], ebx
mov al, byte [0x4671dd]
cmp al, 0x2f
ja 0x4547df
and eax, 0x7f
bt dword [0x454ef0], eax
jae 0x454811
mov eax, dword [edi]
mov edx, dword [0x467114]
mov al, byte [eax + edx]
and eax, 0xff
bt dword [0x464df4], eax
jae 0x454805
inc byte [0x4671dd]
jmp 0x454989
mov byte [0x4671dd], 0
jmp 0x454989
mov al, byte [0x4671dd]
cmp al, 0x2f
ja 0x454824
and eax, 0x7f
bt dword [0x454ef8], eax
jae 0x45484b
mov eax, dword [edi]
mov edx, dword [0x467114]
cmp byte [eax + edx], 0x20
jne 0x45483f
inc byte [0x4671dd]
jmp 0x454989
mov byte [0x4671dd], 0
jmp 0x454989
cmp byte [0x4671dd], 0x2e
jne 0x454989
mov eax, 0x467080
mov edx, 0x454b7c
call fcn.004045b8
mov eax, dword [edi]
mov edx, dword [0x467114]
mov al, byte [eax + edx]
and eax, 0xff
bt dword [0x464df4], eax
jae 0x454973
mov eax, dword [edi]
mov edx, dword [0x467114]
mov al, byte [eax + edx + 1]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x454973
mov eax, dword [edi]
mov edx, dword [0x467114]
mov al, byte [eax + edx - 0x2f]
and eax, 0xff
bt dword [0x464e14], eax
jae 0x454973
xor eax, eax
mov al, byte [0x4671dd]
mov edx, dword [0x467114]
sub edx, eax
mov eax, dword [edi]
lea edx, [eax + edx]
mov eax, 0x467148
mov ecx, 0x2f
call fcn.00404654
lea edx, [ebp - 0x2c]
mov eax, dword [0x467148]
call fcn.00408ab8
mov edx, dword [ebp - 0x2c]
mov eax, 0x467148
call fcn.004045b8
mov eax, dword [0x467148]
call fcn.00408b40
test al, al
je 0x454973
mov edx, dword [0x467134]
mov eax, dword [0x467148]
call fcn.00404b68
test eax, eax
jne 0x454973
push dword [0x467134]
push 0x454d94
push 0x454f08
mov eax, dword [0x467120]
add eax, dword [0x467114]
xor edx, edx
mov dl, byte [0x4671dd]
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x30]
call fcn.004079c4
push dword [ebp - 0x30]
push 0x454d88
push dword [0x467148]
mov eax, 0x467134
mov edx, 6
call fcn.004048e4
inc dword [0x467128]
mov byte [0x4671dd], 0
mov eax, 0x467080
mov edx, 0x454f18
call fcn.004045b8
inc dword [0x467114]
mov eax, 0x467080
mov edx, 0x454fd0
call fcn.004045b8
mov eax, dword [0x467114]
invalid
invalid
sbb al, 0x71