Function at 0x1004d160
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, edx
mov dword [ebp - 0x10], 0
mov eax, ecx
mov dword [ebp - 0x28], esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x2c], ecx
mov ecx, eax
mov dword [ebp - 8], eax
mov byte [ebp - 1], 0
mov dword [ebp - 0x24], 0
call fcn.1004e490
mov edx, eax
mov dword [ebp - 0x18], edx
test edx, edx
je 0x1004d84d
movzx ecx, word [edx]
lea eax, [ecx*8]
sub eax, ecx
add eax, 0x100aa9b0
mov dword [ebp - 0x20], eax
movzx eax, byte [eax]
mov ebx, dword [eax*4 + 0x1009cf70]
movzx eax, word [edx + 2]
mov ecx, eax
and eax, 0x7fff
and ecx, 0x8000
mov word [edx + 2], ax
cmp dword [esi + 0x18], 1
mov dword [ebp - 0x30], ecx
jne 0x1004d213
mov eax, dword [esi]
test eax, 0x2000
je 0x1004d213
cmp dword [esi + 0x20], 0
jne 0x1004d213
test byte [ebp - 0x1c], 8
je 0x1004d213
and eax, 0xffffdfff
mov dword [esi], eax
mov ecx, dword [esi + 0x38]
cmp ecx, 0xffffffff
je 0x1004d213
movzx eax, word [esi + 0x1c]
bts eax, ecx
mov word [esi + 0x1c], ax
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x14], edx
cmp edx, 2
jne 0x1004d229
test ebx, 0x800000
jmp 0x1004d22f
test ebx, 0x8000000
jne 0x1004d84d
test bl, 1
je 0x1004d27e
mov eax, ebx
not eax
test eax, 0x40000000
je 0x1004d252
inc dword [ecx + 8]
add dword [ecx + 0xc], 0xffffffff
js 0x1004d84d
mov eax, dword [ecx + 8]
movzx eax, byte [eax]
mov dword [ebp - 0x10], eax
test ebx, 0x10000000
je 0x1004d26b
test al, 0x38
jne 0x1004d84d
test ebx, 0x100000
je 0x1004d27e
cmp eax, 0xc0
jb 0x1004d84d
inc dword [ecx + 8]
mov eax, edx
mov ecx, dword [esi]
mov dword [ebp - 0xc], eax
test ecx, 0x2000
je 0x1004d29c
mov eax, dword [eax*4 + 0x10099c54]
mov dword [ebp - 0xc], eax
jmp 0x1004d2cd
cmp eax, 2
jne 0x1004d2cd
mov eax, ebx
and eax, 0x3000000
cmp eax, 0x1000000
je 0x1004d2c6
test ecx, 0x2000000
je 0x1004d2bd
test byte [ebp - 0x1c], 8
jne 0x1004d2c6
mov dword [ebp - 0xc], 1
jmp 0x1004d2cd
mov dword [ebp - 0xc], 2
test ecx, 0x4000
je 0x1004d2df
mov edx, dword [edx*4 + 0x1009c644]
mov dword [ebp - 0x14], edx
push 0x40
push 0
push edi
call fcn.10063ea0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [edi + 0x30], 0xff
mov al, byte [eax + 2]
test al, al
je 0x1004d3ce
lea ecx, [ebp - 0x24]
movzx eax, al
push ecx
push dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, edi
push dword [ebp - 0xc]
push esi
push dword [ebp - 0x10]
push 0
push eax
push ebx
push dword [ebp - 0x18]
call fcn.1004f010
add esp, 0x24
test eax, eax
je 0x1004d84d
mov eax, dword [ebp - 0x20]
mov al, byte [eax + 1]
test al, al
je 0x1004d3ce
mov ecx, dword [ebp - 8]
mov edx, edi
push 0
push dword [ebp - 0x14]
movzx eax, al
push dword [ebp - 0xc]
push esi
push dword [ebp - 0x10]
push 1
push eax
push ebx
push dword [ebp - 0x18]
call fcn.1004f010
add esp, 0x24
test eax, eax
je 0x1004d84d
test ebx, 0x20000
je 0x1004d3ce
mov ecx, dword [ebp - 0x18]
mov edx, edi
push 0
push dword [ebp - 0x14]
push dword [ebp - 0xc]
movzx eax, byte [ecx + 5]
push esi
push dword [ebp - 0x10]
push 2
push eax
push ebx
push ecx
mov ecx, dword [ebp - 8]
call fcn.1004f010
add esp, 0x24
test eax, eax
je 0x1004d84d
test ebx, 0x40000
je 0x1004d3ce
mov ecx, dword [ebp - 0x18]
mov edx, edi
push 0
push dword [ebp - 0x14]
push dword [ebp - 0xc]
movzx eax, byte [ecx + 6]
push esi
push dword [ebp - 0x10]
push 3
push eax
push ebx
push ecx
mov ecx, dword [ebp - 8]
call fcn.1004f010
add esp, 0x24
test eax, eax
je 0x1004d84d
mov edx, dword [ebp - 8]
test ebx, 0x200000
je 0x1004d457
mov eax, dword [edx + 0xc]
cmp eax, 1
jl 0x1004d84d
mov ecx, dword [edx + 8]
dec eax
mov dword [edx + 0xc], eax
lea eax, [ecx + 1]
mov dword [edx + 8], eax
movzx eax, byte [ecx]
movzx ecx, word [eax*2 + 0x1009dc58]
test cx, cx
je 0x1004d84d
mov eax, ecx
and ecx, 0xe000
and eax, 0x1fff
cmp ecx, 0x2000
jne 0x1004d424
lea ecx, [eax*4 + 0x100ac878]
jmp 0x1004d42e
lea eax, [eax + eax*2]
lea ecx, [eax*4 + 0x100ab698]
test ecx, ecx
je 0x1004d84d
movzx eax, word [ecx]
lea ebx, [eax*8]
sub ebx, eax
add ebx, 0x100aa9b0
mov dword [ebp - 0x20], ebx
movzx eax, byte [ebx]
mov ebx, dword [eax*4 + 0x1009cf70]
jmp 0x1004d45a
mov ecx, dword [ebp - 0x18]
mov eax, ebx
and eax, 0x400000
mov dword [ebp - 0x18], eax
je 0x1004d497
add dword [edx + 0xc], 0xffffffff
js 0x1004d84d
mov eax, dword [edx + 8]
mov dl, byte [eax]
inc eax
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
test ebx, 0x20000000
je 0x1004d48d
cmp byte [ebp - 1], 0x20
jmp 0x1004d491
cmp byte [ebp - 1], 8
jae 0x1004d84d
mov eax, dword [edx + 8]
sub eax, dword [esi + 8]
cmp eax, 0xf
jg 0x1004d84d
cmp dword [ebp - 0x24], 1
jne 0x1004d4bc
test bl, 0x10
je 0x1004d4bc
or dword [esi + 4], 0x10
or word [edi + 0x14], 1
jmp 0x1004d4e4
test bl, 0x20
je 0x1004d4d1
test byte [esi], 0x20
je 0x1004d4d1
or dword [esi + 4], 0x20
or word [edi + 0x14], 2
jmp 0x1004d4e4
test bl, 0x40
je 0x1004d4e4
test byte [esi], 0x40
je 0x1004d4e4
or dword [esi + 4], 0x40
or word [edi + 0x14], 4
mov eax, ebx
and eax, 0x14000
cmp eax, 0x14000
jne 0x1004d515
or dword [esi + 4], 0x4000
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x1004d506
movzx eax, word [ecx + 2]
jmp 0x1004d55a
cmp eax, 1
jne 0x1004d69f
movzx eax, word [ecx + 8]
jmp 0x1004d55a
mov eax, ebx
and eax, 0xc000
cmp eax, 0xc000
jne 0x1004d536
mov ax, word [ecx + 2]
lea edx, [edi + 0x1c]
mov word [edx], ax
or dword [esi + 4], 0x4000
jmp 0x1004d560
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x1004d5ca
mov eax, ebx
and eax, 0x1010008
cmp eax, 0x10000
jne 0x1004d556
or dword [esi + 4], 0x2000
mov ax, word [ecx + 2]
lea edx, [edi + 0x1c]
mov word [edx], ax
test ebx, 0x8000
je 0x1004d577
test dword [esi], 0x2000
je 0x1004d577
or dword [esi + 4], 0x2000
mov eax, ebx
and eax, 0x20000000
mov dword [ebp - 0x28], eax
je 0x1004d5a1
mov al, byte [ecx + 4]
test al, 4
je 0x1004d590
test byte [ebp - 0x1c], 8
jne 0x1004d59a
test al, 8
je 0x1004d5a1
test byte [ebp - 0x1c], 0x10
je 0x1004d5a1
mov ax, word [ecx + 8]
mov word [edx], ax
cmp dword [ebp - 0x18], 0
je 0x1004d6b6
cmp dword [ebp - 0x28], 0
movzx eax, byte [ebp - 1]
movzx ecx, word [ecx + 2]
je 0x1004d6a8
mov ax, word [eax*2 + 0x1009cf30]
jmp 0x1004d6b0
movzx edx, word [edi + 0x14]
cmp eax, 1
jne 0x1004d657
or edx, 0x100
mov word [edi + 0x14], dx
lea edx, [edi + 0x1c]
test ebx, 0x10000
je 0x1004d646
or dword [esi + 4], 0x2000
test ebx, 0x80000
je 0x1004d632
cmp dword [ebp - 0x10], 0xc0
jb 0x1004d61b
movzx eax, word [ecx + 2]
mov esi, edx
movzx eax, ax
movzx eax, ax
mov word [esi], ax
mov esi, dword [ebp - 0x28]
jmp 0x1004d560
movzx eax, word [ecx + 8]
mov esi, edx
movzx eax, ax
movzx eax, ax
mov word [esi], ax
mov esi, dword [ebp - 0x28]
jmp 0x1004d560
movzx eax, word [ecx + 8]
mov esi, edx
movzx eax, ax
mov word [esi], ax
mov esi, dword [ebp - 0x28]
jmp 0x1004d560
movzx eax, word [ecx + 2]
mov esi, edx
mov word [esi], ax
mov esi, dword [ebp - 0x28]
jmp 0x1004d560
or edx, 0x200
mov word [edi + 0x14], dx
test ebx, 0x4010000
je 0x1004d556
test ebx, 0x80000
je 0x1004d682
cmp dword [ebp - 0x10], 0xc0
jae 0x1004d84d
test ebx, 0x4000000
je 0x1004d50f
test byte [ebp - 0x1c], 8
je 0x1004d50f
or dword [esi + 4], 0x2000000
movzx eax, word [ecx + 0xa]
jmp 0x1004d55a
mov ax, word [eax*2 + 0x1009d104]
add ax, cx
mov word [edx], ax
mov eax, dword [ebp - 0x14]
and eax, 3
shl eax, 0xa
or ax, word [edi + 0x14]
movzx ecx, ax
mov word [edi + 0x14], ax
test ebx, ebx
jns 0x1004d6d5
or ecx, 0x40
mov word [edi + 0x14], cx
mov ecx, dword [esi + 4]
xor ecx, dword [esi]
test ecx, 0x2000000
je 0x1004d6f5
mov edx, dword [esi + 0x2c]
cmp edx, 0xffffffff
je 0x1004d6f5
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x1f80
je 0x1004d710
mov edx, dword [esi + 0x34]
cmp edx, 0xffffffff
je 0x1004d710
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test cl, 0x70
je 0x1004d728
mov edx, dword [esi + 0x30]
cmp edx, 0xffffffff
je 0x1004d728
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x2000
je 0x1004d743
mov edx, dword [esi + 0x38]
cmp edx, 0xffffffff
je 0x1004d743
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x4000
je 0x1004d75e
mov ecx, dword [esi + 0x3c]
cmp ecx, 0xffffffff
je 0x1004d75e
movzx eax, word [esi + 0x1c]
bts eax, ecx
mov word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
mov ebx, dword [ebp - 0x20]
mov word [edi + 0x16], ax
mov eax, dword [ebp - 0x30]
or word [edi + 0x14], ax
cmp byte [edi + 0x2f], 0
mov al, byte [ebx + 3]
mov byte [edi + 0x33], al
jne 0x1004d780
mov byte [edi + 0x2f], 0xff
mov al, byte [edi + 0x30]
cmp al, 0xff
je 0x1004d794
movzx eax, al
mov eax, dword [eax*4 + 0x1009cce0]
or dword [edi + 0x18], eax
mov dl, byte [ebx + 4]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov word [edi + 0x34], cx
mov dl, byte [ebx + 5]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov word [edi + 0x36], cx
mov dl, byte [ebx + 6]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov eax, dword [ebp - 8]
mov word [edi + 0x38], cx
mov ecx, dword [ebp - 0x2c]
mov al, byte [eax + 8]
sub al, cl
mov byte [edi + 0x2e], al
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40
push 0
push edi
call fcn.10063ea0
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov byte [edi + 0x30], 0xff
mov byte [edi + 0x2e], 1
mov dword [esi + 4], 0
cmp byte [ecx], 0x9b
jne 0x1004d88a
or byte [edi + 0x33], 8
mov eax, 0x273a
mov word [edi + 0x1c], ax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret