Function at 0x10005f83
Capabilities:
Inspect section memory permissions

Disassembly:
jmp 0x10105a57
push 0x560
mov eax, 0x101e8a44
call fcn.100048bd
mov edi, ecx
mov dword [ebp - 0x51c], edi
call fcn.10003337
push 0x200
lea eax, [ebp - 0x230]
push eax
push dword [edi + 0x18]
call fcn.10001370
add esp, 0xc
test eax, eax
jne 0x101065e8
lea esi, [edi + 0x20]
lea eax, [ebp - 0x230]
mov dword [ebp - 0x520], esi
push eax
mov ecx, esi
call fcn.10003ecc
test al, al
jne 0x10105ab5
xor eax, eax
inc eax
jmp 0x101065e8
mov eax, dword [edi + 0x18]
lea edx, [ebp - 0x540]
push edx
push 2
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x101065e8
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
call fcn.10007c11
mov ebx, dword [ebp - 0x540]
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
cmp dword [ebp - 0x53c], edx
ja 0x10105afb
jb 0x10105aad
cmp ebx, eax
jb 0x10105aad
mov eax, dword [esi + 0x10]
xor ecx, ecx
mov edx, dword [esi + 0x14]
inc ecx
add eax, ecx
mov dword [ebp - 0x508], ecx
mov ecx, dword [esi]
adc edx, 0
call fcn.10007c11
mov ecx, edx
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x514], ecx
cmp dword [ebp - 0x53c], ecx
jb 0x10105bc1
ja 0x10105b3a
cmp ebx, eax
jb 0x10105bc1
mov edx, dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x520]
mov esi, dword [edi + 0x18]
push 0
mov eax, dword [edx + 0x30]
mov edx, dword [edx + 0x34]
mov ecx, dword [ecx]
mov edi, dword [esi]
push 0
call fcn.10007c11
push edx
push eax
push esi
call dword [edi + 0x10]
test eax, eax
jne 0x101065e8
mov edi, dword [ebp - 0x51c]
lea eax, [ebp - 0x430]
mov esi, 0x200
push esi
push eax
push dword [edi + 0x18]
call fcn.10001370
add esp, 0xc
test eax, eax
jne 0x10105bbe
push esi
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.10003a9e
add esp, 0xc
lea esi, [edi + 0x20]
test eax, eax
jne 0x10105bc1
mov eax, dword [ebp - 0x52c]
mov dword [edi + 0x60], eax
mov eax, dword [ebp - 0x514]
mov dword [edi + 0x64], eax
jmp 0x10105bc1
lea esi, [edi + 0x20]
push dword [edi + 0x44]
mov ecx, edi
push dword [edi + 0x40]
call fcn.10005cea
lea ecx, [ebp - 0x498]
call fcn.10009656
and dword [ebp - 4], 0
xor ebx, ebx
mov dword [ebp - 0x528], ebx
lea ecx, [edi + 0x6c]
mov byte [ebp - 4], 1
push 0x1000
call fcn.1000428c
push 0x1000
push dword [edi + 0x6c]
push dword [edi + 0x18]
call fcn.10001370
add esp, 0xc
test eax, eax
jne 0x101065c3
mov edx, dword [edi + 0x6c]
push dword [edx + 0x1c]
call fcn.101052a6
pop ecx
cmp eax, dword [esi]
jl 0x101065c0
mov dword [edi + 0x58], eax
cmp eax, 0xf
ja 0x101065c0
sub eax, dword [esi]
mov ecx, eax
xor eax, eax
push ebx
inc eax
shl eax, cl
lea ecx, [ebp - 0x498]
push ebx
push eax
push dword [esi]
mov dword [ebp - 0x520], eax
push edx
call fcn.10004449
test al, al
je 0x101065c0
cmp dword [ebp - 0x498], 0x454c4946
jne 0x101065c0
lea ecx, [ebp - 0x498]
call fcn.1000780b
cmp dword [ebp - 0x464], ebx
je 0x101065c0
lea eax, [ebp - 0x528]
push eax
push dword [edi + 0x3c]
lea ecx, [ebp - 0x498]
push dword [edi + 0x38]
push dword [edi + 0x24]
push ebx
push dword [edi + 0x18]
call fcn.10005e11
mov ebx, dword [ebp - 0x528]
test eax, eax
jne 0x101065c3
test ebx, ebx
je 0x101065c0
mov eax, dword [ebp - 0x480]
mov edx, dword [esi + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x548], ecx
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x514], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x534], eax
mov dword [ebp - 0x544], eax
mov eax, dword [esi + 0x18]
call fcn.10007c11
mov esi, dword [ebp - 0x514]
mov ecx, dword [ebp - 0x534]
shrd esi, ecx, 4
shr ecx, 4
cmp ecx, edx
jb 0x10105d0e
ja 0x101065c0
cmp esi, eax
ja 0x101065c0
mov ecx, dword [edi + 0x58]
xor eax, eax
inc eax
mov esi, 0x8000
mov edx, eax
shl edx, cl
mov dword [ebp - 0x52c], edx
cmp edx, esi
ja 0x101065c3
mov eax, dword [ebp - 0x514]
mov edx, dword [ebp - 0x534]
call fcn.1000657d
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x54c], edx
test edx, edx
jne 0x101065c0
cmp eax, 0x40000000
ja 0x101065c0
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x10105d7e
mov eax, dword [ecx]
lea edx, [ebp - 0x548]
push edx
lea edx, [ebp - 0x550]
push edx
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x101065c3
push esi
lea ecx, [edi + 0x6c]
call fcn.1000428c
mov esi, dword [ebp - 0x550]
lea eax, [edi + 0xc]
mov ecx, eax
mov dword [ebp - 0x510], eax
call fcn.100065d7
mov ecx, dword [ebp - 0x510]
push esi
call fcn.10001843
xorps xmm0, xmm0
movlpd qword [ebp - 0x540], xmm0
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x10105df1
mov eax, dword [edi + 0x10]
and dword [ebp - 0x568], 0
mov dword [ebp - 0x56c], eax
and eax, 0x3ff
or eax, 0
jne 0x10105df1
mov eax, dword [ecx]
lea edx, [ebp - 0x540]
push edx
lea edx, [ebp - 0x56c]
push edx
push ecx
call dword [eax + 0x10]
test eax, eax
jne 0x101065c3
mov ecx, dword [ebp - 0x548]
mov edx, 0x8000
sub ecx, dword [ebp - 0x540]
mov esi, edx
mov eax, dword [ebp - 0x544]
sbb eax, dword [ebp - 0x53c]
mov dword [ebp - 0x534], esi
test eax, eax
ja 0x10105e28
jb 0x10105e20
cmp ecx, edx
jae 0x10105e28
mov esi, ecx
mov dword [ebp - 0x534], ecx
cmp esi, dword [ebp - 0x52c]
jb 0x10105efa
push esi
push dword [edi + 0x6c]
push ebx
call fcn.10001370
add esp, 0xc
test eax, eax
jne 0x101065c3
add dword [ebp - 0x540], esi
adc dword [ebp - 0x53c], eax
xor edx, edx
mov dword [ebp - 0x514], edx
mov esi, dword [edi + 0x6c]
lea ecx, [ebp - 0x500]
add esi, edx
call fcn.10009656
xor ecx, ecx
mov byte [ebp - 4], 0x10
cmp dword [edi + 0x10], 3
lea eax, [edi + 0x74]
cmovne eax, ecx
lea ecx, [ebp - 0x500]
push eax
push dword [edi + 0x10]
push dword [ebp - 0x520]
push dword [edi + 0x20]
push esi
call fcn.10004449
test al, al
je 0x10105eea
mov ecx, dword [ebp - 0x510]
lea eax, [ebp - 0x500]
push eax
call fcn.100016cc
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 1
call fcn.100058fd
mov ecx, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x534]
mov edx, dword [ebp - 0x514]
sub eax, ecx
add edx, ecx
mov dword [ebp - 0x534], eax
mov dword [ebp - 0x514], edx
cmp eax, ecx
jae 0x10105e5d
jmp 0x10105db4
lea ecx, [ebp - 0x500]
call fcn.100058fd
jmp 0x101065c9
xor esi, esi
cmp dword [edi + 0x10], esi
jbe 0x10105fcb
mov eax, dword [ebp - 0x510]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, ecx
or eax, edx
mov dword [ebp - 0x52c], edx
je 0x10105fc1
movzx eax, dx
test eax, eax
ja 0x101065c9
jb 0x10105f3c
cmp ecx, dword [edi + 0x10]
ja 0x101065c9
mov ebx, dword [ebp - 0x510]
shr edx, 0x10
mov eax, dword [ebx]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x520], ecx
cmp word [ecx + 4], dx
jne 0x10105f63
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
jne 0x10105f63
inc eax
mov dl, al
jmp 0x10105f68
xor eax, eax
xor dl, dl
inc eax
mov ecx, dword [ebp - 0x510]
mov edi, dword [ecx]
mov ecx, dword [ebp - 0x520]
mov ebx, dword [edi + esi*4]
mov edi, dword [ebp - 0x51c]
mov dh, byte [ebx + 6]
mov ebx, dword [ebp - 0x528]
and dh, al
je 0x10105f9b
test byte [ecx + 6], al
je 0x10105f9b
test dl, dl
je 0x101065c9
jmp 0x10105fa6
test dh, dh
jne 0x10105fa4
test byte [ecx + 6], al
je 0x10105fa6
xor dl, dl
test dl, dl
je 0x10105fc1
mov ebx, dword [ebp - 0x510]
mov edx, dword [ebx]
mov eax, dword [edx + esi*4]
push eax
call fcn.10001d89
mov ebx, dword [ebp - 0x528]
inc esi
cmp esi, dword [edi + 0x10]
jb 0x10105f05
xor esi, esi
cmp dword [edi + 0x10], esi
jbe 0x10105fee
mov ebx, dword [ebp - 0x510]
mov eax, dword [ebx]
mov ecx, dword [eax + esi*4]
call fcn.1000780b
inc esi
cmp esi, dword [edi + 0x10]
jb 0x10105fd8
mov ebx, dword [ebp - 0x528]
xor edx, edx
mov dword [ebp - 0x508], edx
cmp dword [edi + 0x10], edx
jbe 0x10106286
mov ebx, dword [ebp - 0x51c]
mov eax, dword [ebp - 0x510]
mov eax, dword [eax]
mov esi, dword [eax + edx*4]
mov dword [ebp - 0x52c], esi
cmp dword [esi], 0x454c4946
jne 0x1010626a
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
jne 0x1010626a
cmp edx, 0x10
jae 0x1010603f
cmp byte [ebx + 0x94], al
je 0x1010626a
xor ecx, ecx
inc ecx
test byte [esi + 6], cl
jne 0x10106054
cmp byte [ebx + 0x95], 0
je 0x1010626a
mov eax, dword [esi + 0x28]
mov dword [esi + 0x10], eax
or eax, 0xffffffff
mov dword [ebp - 0x534], eax
mov al, byte [esi + 6]
shr al, 1
test cl, al
jne 0x101060a1
xor edx, edx
cmp dword [esi + 0x34], edx
jbe 0x1010609b
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x18]
mov eax, dword [edi]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x51c]
cmp dword [eax + 8], 0
je 0x10106095
inc edx
add edi, 8
cmp edx, dword [esi + 0x34]
jb 0x10106076
jmp 0x1010609b
mov dword [ebp - 0x534], edx
mov edx, dword [ebp - 0x508]
cmp dword [esi + 0x28], 0
jne 0x1010612f
mov al, cl
cmp edx, 0x10
jae 0x101060dd
xor al, al
xor edi, edi
mov byte [ebp - 0x501], al
cmp dword [esi + 0x34], edi
jbe 0x101060dd
push edi
mov ecx, esi
call fcn.100020e0
or eax, edx
jne 0x101060db
inc edi
cmp edi, dword [esi + 0x34]
jb 0x101060c1
mov al, byte [ebp - 0x501]
jmp 0x101060dd
mov al, 1
test al, al
je 0x1010612f
lea ecx, [esi + 0x24]
call fcn.10009fa2
mov edi, eax
lea ecx, [ebp - 0x30]
or eax, 0xffffffff
mov edx, str._NONAME__
mov dword [edi], eax
mov dword [edi + 4], eax
mov eax, ecx
mov byte [ebp - 0x30], 0x5b
sub edx, eax
inc ecx
mov al, byte [ecx + edx]
mov byte [ecx], al
test al, al
jne 0x10106103
push ecx
push dword [ebp - 0x508]
call fcn.10006b86
pop ecx
pop ecx
lea eax, [ebp - 0x30]
push eax
lea ecx, [edi + 8]
call fcn.100036a2
and dword [edi + 0x10], 0
mov byte [edi + 0x14], 3
xor eax, eax
mov dword [ebp - 0x514], eax
cmp dword [esi + 0x28], eax
jbe 0x10106264
push eax
mov ecx, esi
call fcn.10001122
test eax, eax
js 0x10106154
dec dword [esi + 0x10]
jmp 0x1010624e
mov eax, dword [ebp - 0x514]
or edi, 0xffffffff
mov cl, byte [esi + 6]
mov edx, dword [ebp - 0x534]
mov dword [ebp - 0x560], eax
mov eax, dword [ebp - 0x508]
shr cl, 1
test edx, edx
mov dword [ebp - 0x564], eax
mov eax, edx
cmovs eax, edi
mov dword [ebp - 0x558], edi
and cl, 1
mov dword [ebp - 0x554], edi
push 0xfffffffffffffffe
pop ecx
cmovne eax, ecx
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x55c], eax
jge 0x101061a8
mov eax, dword [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0x14
lea esi, [ebp - 0x564]
push 5
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.100048b8
mov esi, dword [ebp - 0x52c]
xor edi, edi
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x520], edi
cmp dword [esi + 0x34], edi
jbe 0x1010624e
mov al, byte [esi + 6]
shr al, 1
test al, 1
jne 0x101061e9
cmp edi, dword [ebp - 0x534]
je 0x10106242
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edi*8]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ecx*4]
add eax, 4
cmp dword [ebp - 0x508], 8
jne 0x10106212
push str._Bad
push eax
call fcn.10002eb4
pop ecx
pop ecx
test al, al
jne 0x10106242
sub esp, 0x14
mov dword [ebp - 0x55c], edi
lea esi, [ebp - 0x564]
mov byte [ebx + 0xbc], 1
push 5
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.100048b8
mov esi, dword [ebp - 0x52c]
mov edi, dword [ebp - 0x520]
inc edi
mov dword [ebp - 0x520], edi
cmp edi, dword [esi + 0x34]
jb 0x101061d8
mov eax, dword [ebp - 0x514]
inc eax
mov dword [ebp - 0x514], eax
cmp eax, dword [esi + 0x28]
jb 0x10106140
mov edx, dword [ebp - 0x508]
inc edx
mov dword [ebp - 0x508], edx
cmp edx, dword [ebx + 0x10]
jb 0x10106005
mov ebx, dword [ebp - 0x528]
mov edi, dword [ebp - 0x51c]
cmp dword [edi + 0x10], 9
jbe 0x101063c9
mov eax, dword [ebp - 0x510]
xor esi, esi
mov eax, dword [eax]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x520], edx
cmp dword [edx + 0x34], esi
jbe 0x101063c9
mov eax, dword [edx + 0x30]
push str._SDS
mov ecx, dword [eax + esi*8]
mov eax, dword [edx + 0x18]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x52c], eax
add eax, 4
push eax
call fcn.10002eb4
pop ecx
pop ecx
test al, al
jne 0x101062e3
mov edx, dword [ebp - 0x520]
inc esi
cmp esi, dword [edx + 0x34]
jb 0x101062ac
jmp 0x101063c9
and dword [ebp - 0x514], 0
mov ecx, dword [ebp - 0x520]
lea eax, [ebp - 0x514]
push eax
push dword [edi + 0x3c]
mov byte [ebp - 4], 0x14
push dword [edi + 0x38]
push dword [edi + 0x24]
push esi
push dword [edi + 0x18]
call fcn.10005e11
mov esi, eax
test esi, esi
je 0x10106332
mov ecx, dword [ebp - 0x514]
mov byte [ebp - 4], 0x15
test ecx, ecx
je 0x10106327
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x508], esi
jmp 0x101065c9
mov esi, dword [ebp - 0x514]
test esi, esi
je 0x101063b7
mov eax, dword [ebp - 0x52c]
cmp byte [eax + 0x14], 0
je 0x10106350
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
jmp 0x10106355
mov ecx, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0x520], ecx
test eax, eax
ja 0x101063b7
jb 0x10106369
cmp ecx, 0x20000000
jae 0x101063b7
lea eax, [ecx + 1]
test eax, 0x40000
je 0x101063b7
lea eax, [ecx - 0x40000]
push eax
lea ecx, [edi + 0x80]
call fcn.1000428c
mov eax, dword [ebp - 0x520]
add eax, 0xfffc0000
push eax
push dword [edi + 0x80]
push esi
call fcn.10001370
mov edi, dword [ebp - 0x51c]
add esp, 0xc
test eax, eax
jne 0x101063b7
mov ecx, edi
call fcn.10002522
mov byte [ebp - 4], 0x17
jmp 0x101063bf
mov byte [ebp - 4], 0x18
test esi, esi
je 0x101063c5
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 1
xor edx, edx
mov byte [ebp - 0x509], 0
mov byte [ebp - 0x501], 0
mov dword [ebp - 0x514], edx
cmp dword [edi + 4], edx
jbe 0x101064c9
xor ebx, ebx
xor esi, esi
inc ebx
mov ecx, dword [edi]
mov edi, dword [ebp - 0x510]
mov dword [ebp - 0x508], ecx
mov eax, dword [ecx + esi]
mov edx, dword [edi]
mov ecx, dword [ecx + esi + 4]
mov edi, dword [ebp - 0x51c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x514]
mov dword [ebp - 0x52c], eax
mov eax, dword [eax + 0x24]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x534], eax
movzx eax, ax
cmp ecx, 5
jne 0x10106449
test eax, eax
jne 0x10106449
mov eax, dword [ebp - 0x508]
or dword [eax + esi + 0xc], 0xffffffff
jmp 0x101064b0
push eax
push ecx
mov ecx, edi
call fcn.1000a3a3
mov edx, dword [ebp - 0x508]
test eax, eax
js 0x10106488
imul ecx, eax, 0x14
mov ecx, dword [ecx + edx]
mov edx, dword [ebp - 0x510]
mov edi, dword [edx]
mov edx, dword [ebp - 0x508]
mov ecx, dword [edi + ecx*4]
mov edi, dword [ebp - 0x520]
shr edi, 0x10
cmp word [ecx + 4], di
mov edi, dword [ebp - 0x51c]
je 0x101064a6
mov eax, dword [ebp - 0x52c]
test byte [eax + 6], bl
je 0x1010649d
mov byte [ebp - 0x509], bl
push 0xfffffffffffffffe
jmp 0x101064a5
mov byte [ebp - 0x501], bl
push 0xfffffffffffffffd
pop eax
mov dword [edx + esi + 0xc], eax
mov edx, dword [ebp - 0x514]
inc edx
add esi, 0x14
mov dword [ebp - 0x514], edx
cmp edx, dword [edi + 4]
jb 0x101063ed
mov ebx, dword [ebp - 0x528]
cmp byte [edi + 0x94], 0
mov esi, dword [edi + 4]
je 0x1010651c
push dword [0x10253410]
mov dword [edi + 0xb0], esi
lea ecx, [ebp - 0x524]
inc esi
call fcn.100016fe
lea eax, [ebp - 0x524]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [edi + 0x98]
call fcn.100046b0
cmp dword [ebp - 0x524], 0
mov byte [ebp - 4], 1
je 0x1010651c
push dword [ebp - 0x524]
call fcn.10009e99
pop ecx
cmp byte [ebp - 0x509], 0
je 0x1010656c
push dword [0x10253414]
mov dword [edi + 0xb4], esi
lea ecx, [ebp - 0x530]
inc esi
call fcn.100016fe
lea eax, [ebp - 0x530]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [edi + 0x98]
call fcn.100046b0
cmp dword [ebp - 0x530], 0
mov byte [ebp - 4], 1
je 0x1010656c
push dword [ebp - 0x530]
call fcn.10009e99
pop ecx
cmp byte [ebp - 0x501], 0
je 0x101065b7
push dword [0x10253418]
lea ecx, [ebp - 0x518]
mov dword [edi + 0xb8], esi
call fcn.100016fe
lea eax, [ebp - 0x518]
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [edi + 0x98]
call fcn.100046b0
cmp dword [ebp - 0x518], 0
je 0x101065b7
push dword [ebp - 0x518]
call fcn.10009e99
pop ecx
and dword [ebp - 0x508], 0
jmp 0x101065c9
xor eax, eax
inc eax
mov dword [ebp - 0x508], eax
mov byte [ebp - 4], 0x1d
test ebx, ebx
je 0x101065d7
mov ecx, dword [ebx]
push ebx
call dword [ecx + 8]
lea ecx, [ebp - 0x498]
call fcn.100058fd
mov eax, dword [ebp - 0x508]
call fcn.100029e6
ret