Function at 0x100143d0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], ecx
push ebx
mov esi, dword [edi + 4]
lea eax, [edi + 0x14]
mov dword [ebp - 0x10], eax
lea ecx, [esi + 0x2c]
call fcn.10015760
test eax, eax
je 0x10014424
mov ecx, dword [esi]
test ecx, ecx
je 0x10014424
mov edx, dword [eax]
cmp edx, dword [ecx + 4]
je 0x10014415
jae 0x1001440c
mov ecx, dword [ecx + 0x10]
jmp 0x1001440f
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10014400
jmp 0x10014424
test ecx, ecx
je 0x10014424
lea edx, [edi + 0x14]
test edx, edx
je 0x10014424
mov eax, dword [ecx]
mov dword [edx], eax
mov ecx, dword [ebp - 0x14]
lea esi, [edi + 0x10]
push ebx
mov dword [ebp - 0x18], esi
lea ecx, [ecx + 0x2c]
call fcn.10015760
test eax, eax
je 0x10014466
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x10014466
mov edx, dword [eax]
cmp edx, dword [ecx + 4]
je 0x1001445a
jae 0x10014451
mov ecx, dword [ecx + 0x10]
jmp 0x10014454
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10014445
jmp 0x10014466
test ecx, ecx
je 0x10014466
test esi, esi
je 0x10014466
mov eax, dword [ecx]
mov dword [esi], eax
mov esi, dword [edi]
test esi, esi
je 0x100144a5
push ebx
lea ecx, [esi + 0x2c]
add edi, 0x18
call fcn.10015760
test eax, eax
je 0x100144a5
mov ecx, dword [esi]
test ecx, ecx
je 0x100144a5
mov edx, dword [eax]
cmp edx, dword [ecx + 4]
je 0x10014499
jae 0x10014490
mov ecx, dword [ecx + 0x10]
jmp 0x10014493
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10014484
jmp 0x100144a5
test ecx, ecx
je 0x100144a5
test edi, edi
je 0x100144a5
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x18]
mov edx, dword [eax]
mov ecx, edx
mov edi, dword [ebx]
neg ecx
mov eax, edi
sbb ecx, ecx
and ecx, 0xc
neg eax
sbb eax, eax
and eax, 0x18
lea eax, [eax + 0x10f23b44]
add eax, ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x18], 0
je 0x100144d6
xor esi, esi
jmp 0x100144dd
neg esi
sbb esi, esi
add esi, 2
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x28], eax
cmp eax, 4
ja case.default.0x100144e8
jmp dword [eax*4 + 0x10014b9c]
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x14]
push edi
call fcn.100138c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [edx + 0x45]
mov ecx, dword [ebp - 0x14]
push ebx
push eax
lea eax, [edx + 0x2c]
push eax
call fcn.10013b10
test eax, eax
je 0x1001452d
cmp eax, 1
jne 0x10014b93
mov esi, dword [ebp - 0x10]
mov eax, dword [esi]
test eax, eax
je case.default.0x100144e8
mov ecx, dword [ebx]
mov al, byte [eax + 0x40]
mov byte [ecx + 0x40], al
mov eax, dword [esi]
mov ecx, dword [ebx]
mov al, byte [eax + 0x41]
mov byte [ecx + 0x41], al
mov eax, dword [ebp - 0x10]
xor edi, edi
mov ecx, dword [ebx]
xor esi, esi
mov dword [ebp + 0xc], 0
mov dword [ebp - 8], edi
mov eax, dword [eax]
lea edx, [edi + 4]
mov dword [ebp - 4], esi
mov ebx, dword [eax + 0x20]
add ebx, dword [ecx + 0x20]
je 0x1001458a
xor ecx, ecx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov edx, eax
add esp, 4
mov dword [ebp + 0xc], edx
test edx, edx
je 0x100145ba
mov ecx, 0x20
xor edi, edi
shr ecx, 1
inc edi
cmp ecx, 1
ja 0x10014591
mov eax, 7
mov esi, ebx
cmp edi, eax
cmova edi, eax
and esi, 0x1fffffff
shl edi, 0x1d
or esi, 0x60000000
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0x14
or ecx, 1
mov dword [ebp - 0xc], eax
cmp eax, ecx
je 0x1001472b
mov ebx, edi
mov edx, esi
and ebx, 0x1fffffff
and edx, 0x1fffffff
cmp ebx, edx
jne 0x100146b4
test esi, 0x20000000
je 0x10014704
mov ecx, edi
mov esi, 1
shr ecx, 0x1d
shl esi, cl
lea ecx, [edx + esi]
xor edx, edx
mov eax, ecx
div esi
mov esi, dword [ebp - 4]
sub ecx, edx
mov edx, 4
xor ecx, esi
and ecx, 0x1fffffff
xor esi, ecx
xor ecx, ecx
mov eax, esi
mov dword [ebp - 4], esi
and eax, 0x1fffffff
mov dword [ebp - 0x20], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov edx, eax
add esp, 4
mov dword [ebp - 0x1c], edx
test edx, edx
je 0x10014701
test ebx, ebx
je 0x10014674
mov esi, dword [ebp + 0xc]
mov ecx, edx
sub esi, edx
mov edx, ebx
nop dword [eax + eax]
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x10014660
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
test esi, esi
jns 0x1001468f
mov eax, dword [ebp - 0x20]
sub eax, ebx
shl eax, 2
push eax
lea eax, [edx + ebx*4]
push 0
push eax
call fcn.10425c00
add esp, 0xc
test esi, 0x40000000
je 0x100146a2
push dword [ebp + 0xc]
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 0x1c]
or esi, 0x40000000
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], esi
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
mov dword [edx + ebx*4], ecx
lea ecx, [edi + 1]
xor ecx, edi
and ecx, 0x1fffffff
xor edi, ecx
jmp 0x10014704
cmp byte [ecx + 8], 0
jne case.0x100144e8.3
cmp byte [ecx + 0xa], 0
je case.0x100144e8.1
cmp byte [edx + 0x45], 0
jne case.0x100144e8.3
cmp byte [edx + 0x44], 0
je case.0x100144e8.1
cmp byte [ecx + 9], 0
jne case.0x100144e8.3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0xc]
test al, 3
je 0x1001470f
and eax, 0xfffffffc
mov eax, dword [eax]
jmp 0x10014712
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov ecx, dword [ecx]
add ecx, 0x14
or ecx, 1
cmp eax, ecx
jne 0x100145d3
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0x14
or ecx, 1
mov dword [ebp - 0xc], eax
cmp eax, ecx
je 0x100148d7
mov ebx, edi
lea ecx, [eax + 8]
xor esi, esi
mov dword [ebp - 0x1c], ecx
and ebx, 0x1fffffff
jbe 0x100147b6
mov eax, dword [ebp + 0xc]
push dword [ecx]
mov ecx, dword [eax + esi*4]
lea edi, [eax + esi*4]
call fcn.10012b50
test al, al
jne 0x1001477a
mov ecx, dword [ebp - 0x1c]
inc esi
cmp esi, ebx
jb 0x10014756
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
jmp 0x100147b9
cmp dword [ebp + 0xc], 0
je 0x100148ad
cmp esi, ebx
jae 0x100148ad
inc esi
cmp esi, ebx
jae 0x1001479f
mov eax, dword [edi + 4]
lea edi, [edi + 4]
inc esi
mov dword [edi - 4], eax
cmp esi, ebx
jb 0x10014791
mov edi, dword [ebp - 8]
lea eax, [edi - 1]
xor eax, edi
and eax, 0x1fffffff
xor edi, eax
mov dword [ebp - 8], edi
jmp 0x100148b0
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 4]
mov edx, esi
and edx, 0x1fffffff
cmp ebx, edx
jne 0x10014891
test esi, 0x20000000
je 0x100148b3
mov ecx, edi
mov esi, 1
shr ecx, 0x1d
shl esi, cl
lea ecx, [edx + esi]
xor edx, edx
mov eax, ecx
div esi
mov esi, dword [ebp - 4]
sub ecx, edx
mov edx, 4
xor ecx, esi
and ecx, 0x1fffffff
xor esi, ecx
xor ecx, ecx
mov eax, esi
mov dword [ebp - 4], esi
and eax, 0x1fffffff
mov dword [ebp - 0x24], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
je 0x100148b0
test ebx, ebx
je 0x10014854
mov esi, dword [ebp + 0xc]
mov ecx, edx
sub esi, edx
mov edx, ebx
nop dword [eax]
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x10014840
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
test esi, esi
jns 0x1001486f
mov eax, dword [ebp - 0x24]
sub eax, ebx
shl eax, 2
push eax
lea eax, [edx + ebx*4]
push 0
push eax
call fcn.10425c00
add esp, 0xc
test esi, 0x40000000
je 0x10014882
push dword [ebp + 0xc]
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 0x20]
or esi, 0x40000000
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ecx + ebx*4], eax
lea eax, [edi + 1]
xor eax, edi
and eax, 0x1fffffff
xor edi, eax
mov dword [ebp - 8], edi
jmp 0x100148b0
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test al, 3
je 0x100148be
and eax, 0xfffffffc
mov eax, dword [eax]
jmp 0x100148c1
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov ecx, dword [ecx]
add ecx, 0x14
or ecx, 1
cmp eax, ecx
jne 0x10014744
xor esi, esi
and edi, 0x1fffffff
jbe 0x1001491c
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x1c], 0
push dword [eax + esi*4]
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.10014170
mov ebx, eax
test ebx, ebx
je 0x10014917
cmp ebx, 1
jne 0x10014b78
inc esi
cmp esi, edi
jb 0x100148e1
mov ebx, dword [ebp - 0x18]
xor esi, esi
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x38], 0
mov edx, dword [ebx]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0x3f400000
mov ecx, dword [edx + 4]
mov eax, dword [ebx]
mov edi, dword [edx]
mov dword [ebp - 0x2c], 0x3e000000
mov dword [ebp - 0x48], esi
add ecx, dword [eax + 4]
mov eax, ecx
mov dword [ebp - 0x44], esi
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
imul eax, eax, 0x7c4acdd
shr eax, 0x1b
movzx eax, byte [eax + 0x11225b7c]
mov dword [ebp - 0x3c], eax
test edi, edi
je 0x10014a0a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x100149a9
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x100149a0
test edi, edi
je 0x10014a0a
mov dword [ebp - 0x24], 1
mov eax, dword [edi]
lea ecx, [ebp - 0x50]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10016420
mov eax, dword [edi + 0x14]
test eax, eax
je 0x100149eb
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10014a03
nop dword [eax]
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x100149e0
jmp 0x10014a03
mov eax, dword [edi + 0xc]
test eax, eax
je 0x10014a00
cmp edi, dword [eax + 0x14]
jne 0x10014a00
mov edi, eax
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x100149f2
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x100149b4
mov esi, dword [ebp - 0x48]
mov eax, dword [ebx]
mov edi, dword [eax]
test edi, edi
je 0x10014a8a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10014a29
nop dword [eax]
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x10014a20
test edi, edi
je 0x10014a8a
mov dword [ebp - 0x24], 1
mov eax, dword [edi]
lea ecx, [ebp - 0x50]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10016420
mov eax, dword [edi + 0x14]
test eax, eax
je 0x10014a6b
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10014a83
nop dword [eax]
mov edi, eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x10014a60
jmp 0x10014a83
mov eax, dword [edi + 0xc]
test eax, eax
je 0x10014a80
cmp edi, dword [eax + 0x14]
jne 0x10014a80
mov edi, eax
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x10014a72
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x10014a34
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x4c]
nop dword [eax]
mov ecx, dword [ebp - 0x40]
test edi, edi
je 0x10014aa6
mov eax, 1
shl eax, cl
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
jmp 0x10014aa8
xor eax, eax
cmp esi, eax
je 0x10014ac0
mov eax, dword [esi + 8]
and eax, 0xc0000000
cmp eax, 0x40000000
je 0x10014ac0
add esi, 0xc
jmp 0x10014a90
test edi, edi
je 0x10014ad3
mov eax, 1
shl eax, cl
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
jmp 0x10014ad5
xor eax, eax
cmp esi, eax
je 0x10014b2f
mov eax, dword [ebp + 8]
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
push dword [esi]
push eax
call fcn.10013e40
mov ebx, eax
test ebx, ebx
je 0x10014b04
cmp ebx, 1
jne 0x10014b68
mov ecx, dword [ebp - 0x40]
add esi, 0xc
je 0x10014ac0
mov eax, dword [esi + 8]
shr eax, 0x1e
cmp eax, 1
je 0x10014ac0
mov ecx, dword [ebp - 0x40]
cmp eax, 3
je 0x10014ac0
mov eax, dword [esi + 0x14]
add esi, 0xc
shr eax, 0x1e
cmp eax, 1
jne 0x10014b17
jmp 0x10014ac0
mov ecx, dword [ebp + 8]
cmp byte [ecx + 8], 0
je 0x10014b66
mov eax, dword [ebp - 0x28]
cmp eax, 3
je 0x10014b45
cmp eax, 4
jne 0x10014b66
mov ecx, dword [ecx + 0x10]
cmp dword [ecx + 0x20], 0
jne 0x10014b66
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp dword [eax + 0x20], 0
jbe 0x10014b66
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.100138c0
mov ebx, eax
jmp 0x10014b68
xor ebx, ebx
test edi, edi
je 0x10014b78
lea eax, [edi - 0xc]
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10014b91
test dword [ebp - 4], 0x40000000
je 0x10014b91
push eax
call fcn.10450877
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8