Function at 0x1003f0c0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
push ebp
mov ebp, dword [esp + 0x38]
push esi
push edi
test ebx, 0x102000
je 0x1003f4ef
test bl, 8
je 0x1003f0ee
mov dword [esp + 0x40], 1
jmp 0x1003f10f
test bl, 0x10
je 0x1003f0fd
mov dword [esp + 0x40], 2
jmp 0x1003f10f
mov eax, ebx
and al, 0x20
movzx eax, al
neg eax
sbb eax, eax
and eax, 3
mov dword [esp + 0x40], eax
test bl, 1
je 0x1003f11e
mov dword [esp + 0x48], 1
jmp 0x1003f13f
test bl, 2
je 0x1003f12d
mov dword [esp + 0x48], 2
jmp 0x1003f13f
mov eax, ebx
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 3
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x44]
test edi, edi
je 0x1003f14b
mov eax, dword [edi]
jmp 0x1003f14d
xor eax, eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
mov ecx, edx
shr ecx, 3
cmp byte [esp + 0x50], 0
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp]
je 0x1003f176
mov dword [esp + 0x10], 0
jmp 0x1003f188
mov eax, ecx
shr eax, 4
not eax
and eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
shr ecx, 3
shr edx, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
test edi, edi
je 0x1003f1a2
mov edx, dword [edi + 4]
and edx, 7
jmp 0x1003f1a4
xor edx, edx
mov ecx, dword [ebp + 4]
mov eax, dword [eax + 4]
and ecx, 7
push 0x22
push edx
and eax, 7
push ecx
push eax
call fcn.1003f000
mov esi, 1
test eax, eax
je 0x1003f26d
cmp eax, 5
jne 0x1003f21d
test ebx, 0x20000
je 0x1003f1df
mov edi, dword [ebp]
test edi, 0x1000
jne 0x1003f20d
test ebx, 0x40000
je 0x1003f1f2
mov edi, dword [ebp]
test edi, 0x2000
jne 0x1003f20d
test ebx, 0x80000
je 0x1003f509
mov edi, dword [ebp]
test edi, 0x4000
je 0x1003f509
xor eax, eax
mov byte [esp + 0x50], 1
mov dword [esp + 0x5c], eax
jmp 0x1003f3b1
test ebx, 0x4000
je 0x1003f230
mov edi, dword [ebp]
test edi, 0x1000
jne 0x1003f25e
test ebx, 0x8000
je 0x1003f243
mov edi, dword [ebp]
test edi, 0x2000
jne 0x1003f25e
test ebx, 0x10000
je 0x1003f523
mov edi, dword [ebp]
test edi, 0x4000
je 0x1003f523
dec eax
mov byte [esp + 0x50], 1
mov dword [esp + 0x5c], eax
jmp 0x1003f3b1
test edi, edi
je 0x1003f289
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x5c]
and eax, 0x3ff
cmp ecx, eax
cmovb ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x1003f291
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov edi, dword [ebp]
mov ebp, edi
mov eax, dword [esp + 0x3c]
shr ebp, 0x10
movzx edx, word [eax + 2]
mov eax, ebp
mov ecx, edx
and eax, 0x3ff
and ecx, 0x3ff
cmp ecx, eax
cmovae ebp, edx
and ebp, 0x3ff
cmp ebp, dword [esp + 0x50]
cmovb ebp, dword [esp + 0x50]
cmp ebp, 0x200
jne 0x1003f2d3
mov eax, 2
jmp 0x1003f2de
xor eax, eax
cmp ebp, 0x100
sete al
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x54]
mov byte [esp + 0x50], al
test al, al
je 0x1003f305
mov esi, ebx
and esi, 0x200000
neg esi
sbb esi, esi
and esi, 0xfffffffc
add esi, 8
jmp 0x1003f3b1
test ebx, 0x40000000
je 0x1003f332
cmp ebp, 0x80
jne 0x1003f31d
lea esi, [ebp - 0x78]
jmp 0x1003f3b1
cmp ebp, 0x100
mov esi, 0x40
mov eax, 0x20
cmove esi, eax
jmp 0x1003f3b1
mov ecx, ebx
mov eax, ebx
or ecx, 0x28000000
and eax, 0x3f000000
cmovne ecx, ebx
test ecx, 0x1f000000
je 0x1003f3b1
test ecx, 0x1000000
je 0x1003f35b
mov esi, 2
jmp 0x1003f38b
test ecx, 0x2000000
je 0x1003f36a
mov esi, 4
jmp 0x1003f38b
test ecx, 0x4000000
je 0x1003f379
mov esi, 8
jmp 0x1003f38b
mov esi, ecx
and esi, 0x8000000
neg esi
sbb esi, esi
and esi, 0xfffffff0
add esi, 0x20
test ecx, 0x20000000
je 0x1003f3b1
cmp ebp, 0x200
jne 0x1003f3a2
mov eax, 4
jmp 0x1003f3ae
xor eax, eax
cmp ebp, 0x100
sete al
inc eax
imul esi, eax
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x1003f3ca
mov edx, dword [ecx]
shr edx, 4
and edx, 0xffffff01
mov dword [esp + 0x54], edx
jmp 0x1003f3cf
mov byte [esp + 0x54], 0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
mov eax, edx
shr eax, 0x1a
test al, 1
jne 0x1003f3fe
mov eax, edi
shr eax, 0x1a
test al, 1
jne 0x1003f3fe
test ecx, ecx
je 0x1003f3f4
mov eax, dword [ecx]
shr eax, 0x1a
test al, 1
jne 0x1003f3fe
mov dword [esp + 0x3c], 0
jmp 0x1003f406
mov dword [esp + 0x3c], 0x80
mov ebp, dword [esp + 0x58]
test ebp, ebp
jne 0x1003f436
test ecx, ecx
je 0x1003f41c
mov eax, dword [ecx]
shr eax, 0x1b
and eax, 7
jmp 0x1003f41e
xor eax, eax
push 0x21
shr edx, 0x1b
push eax
shr edi, 0x1b
and edx, 7
and edi, 7
push edx
push edi
call fcn.1003f000
mov ebp, eax
mov edi, dword [esp + 0x14]
mov ecx, edi
push 0x62
call fcn.1003e200
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
not ecx
not eax
and ecx, 1
and eax, 1
shl ecx, 5
shl eax, 4
or ecx, eax
mov eax, dword [esp + 0x20]
not eax
and eax, 1
shl eax, 7
or ecx, eax
mov eax, dword [esp + 0x10]
shl eax, 6
or ecx, eax
or ecx, dword [esp + 0x40]
push ecx
mov ecx, edi
call fcn.1003e200
mov eax, dword [esp + 0x24]
and ebx, 0x800
or ebx, 0x40
and eax, 0xf
shr ebx, 4
mov ecx, edi
shl eax, 3
or ebx, eax
or ebx, dword [esp + 0x48]
push ebx
call fcn.1003e200
mov eax, dword [esp + 0x54]
and ebp, 7
movzx ecx, al
mov eax, dword [esp + 0x5c]
xor ecx, 1
shl ecx, 3
and eax, 3
shl eax, 5
or ecx, eax
movzx eax, byte [esp + 0x50]
shl eax, 4
or ecx, eax
or ecx, ebp
or ecx, dword [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.1003e200
push dword [esp + 0x4c]
mov ecx, edi
call fcn.1003e200
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0x24
push 0x24
lea ecx, [esp + 0x2c]
call fcn.1003deb0
push 0x101aac88
lea eax, [esp + 0x2c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push 0x25
lea ecx, [esp + 0x2c]
call fcn.1003deb0
push 0x101aac88
lea eax, [esp + 0x2c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push 0x26
lea ecx, [esp + 0x2c]
call fcn.1003deb0
push 0x101aac88
lea eax, [esp + 0x2c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3