Function at 0x10096abd
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, edx
mov dword [ebp - 8], ecx
mov dl, byte [eax + 2]
mov byte [ebp - 1], 0
push edi
and dl, 0xf
jne 0x10096ade
xor ecx, ecx
jmp 0x10096af0
movzx eax, word [eax + 3]
and eax, 0x7fff
imul ecx, eax, 0xc
add ecx, 0x100c5e40
xor bl, bl
mov dword [ebp - 0xc], ecx
mov byte [esi + 0x18], dl
mov byte [ebp + 0xb], bl
test dl, dl
je 0x10096f21
movzx eax, bl
lea edx, [esi + 0x20]
imul edi, eax, 0x68
add edx, edi
mov dword [ebp - 0x10], edx
mov byte [edx], bl
movzx eax, byte [ecx]
shr eax, 5
and eax, 3
mov dword [edi + esi + 0x28], eax
mov al, byte [ecx + 1]
and al, 0xf
mov byte [edi + esi + 0x2c], al
movzx eax, byte [ecx]
and eax, 0x1f
sub eax, 1
je 0x10096b77
sub eax, 1
je 0x10096b69
sub eax, 1
jne 0x10096b8d
push 8
pop eax
mov word [edi + esi + 0x34], ax
xor eax, eax
mov dword [edi + esi + 0x24], 4
mov dword [edi + esi + 0x80], 1
mov dword [edi + esi + 0x84], eax
mov word [edi + esi + 0x78], ax
jmp 0x10096b8d
push ecx
mov ecx, dword [ebp - 8]
push edx
mov edx, esi
call fcn.100969f1
jmp 0x10096b83
push ecx
mov ecx, dword [ebp - 8]
push edx
mov edx, esi
call fcn.10096901
pop ecx
lea edx, [esi + 0x20]
pop ecx
mov ecx, dword [ebp - 0xc]
add edx, edi
mov ebx, dword [edi + esi + 0x24]
test ebx, ebx
jne 0x10096c8d
movzx eax, byte [ecx + 9]
and eax, 0x3f
mov dword [edi + esi + 0x30], eax
movzx eax, byte [ecx]
and eax, 0x1f
lea ecx, [eax - 4]
cmp ecx, 0x11
ja case.default.0x10096bb6
jmp dword [ecx*4 + 0x10096f55]
xor ebx, ebx
inc ebx
jmp 0x10096c25
push 2
jmp 0x10096c24
push 4
jmp 0x10096c24
mov al, byte [esi + 0x16]
cmp al, 0x10
je case.0x10096bb6.5
xor ebx, ebx
cmp al, 0x20
setne bl
add ebx, 3
jmp 0x10096c25
mov al, byte [esi + 0x16]
cmp al, 0x10
jne 0x10096bd1
push 3
jmp 0x10096c24
xor ebx, ebx
cmp byte [esi + 0x16], 0x10
setne bl
add ebx, 2
jmp 0x10096c25
mov al, byte [esi + 0x17]
jmp 0x10096bcd
push 5
jmp 0x10096c24
push 6
jmp 0x10096c24
push 7
jmp 0x10096c24
push 8
pop ecx
mov ebx, ecx
jmp 0x10096c28
push 9
jmp 0x10096c24
push 0x11
jmp 0x10096c24
push 0xc
jmp 0x10096c24
push 0xe
jmp 0x10096c24
push 0xf
jmp 0x10096c24
push 0x10
pop ebx
push 8
pop ecx
mov edx, dword [ebp - 0xc]
push ebx
movzx eax, byte [edx + 9]
and eax, 0x3f
sub eax, 1
je 0x10096c61
sub eax, 1
je 0x10096c5d
mov edx, esi
sub eax, 1
je 0x10096c59
sub eax, 1
je 0x10096c55
sub eax, 1
je 0x10096c52
push 9
jmp 0x10096c65
push ecx
jmp 0x10096c65
push 3
jmp 0x10096c65
push 1
jmp 0x10096c65
push 4
jmp 0x10096c63
push 2
mov edx, esi
mov ecx, dword [ebp - 8]
call fcn.100961d8
movzx eax, al
lea edx, [esi + 0x20]
push eax
push ebx
add edx, edi
mov ecx, esi
call fcn.1009666c
add esp, 0x10
test eax, eax
js 0x10096f42
mov ebx, dword [edi + esi + 0x24]
cmp ebx, 2
jne 0x10096ef5
mov ecx, dword [esi + 0x430]
xor ebx, ebx
mov edx, dword [esi + 0x434]
mov eax, ecx
and eax, 0x10000000
or eax, ebx
je 0x10096e69
mov dword [edi + esi + 0x4c], 0xbf
jmp 0x10096ef5
add eax, 0xffffffea
cmp eax, 9
ja case.0x10096ccc.26
jmp dword [eax*4 + 0x10096f9d]
push 0
mov ecx, dword [ebp - 8]
push edx
mov edx, esi
call fcn.100966b8
pop ecx
pop ecx
test eax, eax
js 0x10096f42
jmp case.0x10096ccc.26
push 7
jmp 0x10096cd5
push 8
pop eax
push eax
jmp 0x10096cd5
push 9
jmp 0x10096cd5
mov dword [edi + esi + 0x24], 3
mov eax, dword [esi + 0x598]
mov dword [edi + esi + 0x74], eax
mov ax, word [esi + 0x5b0]
mov word [edi + esi + 0x70], ax
jmp case.0x10096ccc.26
mov ecx, dword [ebp - 8]
push 0
push edx
mov edx, esi
mov byte [edi + esi + 0x2c], 0
call fcn.100966b8
pop ecx
pop ecx
test eax, eax
js 0x10096f42
mov dword [edi + esi + 0x48], 2
jmp case.0x10096ccc.26
mov dword [edi + esi + 0x24], 2
mov dword [edi + esi + 0x48], 1
mov byte [edi + esi + 0x60], 1
mov eax, dword [esi + 0x580]
mov dword [edi + esi + 0x68], eax
mov eax, dword [esi + 0x584]
mov dword [edi + esi + 0x6c], eax
jmp case.0x10096ccc.26
mov ecx, dword [ebp - 8]
push 0
push edx
mov edx, esi
mov byte [edi + esi + 0x2c], 0
call fcn.100966b8
pop ecx
pop ecx
test eax, eax
js 0x10096f42
mov dword [edi + esi + 0x48], 3
mov ebx, dword [edi + esi + 0x24]
test ebx, ebx
je 0x10096ddb
cmp dword [esi + 0xc], 4
je 0x10096daa
cmp dword [esi + 0xc], 5
jne 0x10096c8d
cmp byte [esi + 0x588], 8
jne 0x10096c8d
mov eax, dword [ebp - 8]
push dword [edi + esi + 0x6c]
push dword [edi + esi + 0x68]
movzx eax, byte [eax + 0x30]
cdq
push edx
push eax
call fcn.1009e3d0
mov dword [edi + esi + 0x68], eax
mov dword [edi + esi + 0x6c], edx
jmp 0x10096c8d
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx]
and eax, 0x1f
sub eax, 0x1a
je 0x10096df2
sub eax, 1
jne 0x10096ef5
mov eax, dword [ebp - 8]
mov bh, byte [ebp - 1]
mov dword [edi + esi + 0x24], 4
movzx eax, byte [eax + 0x18]
mov ax, word [edx + eax*2 + 2]
shl ax, 3
mov word [edi + esi + 0x34], ax
movzx eax, bh
imul ecx, eax, 0x18
mov al, byte [edx + 9]
and al, 0x3f
add ecx, esi
cmp al, 5
jne 0x10096e31
mov al, byte [ecx + 0x598]
and al, 0xf
movzx eax, al
cdq
jmp 0x10096e3d
mov eax, dword [ecx + 0x598]
mov edx, dword [ecx + 0x59c]
mov dword [edi + esi + 0x80], eax
inc bh
mov dword [edi + esi + 0x84], edx
mov al, byte [ecx + 0x590]
mov byte [edi + esi + 0x78], al
mov al, byte [ecx + 0x591]
mov byte [edi + esi + 0x79], al
mov byte [ebp - 1], bh
jmp 0x10096ef5
mov eax, ecx
and eax, 0x20000000
or eax, ebx
jne 0x10096eed
mov eax, ecx
and eax, 0x40000000
or eax, ebx
je 0x10096e89
mov dword [edi + esi + 0x4c], 0xc1
jmp 0x10096ef5
and ecx, 0x80000000
or ecx, ebx
je 0x10096e9d
mov dword [edi + esi + 0x4c], 0xbe
jmp 0x10096ef5
mov ecx, edx
mov eax, ebx
and ecx, 1
or eax, ecx
je 0x10096eb2
mov dword [edi + esi + 0x4c], 0xc2
jmp 0x10096ef5
and edx, 2
mov eax, ebx
or eax, edx
je 0x10096ec5
mov dword [edi + esi + 0x4c], 0xc3
jmp 0x10096ef5
cmp dword [edi + esi + 0x4c], ebx
jne 0x10096ef5
mov eax, dword [edi + esi + 0x50]
cmp eax, 0x39
je 0x10096eed
cmp eax, 0x3a
je 0x10096eed
cmp eax, 0x29
je 0x10096eed
cmp eax, 0x2a
je 0x10096eed
cmp eax, 0x19
je 0x10096eed
cmp eax, 0x1a
jne 0x10096e7f
mov dword [edi + esi + 0x4c], 0xc0
push dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, esi
push dword [ebp - 0x10]
call fcn.10096404
mov bl, byte [ebp + 0xb]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
add ecx, 0xc
inc bl
mov dword [ebp - 0xc], ecx
mov byte [ebp + 0xb], bl
cmp bl, byte [esi + 0x18]
jb 0x10096b03
cmp dword [esi + 0x490], 2
jne 0x10096f3d
movzx eax, byte [esi + 0x2c]
dec eax
sub eax, 1
je 0x10096f47
sub eax, 1
jne 0x10096f3d
mov byte [esi + 0x2c], 9
mov eax, 0x100000
pop edi
pop esi
pop ebx
leave
ret
cmp dword [esi + 0x24], 2
jne 0x10096f39
push 8
pop eax
mov byte [esi + 0x2c], al
jmp 0x10096f3d