Function at 0x10169833
Capabilities:
Inspect section memory permissions

Disassembly:
push 0x214
mov eax, 0x1027182c
call fcn.10237635
mov byte [ebp - 0x131], dl
mov ebx, ecx
mov dword [ebp - 0x16c], ebx
push 1
push ecx
push 0x64
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x130]
call fcn.100b5e5f
mov dword [ebp - 4], 1
lea eax, [ebp - 0x220]
push 0x50
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov byte [ebp - 0x21f], 1
mov byte [ebp - 4], 2
lea eax, [ebp - 0x20]
test byte [0x102ba1e0], 0x20
jne 0x101698a7
mov edx, 0x1008a638
mov ecx, 0x1016
call fcn.100b5eb0
mov ecx, dword [0x102c7ff0]
cmp dword [ecx + 0x98], 0
jne 0x101698c2
mov edx, 0x1008a680
mov ecx, 0x1011
jmp 0x101698a2
push 0x2f
mov edx, ebx
pop esi
and edx, 0x40000000
push 0x20
mov dword [ebp - 0x198], edx
pop edx
je 0x101698ea
push 0x4f
pop eax
mov word [ebp - 0x1e], ax
lea eax, [ebp - 0x1a]
mov word [ebp - 0x20], si
mov word [ebp - 0x1c], dx
mov edx, ebx
and edx, 0x80000000
mov dword [ebp - 0x154], edx
je 0x1016990e
push 0x69
pop edx
mov word [eax], si
mov word [eax + 2], dx
push 0x20
pop edx
mov word [eax + 4], dx
add eax, 6
push dword [0x102ba1f4]
xor edx, edx
push dword [0x102ba1f0]
mov word [eax], dx
mov edx, dword [0x102c7ff8]
call fcn.100beaa0
mov ecx, dword [0x102c7ff8]
mov ebx, eax
mov eax, edx
mov dword [ebp - 0x148], ebx
push 1
push eax
push ebx
mov dword [ebp - 0x144], eax
call fcn.1017f835
test eax, eax
je 0x1016997c
mov edi, dword [0x102c7ff0]
lea ecx, [ebp - 0x148]
push ecx
push dword [ebp - 0x144]
mov esi, dword [edi]
push ebx
push eax
push dword [0x102c7ff8]
mov esi, dword [esi + 0x18c]
mov ecx, esi
call dword [0x102dc578]
mov ecx, edi
call esi
push 0x40
xor eax, eax
mov word [ebp - 0x188], pe_nt_image_headers32
pop esi
mov dword [ebp - 0x184], esi
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], eax
mov byte [ebp - 4], 4
xor edx, edx
push 8
pop eax
mov word [ebp - 0x38], ax
lea ecx, [ebp - 0x38]
xor eax, eax
mov word [ebp - 0x36], ax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x2c], eax
call fcn.100b435e
mov ebx, dword [ebp - 0x16c]
lea eax, [ebp - 0x1a0]
push eax
push ecx
lea eax, [ebp - 0x194]
push eax
push ebx
lea eax, [ebp - 0x38]
push eax
push ecx
call fcn.1016ca00
mov ecx, eax
test ecx, ecx
jns 0x10169a2a
call fcn.10210755
push eax
push 0x1008a6d0
call fcn.100d3aab
pop ecx
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x194]
call fcn.100b5ef7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x220]
call fcn.100d4e50
jmp 0x1016a33b
mov eax, dword [ebp - 0x18c]
xor edx, edx
push 0x38
pop edi
div edi
mov edi, eax
mov dword [ebp - 0x168], edi
test edi, edi
jne 0x10169a71
push 0x1008aa1c
call fcn.100d3aab
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x194]
call fcn.100b5ef7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x220]
call fcn.100d4e50
jmp 0x1016a33b
test ecx, ecx
je 0x10169a80
push 0x1008a710
call fcn.100d3aca
pop ecx
xor eax, eax
mov dword [ebp - 0x1a8], esi
mov esi, eax
mov word [ebp - 0x1ac], pe_nt_image_headers32
mov dword [ebp - 0x1b8], esi
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov byte [ebp - 4], 0xc
cmp edi, 0xaaaaaaa
ja 0x10169acf
imul eax, edi, 0x18
push ecx
lea ecx, [ebp - 0x1b8]
push eax
call fcn.100b47bf
mov esi, dword [ebp - 0x1b8]
test eax, eax
jne 0x10169ad4
mov eax, esi
jmp 0x10169ae0
mov eax, 0x80070216
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x164]
test eax, eax
jne 0x10169af0
xor edx, edx
mov ecx, 0x1022
call fcn.101f3103
and dword [ebp - 0x158], 0
xor ecx, ecx
mov dword [ebp - 0x150], ecx
test edi, edi
je 0x10169ccc
mov eax, dword [ebp - 0x190]
xor edx, edx
push 0x38
pop edi
div edi
and ebx, 0x20000000
mov edx, eax
mov dword [ebp - 0x1a4], ebx
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x164], edx
mov dword [ebp - 0x15c], eax
cmp ecx, edx
push 7
sbb edi, edi
and edi, eax
pop ecx
mov dword [ebp - 0x160], edi
call fcn.101f2ce4
test eax, eax
je 0x10169b51
call fcn.101f2d45
test ebx, ebx
je 0x10169b7b
xor ecx, ecx
xor edx, edx
mov ebx, dword [edi]
mov dword [ebp - 0x180], ebx
mov eax, dword [edi + 4]
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x174], edx
mov dword [ebp - 0x17c], eax
jmp 0x10169c11
and dword [ebp - 0x128], 0
cmp dword [ebp - 0x12c], 2
jb 0x10169b9d
mov eax, dword [ebp - 0x130]
xor ecx, ecx
mov word [eax], cx
add dword [ebp - 0x128], 2
lea eax, [ebp - 0x14c]
xor ecx, ecx
push eax
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x178]
push eax
lea eax, [ebp - 0x130]
push eax
mov eax, dword [0x102c7ff0]
push 0
cmp byte [eax + 0x28], cl
setne cl
lea ecx, [ecx*4 + 4]
push ecx
push ecx
push ecx
push 0xffffffffffffffff
push dword [edi + 4]
lea ecx, [ebp - 0x220]
push dword [edi]
push dword [0x102c7ff8]
call fcn.101ef3ad
test eax, eax
je 0x10169bf9
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x10169b59
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x180]
and dword [ebp - 0x14c], 0
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x10169c61
mov edi, dword [ebp - 0x138]
cmp dword [eax + 4], edx
ja 0x10169c5b
jb 0x10169c39
cmp dword [eax], ecx
ja 0x10169c5b
cmp dword [eax], ecx
jne 0x10169c4e
cmp dword [eax + 4], edx
jne 0x10169c4e
cmp dword [eax + 0xc], edi
ja 0x10169c5b
jb 0x10169c4e
cmp dword [eax + 8], ebx
ja 0x10169c5b
mov dword [ebp - 0x14c], eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x10169c2e
mov edi, dword [ebp - 0x160]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x14c]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x138]
mov dword [esi + 0x10], edi
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
test eax, eax
je 0x10169c87
mov dword [eax + 0x14], esi
jmp 0x10169c8d
mov dword [ebp - 0x158], esi
mov ecx, dword [ebp - 0x150]
add esi, 0x18
mov eax, dword [ebp - 0x15c]
inc ecx
mov ebx, dword [ebp - 0x1a4]
push 0x38
pop edx
add eax, edx
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x15c], eax
cmp ecx, dword [ebp - 0x168]
jb 0x10169b34
mov ebx, dword [ebp - 0x16c]
xor edi, edi
mov eax, ebx
mov dword [ebp - 0x150], edi
and eax, 0x10
je 0x10169cf0
push 5
pop edi
mov dword [ebp - 0x150], edi
test bl, 0x20
je 0x10169d00
mov edi, 0x105
jmp 0x10169cfa
test bl, 0x20
je 0x10169d00
mov edi, 0x10f
mov dword [ebp - 0x150], edi
mov esi, ebx
mov byte [ebp - 0x139], 0
and esi, 2
mov dword [ebp - 0x138], esi
je 0x10169dd9
cmp byte [ebp - 0x131], 0
je 0x10169d67
cmp dword [ebp - 0x198], 0
je 0x10169d43
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push 0x1008aa50
call fcn.100d3bb6
add esp, 0xc
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push 0x1008aaa4
call fcn.100d3bb6
jmp 0x10169da7
test eax, eax
je 0x10169d85
push 0
push dword [ebp - 0x144]
mov edx, edi
or ecx, 0xffffffff
push dword [ebp - 0x148]
call fcn.101f4199
jmp 0x10169daa
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push 0x1008aac4
call fcn.100d3a8b
add esp, 0x14
cmp dword [ebp - 0x154], 0
je 0x10169dcc
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
push 0x1008aad8
call fcn.100d3a67
add esp, 0xc
push 0x100597b0
call fcn.100d3a67
pop ecx
jmp 0x10169dfb
cmp dword [ebp - 0x154], 0
je 0x10169dfb
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
push 0x1008ab04
call fcn.100d3a67
add esp, 0xc
mov eax, dword [ebp - 0x158]
mov ebx, eax
test eax, eax
jmp 0x1016a2ea
push 7
pop ecx
call fcn.101f2ce4
test eax, eax
je 0x10169e1b
call fcn.101f2d45
test esi, esi
je 0x1016a021
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
je 0x1016a2df
push 0x10068064
mov byte [ebp - 0x139], 1
call fcn.100d3a67
mov eax, dword [ebx + 0x10]
pop ecx
push 0
or ecx, 0xffffffff
push dword [eax + 0x14]
push dword [eax + 0x10]
test edi, edi
je 0x10169e6a
mov edx, edi
call fcn.101f4199
push 0x100597b0
call fcn.100d3a67
pop ecx
jmp 0x10169e72
push 0xf
pop edx
call fcn.101f4199
push 0x1005d96c
call fcn.100d3a67
cmp byte [ebp - 0x131], 0
pop ecx
je 0x10169ea5
cmp dword [ebp - 0x198], 0
je 0x10169ea5
mov eax, dword [ebx + 0x10]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x1008aa50
call fcn.100d3bb6
add esp, 0xc
mov esi, dword [ebx + 0x10]
mov ecx, dword [esi + 0x18]
mov eax, ecx
mov edx, dword [esi + 0x1c]
and eax, edx
cmp eax, 0xffffffff
je 0x10169f3e
cmp byte [ebp - 0x131], 0
je 0x10169ee0
push edx
push ecx
push edx
push ecx
push edx
push ecx
lea eax, [ebp - 0x20]
push eax
push 0x1008ab40
call fcn.100d3bb6
add esp, 0x20
jmp 0x1016a2d9
test edi, edi
je 0x10169f28
push 0
push edx
push ecx
mov edx, edi
or ecx, 0xffffffff
call fcn.101f4199
test al, al
jne 0x10169f18
mov edx, dword [ebx + 0x10]
push dword [edx + 0x18]
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
push 0x20
pop ecx
call fcn.1026abd0
push eax
push 0x1008abb0
call fcn.100d3a8b
add esp, 0xc
push 0x100597b0
call fcn.100d3a67
pop ecx
jmp 0x1016a2d9
push edx
push ecx
push edx
push ecx
push 0x1008abc4
call fcn.100d3a8b
add esp, 0x14
jmp 0x1016a2d9
test edi, edi
je 0x10169f49
push 0x1008abe8
jmp 0x10169f1d
push 8
pop eax
mov word [ebp - 0x38], ax
lea ecx, [ebp - 0x38]
xor eax, eax
xor edx, edx
mov word [ebp - 0x36], ax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x2c], eax
call fcn.100b435e
and dword [ebp - 0x128], 0
cmp dword [ebp - 0x12c], 2
jb 0x10169f8e
mov eax, dword [ebp - 0x130]
xor ecx, ecx
mov word [eax], cx
add dword [ebp - 0x128], 2
mov edi, dword [0x102c7ff0]
lea eax, [ebp - 0x130]
push eax
push 0x6000000
lea eax, [ebp - 0x38]
mov esi, dword [edi]
push eax
push 0
push dword [0x102c7ff8]
mov esi, dword [esi + 0x134]
mov ecx, esi
call dword [0x102dc578]
mov ecx, edi
call esi
push 0x1008ac10
call fcn.100d3a67
cmp byte [ebp - 0x131], 0
pop ecx
je 0x10169fdf
push 0x1008a9f4
call fcn.100d3bb6
pop ecx
mov eax, dword [ebp - 0x128]
cmp eax, 4
jb 0x10169fef
shr eax, 1
dec eax
jmp 0x10169ff1
xor eax, eax
push 1
push eax
push dword [ebp - 0x130]
xor edx, edx
push 2
inc edx
pop ecx
call fcn.100d35a9
cmp byte [ebp - 0x131], 0
je 0x1016a2d9
push 0x1008ac38
call fcn.100d3bb6
jmp 0x10169f22
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 8]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0x154], eax
cmp ebx, dword [ebp - 0x158]
je 0x1016a04e
push 0x100597b0
call fcn.100d3a67
pop ecx
cmp byte [ebp - 0x131], 0
je 0x1016a072
push dword [ebx + 0x10]
lea ecx, [ebp - 0x194]
call fcn.1016ace3
push eax
push 0x1008ac44
call fcn.100d3bb6
pop ecx
pop ecx
push 0
push edi
push esi
push 7
pop edx
or ecx, 0xffffffff
call fcn.101f4199
cmp byte [ebp - 0x131], 0
je 0x1016a095
push 0x1008ac6c
call fcn.100d3bb6
pop ecx
push 8
pop eax
mov word [ebp - 0x38], ax
lea ecx, [ebp - 0x38]
xor eax, eax
mov dword [ebp - 0x30], esi
xor edx, edx
mov word [ebp - 0x36], ax
mov dword [ebp - 0x2c], edi
call fcn.100b435e
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x154]
ja 0x1016a2d9
jb 0x1016a0d2
mov eax, dword [ebp - 0x15c]
cmp dword [ebp - 0x28], eax
jae 0x1016a2d9
movzx ebx, byte [ebp - 0x131]
neg ebx
sbb ebx, ebx
and ebx, 0x8000000
mov dword [ebp - 0x14c], ebx
push 7
pop ecx
call fcn.101f2ce4
test eax, eax
je 0x1016a0fd
call fcn.101f2d45
mov esi, dword [ebp - 0x24]
test byte [0x102a5b74], 0x10
je 0x1016a13e
mov ecx, dword [0x102c7ff8]
lea eax, [ebp - 0x164]
push 0
push eax
lea eax, [ebp - 0x1d0]
or edx, 0xffffffff
push eax
push esi
push dword [ebp - 0x28]
call fcn.101c851d
test al, al
je 0x1016a13e
push dword [ebp - 0x1c8]
push 0x1008ac7c
call fcn.100d3a67
pop ecx
pop ecx
and dword [ebp - 0x128], 0
cmp dword [ebp - 0x12c], 2
jb 0x1016a160
mov eax, dword [ebp - 0x130]
xor ecx, ecx
mov word [eax], cx
add dword [ebp - 0x128], 2
mov edi, dword [0x102c7ff0]
lea eax, [ebp - 0x130]
push eax
push ebx
lea eax, [ebp - 0x38]
mov esi, dword [edi]
push eax
push 0
push dword [0x102c7ff8]
mov esi, dword [esi + 0x134]
mov ecx, esi
call dword [0x102dc578]
mov ecx, edi
call esi
cmp byte [ebp - 0x131], 0
mov edx, dword [ebp - 0x128]
je 0x1016a1cd
cmp edx, 4
jb 0x1016a1b3
mov eax, dword [ebp - 0x130]
mov ecx, edx
shr ecx, 1
movzx eax, word [eax + ecx*2 - 4]
jmp 0x1016a1b5
xor eax, eax
cmp ax, 0xa
jne 0x1016a1cd
push ecx
lea ecx, [ebp - 0x130]
call fcn.100b59de
mov edx, dword [ebp - 0x128]
cmp edx, 4
jb 0x1016a1d9
mov ecx, edx
shr ecx, 1
dec ecx
jmp 0x1016a1db
xor ecx, ecx
cmp edx, 2
push 1
sbb eax, eax
xor edx, edx
not eax
inc edx
and eax, dword [ebp - 0x130]
push ecx
push eax
push 2
pop ecx
call fcn.100d35a9
cmp byte [ebp - 0x131], 0
je 0x1016a2b3
mov edi, dword [0x102c7ff0]
lea ecx, [ebp - 0x50]
push ecx
push dword [ebp - 0x16c]
mov eax, dword [edi]
push dword [0x102c7ff8]
mov esi, dword [eax + 0x12c]
mov ecx, esi
call dword [0x102dc578]
mov ecx, edi
call esi
test eax, eax
jne 0x1016a2a8
mov ecx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 2
and eax, 1
je 0x1016a247
and cl, 3
cmp cl, 1
jbe 0x1016a2a8
test eax, eax
je 0x1016a253
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
jmp 0x1016a259
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
xor ecx, ecx
cmp dword [ebp - 0x168], ecx
jbe 0x1016a2a2
mov eax, dword [ebp - 0x190]
xor edx, edx
push 0x38
pop esi
div esi
mov esi, dword [ebp - 0x194]
cmp ecx, eax
sbb edx, edx
and edx, esi
cmp ebx, dword [edx]
jne 0x1016a285
cmp edi, dword [edx + 4]
je 0x1016a295
push 0x38
pop edx
inc ecx
add esi, edx
cmp ecx, dword [ebp - 0x168]
jb 0x1016a276
jmp 0x1016a2a2
push ecx
push 0x1008ac88
call fcn.100d3bb6
pop ecx
pop ecx
mov ebx, dword [ebp - 0x14c]
push 0x100597b0
call fcn.100d3bb6
pop ecx
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x154]
jb 0x1016a0e9
ja 0x1016a2d3
mov eax, dword [ebp - 0x15c]
cmp dword [ebp - 0x28], eax
jb 0x1016a0e9
mov ebx, dword [ebp - 0x160]
mov esi, dword [ebp - 0x138]
mov ebx, dword [ebx + 0x14]
test ebx, ebx
mov edi, dword [ebp - 0x150]
mov dword [ebp - 0x160], ebx
jne 0x10169e0a
test esi, esi
je 0x1016a30e
cmp byte [ebp - 0x139], 0
jne 0x1016a30e
push 0x1008acd4
call fcn.100d3a67
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1b8]
call fcn.100b5ef7
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x194]
call fcn.100b5ef7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x220]
call fcn.100d4e50
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.100b5ef7
call fcn.102375e9
ret