Function at 0x4089f8
Capabilities:
Read file on windows

Disassembly:
call fcn.0040edad
mov dword [eax], 0x16
call fcn.0040ed66
cmp byte [ebp - 0x250], 0
je 0x4086b4
mov eax, dword [ebp - 0x254]
and dword [eax + 0x70], 0xfffffffd
or eax, 0xffffffff
jmp 0x410c5c
lea eax, [edx - 0x20]
cmp al, 0x58
ja 0x408777
movsx eax, dl
movsx eax, byte [eax + 0x4139c0]
and eax, 0xf
jmp 0x408779
xor eax, eax
movsx eax, byte [ecx + eax*8 + 0x4139e0]
push 7
sar eax, 4
pop ecx
mov dword [ebp - 0x260], eax
cmp eax, ecx
ja case.default.0x408795
jmp dword [eax*4 + 0x4091b2]
or dword [ebp + 0x7ba0e8], 0
mov dword [ebp - 0x26c], esi
mov dword [ebp - 0x244], esi
mov dword [ebp - 0x234], esi
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x210], esi
mov dword [ebp - 0x238], esi
jmp 0x410d2c
movsx eax, dl
sub eax, 0x20
je 0x40881e
sub eax, 3
je 0x40880f
sub eax, 8
je 0x408803
dec eax
dec eax
je 0x4087f7
sub eax, 3
jne case.default.0x408795
or dword [ebp - 0x210], 8
jmp 0x410d57
or dword [ebp - 0x210], 4
jmp 0x410d63
or dword [ebp - 0x210], 1
jmp 0x410d6f
or dword [ebp - 0x210], 0x80
jmp 0x410d7e
or dword [ebp - 0x210], 2
jmp 0x410d8a
cmp dl, 0x2a
jne 0x40885b
add ebx, 4
mov dword [ebp - 0x228], ebx
mov ebx, dword [ebx - 4]
mov dword [ebp - 0x234], ebx
cmp ebx, esi
jge case.default.0x408795
or dword [ebp - 0x210], 4
neg dword [ebp - 0x234]
jmp 0x410dbb
mov eax, dword [ebp - 0x234]
imul eax, eax, 0xa
movsx ecx, dl
lea eax, [eax + ecx - 0x30]
mov dword [ebp - 0x234], eax
jmp 0x410dd6
mov dword [ebp - 0x218], esi
jmp case.default.0x408795
cmp dl, 0x2a
jne 0x4088ac
add ebx, 4
mov dword [ebp - 0x228], ebx
mov ebx, dword [ebx - 4]
mov dword [ebp - 0x218], ebx
cmp ebx, esi
jge case.default.0x408795
or dword [ebp + 0x7ca4e8], 0
jmp 0x410e0c
mov eax, dword [ebp - 0x218]
imul eax, eax, 0xa
movsx ecx, dl
lea eax, [eax + ecx - 0x30]
mov dword [ebp - 0x218], eax
jmp case.default.0x408795
cmp dl, 0x49
je 0x408921
cmp dl, 0x68
je 0x408915
cmp dl, 0x6c
je 0x4088ee
cmp dl, 0x77
jne case.default.0x408795
or dword [ebp - 0x210], 0x800
jmp 0x410e4e
cmp byte [edi], 0x6c
jne 0x408909
inc edi
or dword [ebp - 0x210], 0x1000
mov dword [ebp - 0x23c], edi
jmp 0x410e69
or dword [ebp - 0x210], 0x10
jmp 0x410e75
or dword [ebp - 0x210], 0x20
jmp 0x410e81
mov al, byte [edi]
cmp al, 0x36
jne 0x408945
cmp byte [edi + 1], 0x34
jne 0x408945
add edi, 2
or dword [ebp - 0x210], 0x8000
mov dword [ebp - 0x23c], edi
jmp 0x410ea5
cmp al, 0x33
jne 0x408967
cmp byte [edi + 1], 0x32
jne 0x408967
add edi, 2
and dword [ebp - 0x210], 0xffff7fff
mov dword [ebp - 0x23c], edi
jmp 0x410ec7
cmp al, 0x64
and dword [ebp - 0x238], 0
lea eax, [ebp - 0x25c]
push eax
movzx eax, dl
push eax
call 0x414d69
pop ecx
test eax, eax
mov al, byte [ebp - 0x211]
pop ecx
je 0x4089e2
mov ecx, dword [ebp - 0x240]
lea esi, [ebp - 0x224]
call fcn.00410350
mov al, byte [edi]
inc edi
mov dword [ebp - 0x23c], edi
test al, al
je 0x408691
mov ecx, dword [ebp - 0x240]
lea esi, [ebp - 0x224]
call fcn.00410372
jmp 0x410f58
movsx eax, dl
cmp eax, 0x64
jg 0x408bec
je 0x408c83
cmp eax, 0x53
jg 0x408b05
je 0x408a99
sub eax, 0x41
je 0x408a2e
dec eax
dec eax
je 0x408a7a
dec eax
dec eax
je 0x408a2e
dec eax
dec eax
jne 0x408fba
add dl, 0x20
mov dword [ebp - 0x26c], 1
mov byte [ebp - 0x211], dl
or dword [ebp - 0x210], 0x40
lea edi, [ebp - 0x20c]
mov eax, 0x200
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x218], esi
jge 0x408cb3
mov dword [ebp - 0x218], 6
jmp 0x410b97
test dword [ebp - 0x210], 0x830
jne 0x408b22
or dword [ebp - 0x210], 0x800
jmp 0x4109bb
test dword [ebp - 0x210], 0x830
jne 0x408aaf
or dword [ebp - 0x210], 0x800
mov ecx, dword [ebp - 0x218]
cmp ecx, 0xffffffff
jne 0x408abf
mov ecx, 0x7fffffff
add ebx, 4
test dword [ebp - 0x210], 0x810
mov dword [ebp - 0x228], ebx
mov ebx, dword [ebx - 4]
mov dword [ebp - 0x21c], ebx
je 0x408f8c
cmp ebx, esi
jne 0x408af0
mov eax, dword [0x420184]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x238], 1
jmp 0x410e83
sub eax, 0x58
je 0x408de1
dec eax
dec eax
je 0x408b8b
sub eax, ecx
je 0x408a41
dec eax
dec eax
jne 0x408fba
add ebx, 4
test dword [ebp - 0x210], 0x810
mov dword [ebp - 0x228], ebx
je 0x408b67
movzx eax, word [ebx - 4]
push eax
push 0x200
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x220]
push eax
call 0x415cb7
add esp, 0x10
test eax, eax
je 0x408b7a
mov dword [ebp - 0x244], 1
jmp 0x408b7a
mov al, byte [ebx - 4]
mov byte [ebp - 0x20c], al
mov dword [ebp - 0x220], 1
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x21c], eax
jmp 0x410f45
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0x228], ebx
cmp eax, esi
je 0x408bd5
mov ecx, dword [eax + 4]
cmp ecx, esi
je 0x408bd5
test dword [ebp - 0x210], 0x800
movsx eax, word [eax]
mov dword [ebp - 0x21c], ecx
je 0x408bca
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x238], 1
jmp 0x410f7e
mov dword [ebp - 0x238], esi
jmp 0x410f89
mov eax, dword [str._null_]
mov dword [ebp - 0x21c], eax
push eax
call fcn.0040f096
pop ecx
jmp 0x410fa0
cmp eax, 0x70
jg 0x408de9
je 0x408dd7
cmp eax, 0x65
jl 0x408fba
cmp eax, 0x67
jle 0x408a41
cmp eax, 0x69
je 0x408c83
cmp eax, 0x6e
je 0x408c3f
cmp eax, 0x6f
jne 0x408fba
test byte [ebp - 0x210], 0x80
mov dword [ebp - 0x220], 8
je 0x408c94
or dword [ebp - 0x210], 0x200
jmp 0x408c94
mov esi, dword [ebx]
add ebx, 4
mov dword [ebp - 0x228], ebx
call 0x415c47
test eax, eax
je 0x408691
test byte [ebp - 0x210], 0x20
je 0x408c6c
mov ax, word [ebp - 0x224]
mov word [esi], ax
jmp 0x408c74
mov eax, dword [ebp - 0x224]
mov dword [esi], eax
mov dword [ebp - 0x244], 1
jmp 0x4111c7
or dword [ebp - 0x210], 0x40
mov dword [ebp - 0x220], 0xa
mov ecx, dword [ebp - 0x210]
test ecx, 0x8000
je 0x408e48
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
add ebx, 8
jmp 0x410f34
jne 0x408cc6
cmp dl, 0x67
jne 0x408d1d
mov dword [ebp - 0x218], 1
jmp 0x408d1d
cmp dword [ebp - 0x218], eax
jle 0x408cd4
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0xa3
jle 0x408d1d
mov esi, dword [ebp - 0x218]
add esi, 0x15d
push esi
call 0x414a61
mov dl, byte [ebp - 0x211]
pop ecx
mov dword [ebp - 0x24c], eax
test eax, eax
je 0x408d13
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x264], esi
mov edi, eax
jmp 0x408d1d
mov dword [ebp - 0x218], 0xa3
mov eax, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
add ebx, 8
mov dword [ebp - 0x278], eax
mov eax, dword [ebx - 4]
mov dword [ebp - 0x274], eax
lea eax, [ebp - 0x25c]
push eax
push dword [ebp - 0x26c]
movsx eax, dl
push dword [ebp - 0x218]
mov dword [ebp - 0x228], ebx
push eax
push dword [ebp - 0x264]
lea eax, [ebp - 0x278]
push edi
mov dword [ebp - 0x218], 8
mov dword [ebp - 0x248], ecx
jmp 0x408e0d
sub eax, 0x73
je 0x408aaf
dec eax
dec eax
je 0x408c8a
sub eax, 3
jne 0x408fba
mov bh, 1
add byte [eax], al
mov dword [ebp - 0x248], 0x27
test byte [ebp - 0x210], 0x80
mov dword [ebp - 0x220], 0x10
je 0x408c94
mov al, byte [ebp - 0x248]
add al, 0x51
mov byte [ebp - 0x22c], 0x30
mov byte [ebp - 0x22b], al
mov dword [ebp - 0x230], 2
jmp 0x410edc
test ecx, 0x1000
jne 0x408ca6
add ebx, 4
test cl, 0x20
je 0x408e74
mov dword [ebp - 0x228], ebx
test cl, 0x40
je 0x408e6d
movsx eax, word [ebx - 4]
jmp 0x408e71
movzx eax, word [ebx - 4]
cdq
jmp 0x408e87
mov eax, dword [ebx - 4]
test cl, 0x40
je 0x408e7f
cdq
jmp 0x408e81
xor edx, edx
mov dword [ebp - 0x228], ebx
test cl, 0x40
je 0x408ea7
test edx, edx
jg 0x408ea7
jl 0x408e96
test eax, eax
jae 0x408ea7
neg eax
adc edx, 0
neg edx
or dword [ebp - 0x210], 0x100
test dword [ebp - 0x210], 0x9000
mov ebx, edx
mov edi, eax
jne 0x408eb9
xor ebx, ebx
cmp dword [ebp + 0x82bde8], 0xffffffff
jge 0x408ece
mov dword [ebp - 0x218], 1
jmp 0x408ee8
invalid
movsd dword es:[edi], dword [esi]
cmp ebx, esi
jne 0x408f9b
mov eax, dword [str._null_]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x21c]
jmp 0x408faa
dec ecx
cmp byte [eax], 0
je 0x408fae
inc eax
cmp ecx, esi
jne 0x408fa3
sub eax, dword [ebp - 0x21c]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x244], 0
jne 0x409144
mov eax, dword [ebp - 0x210]
test al, 0x40
je 0x409003
test eax, 0x100
je 0x408fe1
mov byte [ebp - 0x22c], 0x2d
jmp 0x408ff9
test al, 1
je 0x408fee
mov byte [ebp - 0x22c], 0x2b
jmp 0x408ff9
test al, 2
je 0x409003
mov byte [ebp - 0x22c], 0x20
mov dword [ebp - 0x230], 1
mov ebx, dword [ebp - 0x234]
sub ebx, dword [ebp - 0x220]
sub ebx, dword [ebp - 0x230]
mov dword [ebp - 0x264], ebx
test al, 0xc
jne 0x409046
mov edi, ebx
test ebx, ebx
jle 0x409046
mov ecx, dword [ebp - 0x240]
lea esi, [ebp - 0x224]
mov al, 0x20
dec edi
call fcn.004109b8
cmp dword [ebp - 0x224], 0xffffffff
je 0x409046
test edi, edi
jg 0x409025
mov edi, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x230]
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x224]
call 0x410a16
test byte [ebp - 0x210], 8
pop ecx
je 0x409096
test byte [ebp - 0x210], 4
jne 0x409096
jmp 0x409092
lea esi, [ebp - 0x224]
mov ecx, edi
mov al, 0x30
dec ebx
call fcn.00410a08
cmp dword [ebp - 0x224], 0xffffffff
je 0x409096
test ebx, ebx
jg 0x409079
cmp dword [ebp - 0x238], 0
mov ebx, dword [ebp - 0x220]
je 0x4090f9
test ebx, ebx
jle 0x4090f9
mov esi, dword [ebp - 0x21c]
movzx eax, word [esi]
push eax
push 6
lea eax, [ebp - 0xc]
push eax
invalid
invalid