Function at 0x1005ef20
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], eax
xor edx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ecx]
xor ebx, ebx
push edi
xor edi, edi
mov dword [eax + 0x1c], 0xffffffff
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], 0xa7
mov dword [esp + 0x20], edx
test eax, eax
je 0x1005f01e
test byte [ecx + 0x18], 6
je 0x1005ef92
mov dword [esp + 0x30], edx
jmp 0x1005f01e
mov ecx, dword [esi + 0x14]
xor ebx, ebx
mov dword [esp + 0x3c], ecx
test ecx, ecx
jle 0x1005efe4
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x30]
mov edx, dword [eax]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x1005f11e
test eax, eax
jne 0x1005f130
mov edx, dword [esp + 0x24]
mov eax, ebx
add eax, eax
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + eax*8 + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
xor edi, edi
cmp ebx, ecx
jne 0x1005f01c
mov edx, str.main
mov esi, eax
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x1005f153
test ecx, ecx
jne 0x1005f169
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
xor ebx, ebx
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
test eax, eax
je 0x1005f509
xor ecx, ecx
lea esi, [eax + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
cmp dword [eax], ecx
jle 0x1005f4d6
nop dword [eax]
test dword [esi + 0x28], 0x2000
mov eax, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
je 0x1005f1e8
mov eax, dword [esi + 0x14]
xor ebx, ebx
xor edi, edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x50], eax
cmp dword [eax], ebx
jle 0x1005f1db
lea esi, [eax + 0x14]
nop dword [eax]
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push eax
push dword [esp + 0x34]
lea ecx, [esi - 0xc]
push edx
mov edx, dword [ebp + 0xc]
call fcn.1005eb20
add esp, 0xc
test eax, eax
je 0x1005f1b9
cmp dword [esp + 0x44], 0
jne 0x1005f197
cmp dword [esp + 0x18], 0
jle 0x1005f110
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x1005f0f5
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
call fcn.1007be70
test eax, eax
js 0x1005f0f5
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x1005f1b9
test al, 8
jne 0x1005f16f
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1005f108
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.10064650
mov dword [esp + 0x20], 0
inc dword [esp + 0x18]
mov ebx, 1
jmp 0x1005f19e
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f136
inc edx
jmp 0x1005efb0
mov eax, dword [esp + 0x44]
inc ebx
mov ecx, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp ebx, ecx
jl 0x1005efa8
jmp 0x1005efde
movzx eax, byte [eax + 0x1013f9f0]
movzx ecx, byte [ecx + 0x1013f9f0]
sub ecx, eax
jne 0x1005f01c
inc edx
jmp 0x1005eff1
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 0x20]
push eax
push edx
lea edx, [esp + 0x28]
call fcn.1005ecb0
add esp, 8
mov ebx, 1
inc dword [esp + 0x18]
jmp 0x1005f19e
cmp dword [esp + 0x18], 0
jg 0x1005f1b9
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov word [eax + 0x20], di
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x1005f1cc
mov eax, dword [esp + 0x50]
inc edi
mov edx, dword [ebp + 8]
add esi, 0x14
cmp edi, dword [eax]
jl 0x1005f080
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
test ebx, ebx
jne 0x1005f1df
test edx, edx
jne 0x1005f1f2
mov ebx, dword [esp + 0x18]
jmp 0x1005f4ba
test edx, edx
je 0x1005f317
jmp 0x1005f1f6
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x1005f242
mov edi, dword [esp + 0x38]
cmp dword [eax + 0x3c], edi
jne 0x1005f1df
test edi, edi
jne 0x1005f242
mov ecx, 0x10147650
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005f232
test dl, dl
je 0x1005f22e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005f232
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005f212
xor eax, eax
jmp 0x1005f237
sbb eax, eax
or eax, 1
mov edx, dword [ebp + 8]
test eax, eax
jne 0x1005f575
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x1005f27f
mov edi, ebx
sub edi, dword [ebp + 8]
nop
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x1005f266
test eax, eax
je 0x1005f2de
inc edx
jmp 0x1005f250
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f4ab
inc edx
jmp 0x1005f250
mov edi, dword [esp + 0x3c]
mov edi, dword [edi]
sub edi, dword [ebp + 8]
nop dword [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x1005f2a2
test eax, eax
je 0x1005f2de
inc edx
jmp 0x1005f290
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f2b7
inc edx
jmp 0x1005f290
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x14], 1
jne 0x1005f4ab
push dword [esp + 0x38]
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.1005ed90
add esp, 4
test eax, eax
je 0x1005f4ab
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xdc], 2
jb 0x1005f313
test ebx, ebx
je 0x1005f313
mov eax, dword [eax + 0x118]
test eax, eax
je 0x1005f313
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
nop
cmp dword [eax], ecx
je 0x1005f30d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1005f300
jmp 0x1005f313
mov dword [eax], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
call fcn.10029720
mov edi, dword [esp + 0x3c]
mov dl, al
xor eax, eax
mov byte [esp + 0xf], dl
mov dword [esp + 0x44], eax
movsx ecx, word [edi + 0x22]
mov ebx, dword [edi + 4]
mov dword [esp + 0x50], ecx
test ecx, ecx
jle 0x1005f3fa
cmp byte [ebx + 0xa], dl
jne 0x1005f3e6
mov edi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x1005f3be
test eax, eax
jne 0x1005f3d0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test edi, edi
jle 0x1005f463
test dword [esi + 0x28], 0x400
je 0x1005f448
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x30]
call fcn.1007be70
test eax, eax
js 0x1005f448
mov al, byte [esi + 0x24]
test al, 0x10
je 0x1005f3da
test al, 8
jne 0x1005f429
mov eax, dword [esp + 0x20]
xor edi, edi
test eax, eax
je 0x1005f3b5
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.10064650
mov dword [esp + 0x20], edi
jmp 0x1005f463
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f3d6
inc edx
jmp 0x1005f352
mov esi, dword [esp + 0x1c]
mov dl, byte [esp + 0xf]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
inc eax
add ebx, 0x10
mov dword [esp + 0x44], eax
cmp eax, ecx
jl 0x1005f342
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x1005f4b3
test dword [edi + 0x1c], 0x200
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
jne 0x1005f4ba
inc dword [esp + 0x34]
mov edi, esi
mov dword [esp + 0x10], edi
jmp 0x1005f4be
mov ebx, dword [ebp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movzx eax, word [ebx + 0x20]
push eax
push edx
lea edx, [esp + 0x28]
call fcn.1005ecb0
add esp, 8
jmp 0x1005f466
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1005f45b
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.10064650
mov dword [esp + 0x20], 0
mov ebx, dword [ebp + 0x14]
mov edx, dword [esp + 0x44]
inc edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
movsx eax, word [edi + 0x20]
cmp edx, eax
jne 0x1005f484
or eax, 0xffffffff
jmp 0x1005f487
movzx eax, dx
mov word [ebx + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x1005f3fa
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [edx + edx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x1005f3fa
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
inc ecx
add esi, 0x48
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
cmp ecx, dword [eax]
jl 0x1005f050
test edi, edi
je 0x1005f4fd
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x2c], eax
test byte [edi + 0x24], 0x48
je 0x1005f4f6
or dword [ecx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x1005f86a
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
jne 0x1005f738
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov eax, dword [ecx + 0x84]
test eax, eax
je 0x1005f619
cmp byte [ecx + 0x9f], 0
mov bl, byte [ecx + 0x9e]
je 0x1005f597
test dword [esi + 0x18], 0x400
je 0x1005f619
test edx, edx
je 0x1005f562
mov edi, dword [eax]
sub edi, dword [ebp + 8]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x1005f57e
test eax, eax
jne 0x1005f594
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp bl, 0x80
setne al
mov dword [ecx + 0x1c], eax
jmp 0x1005f60b
mov ebx, dword [esp + 0x18]
jmp 0x1005f4b6
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f619
inc edx
jmp 0x1005f553
cmp bl, 0x80
je 0x1005f5e8
test edx, edx
je 0x1005f5e3
mov edi, dword [ebp + 8]
mov edx, 0x10147654
sub edi, edx
nop word [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x1005f5cb
test eax, eax
jne 0x1005f5dd
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], 1
jmp 0x1005f60b
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f5e0
inc edx
jmp 0x1005f5b0
mov edx, dword [ebp + 8]
cmp bl, 0x7f
je 0x1005f619
test edx, edx
je 0x1005f619
mov edi, dword [ebp + 8]
mov edx, 0x10147658
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x1005f665
test eax, eax
jne 0x1005f677
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x28]
test dword [ecx + 0x18], 0x200
je 0x1005f692
mov eax, dword [ebp + 8]
test eax, eax
je 0x1005f692
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x1005f692
mov edx, str.excluded
mov edi, eax
sub edi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x1005f67d
test eax, eax
jne 0x1005f68f
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
mov dword [ecx + 0x1c], 2
jmp 0x1005f696
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f619
inc edx
jmp 0x1005f5f6
movzx ecx, byte [eax + 0x1013f9f0]
movzx eax, byte [esi + 0x1013f9f0]
sub ecx, eax
jne 0x1005f692
inc edx
jmp 0x1005f640
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1005f738
mov ecx, dword [ebp + 0xc]
call fcn.10029720
mov ecx, dword [esp + 0x1c]
xor edi, edi
inc dword [esp + 0x34]
mov byte [esp + 0xf], al
movsx esi, word [ecx + 0x22]
mov edx, dword [ecx + 0x3c]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], esi
test esi, esi
jle 0x1005f70b
nop word [eax + eax]
cmp byte [ebx + 0xa], al
jne 0x1005f7e4
mov esi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x1005f7c4
test ecx, ecx
jne 0x1005f7d6
mov ecx, dword [esp + 0x1c]
movsx eax, word [ecx + 0x20]
cmp edi, eax
je 0x1005f87b
mov esi, dword [esp + 0x50]
cmp edi, esi
jl 0x1005f72e
mov ecx, dword [ebp + 0xc]
call fcn.10064de0
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x1005f72e
test dword [ecx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
mov eax, edi
cmp edi, esi
jl 0x1005f880
cmp dword [esp + 0x34], 1
mov esi, dword [ebp + 0xc]
jne 0x1005f77c
mov edi, dword [esp + 0x10]
test edi, edi
je 0x1005f77c
mov eax, dword [esp + 0x28]
test byte [eax + 0x18], 0x28
jne 0x1005f77c
mov ecx, esi
call fcn.10064de0
test eax, eax
je 0x1005f77c
mov eax, dword [edi + 0x10]
test dword [eax + 0x1c], 0x200
je 0x1005f9bb
test dword [edi + 0x28], 0x2000
jne 0x1005f9bb
mov edi, dword [esp + 0x28]
mov edx, dword [ebp + 8]
test byte [edi + 0x18], 0x80
je 0x1005f831
test edx, edx
jne 0x1005f831
mov ecx, dword [edi + 8]
mov dword [esp + 0x50], edx
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
test eax, eax
jle 0x1005f82e
lea edi, [ecx + 0x14]
nop dword [eax]
test byte [edi], 3
mov ebx, dword [edi - 8]
jne 0x1005f822
test ebx, ebx
jne 0x1005f7f5
mov ecx, esi
neg ecx
sbb ecx, ecx
jmp 0x1005f81a
movzx eax, byte [eax + 0x1013f9f0]
movzx ecx, byte [ecx + 0x1013f9f0]
sub ecx, eax
jne 0x1005f7dc
inc edx
jmp 0x1005f6e0
mov esi, dword [esp + 0x50]
mov al, byte [esp + 0xf]
inc edi
add ebx, 0x10
cmp edi, esi
jl 0x1005f6d0
jmp 0x1005f70f
test esi, esi
je 0x1005f822
mov edx, ebx
sub esi, ebx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x1005f855
test ecx, ecx
jne 0x1005f867
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov esi, dword [ebp + 0xc]
test ecx, ecx
je 0x1005f9dc
inc edx
add edi, 0x14
mov dword [esp + 0x50], edx
cmp edx, eax
jl 0x1005f7b0
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
inc dword [esp + 0x4c]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
test esi, esi
je 0x1005facb
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x1005f025
movzx eax, byte [eax + 0x1013f9f0]
movzx ecx, byte [ecx + 0x1013f9f0]
sub ecx, eax
jne 0x1005f80f
inc edx
jmp 0x1005f800
mov esi, dword [ebp + 0x14]
cmp ebx, 1
je 0x1005fc9d
jmp 0x1005fb83
or edi, 0xffffffff
or eax, edi
xor edx, edx
mov ebx, 1
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x14]
mov esi, dword [edx + 0x1c]
movzx edx, ax
cmp esi, 2
jne 0x1005f8e2
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xdc], 2
jb 0x1005f8bd
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x40], 0xa7
mov word [esi + 0x20], dx
mov dword [esi + 0x2c], ecx
jmp 0x1005fc9d
call fcn.10075770
mov esi, dword [ebp + 0x14]
movsx ecx, ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], 0xb0
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x24]
mov dword [esi + 0x1c], ecx
jmp 0x1005fc9d
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x2c], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x14]
mov al, byte [eax + 0x9f]
mov word [ecx + 0x20], dx
mov ecx, dword [esp + 0x1c]
test al, al
je 0x1005f93b
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x40], 0xb0
mov byte [eax + 2], 0xa7
call fcn.10075770
movsx ecx, ax
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x22]
inc eax
imul eax, esi
mov esi, dword [ebp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x1005fc9d
mov dword [esp + 0x40], 0x4d
test edi, edi
jns 0x1005f953
mov esi, dword [ebp + 0x14]
mov byte [esi + 1], 0x44
jmp 0x1005fc9d
test esi, esi
jne 0x1005f989
cmp edi, 0x20
jl 0x1005f971
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
mov esi, dword [ebp + 0x14]
or dword [ecx + 0x94], eax
jmp 0x1005fc9d
mov esi, dword [ebp + 0x14]
mov ecx, edi
mov eax, ebx
shl eax, cl
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x94], eax
jmp 0x1005fc9d
cmp edi, 0x20
jl 0x1005f9a3
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
mov esi, dword [ebp + 0x14]
or dword [ecx + 0x98], eax
jmp 0x1005fc9d
mov esi, dword [ebp + 0x14]
mov ecx, edi
mov eax, ebx
shl eax, cl
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x98], eax
jmp 0x1005fc9d
test dword [edi + 0x28], 0x2000
mov ebx, 1
mov esi, dword [ebp + 0x14]
jne 0x1005f9d3
or eax, 0xffffffff
mov word [esi + 0x20], ax
mov byte [esi + 1], 0x44
jmp 0x1005fca1
mov ecx, dword [esp + 0x28]
lea eax, [edx + edx*4]
test byte [ecx + 0x18], 1
mov esi, dword [ecx + 8]
mov eax, dword [esi + eax*4 + 8]
jne 0x1005fa14
test byte [eax + 4], 0x10
je 0x1005fa14
push ebx
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x1c]
call fcn.100294d0
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [eax + 4], 0x8000
je 0x1005fa34
test dword [ecx + 0x18], 0x4000
je 0x1005fa2c
cmp ecx, dword [esp + 0x48]
je 0x1005fa34
push ebx
push str.misuse_of_aliased_window_function__s
jmp 0x1005f9fc
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x1005fa3e
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x1005fa48
mov eax, dword [eax + 0x14]
jmp 0x1005fa53
cmp cl, 0x8a
jne 0x1005fa75
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x1005fa75
push str.row_value_misused
push dword [esp + 0x18]
call fcn.100294d0
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov ecx, edi
push eax
push dword [ebp + 0x14]
push edx
mov edx, esi
call fcn.1005e9a0
mov esi, dword [ebp + 0x14]
add esp, 0xc
cmp byte [edi + 0xdc], 2
jb 0x1005fd79
mov eax, dword [edi + 0x118]
test eax, eax
je 0x1005fd79
nop dword [eax]
cmp dword [eax], esi
je 0x1005fac0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1005fab0
jmp 0x1005fd79
mov dword [eax], 0
jmp 0x1005fd79
mov esi, dword [ebp + 0x14]
test edx, edx
jne 0x1005fb7b
mov ebx, dword [esi + 4]
test bl, bl
jns 0x1005fb53
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xb1], dl
jne 0x1005fb2a
mov edi, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x5c], eax
test dword [edi + 0x18], 0x10000
je 0x1005fb1f
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x1005fb17
mov eax, ecx
and eax, 0x40000000
or eax, edx
jne 0x1005fb2a
and ecx, 0x20000000
jmp 0x1005fb25
and ecx, 0x40000000
or ecx, 0
je 0x1005fb53
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.10028790
xorps xmm0, xmm0
mov byte [esi], 0x75
add esp, 0xc
movq qword [esi + 0x2c], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, 0x4000800
jne 0x1005fb7b
mov ecx, dword [esi + 8]
call fcn.10064770
test eax, eax
je 0x1005fb7b
or eax, ebx
mov byte [esi], 0xaa
mov dword [esi + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x1005fc0f
lea eax, [ebx - 1]
cmp dword [edx], eax
jne 0x1005fc06
mov eax, dword [esi + 4]
test eax, 0x800000
je 0x1005fbaa
and eax, 0xff7fffff
mov dword [esi + 4], eax
jmp 0x1005fbd8
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x24]
test edx, edx
je 0x1005fbbc
mov ecx, ebx
call fcn.100633e0
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test edx, edx
je 0x1005fbd1
mov ecx, ebx
call fcn.100633e0
mov dword [esi + 0x10], 0
movzx eax, word [esi + 0x20]
lea edx, [esp + 0x20]
push eax
push edi
mov edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.1005ecb0
mov eax, dword [esp + 0x28]
add esp, 8
mov byte [esi], 0xac
mov dword [esi + 8], str.coalesce
mov dword [esi + 0x14], eax
jmp 0x1005fd79
mov ecx, dword [esp + 0x24]
call fcn.10064650
mov edx, dword [esp + 0x30]
test ebx, ebx
push dword [ebp + 0xc]
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [ebp + 8]
test edx, edx
je 0x1005fc42
push ecx
push edx
push eax
push str._s:__s._s._s
push dword [esp + 0x28]
call fcn.100294d0
add esp, 0x18
jmp 0x1005fc6d
test ecx, ecx
je 0x1005fc5b
push ecx
push eax
push str._s:__s._s
push dword [esp + 0x24]
call fcn.100294d0
add esp, 0x14
jmp 0x1005fc6d
push eax
push str._s:__s
push dword [esp + 0x20]
call fcn.100294d0
add esp, 0x10
mov edx, dword [esp + 0x14]
mov eax, esi
mov edx, dword [edx]
test byte [eax + 4], 3
jne 0x1005fc82
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x1005fc8b
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1005fc75
jmp 0x1005fc8e
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x14]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x48]
inc dword [eax + 0x14]
mov edi, dword [esp + 0x10]
test dword [esi + 4], 0x810000
jne 0x1005fcdf
mov edx, dword [esi + 0xc]
test edx, edx
je 0x1005fcba
mov ecx, dword [esp + 0x24]
call fcn.100633e0
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test edx, edx
je 0x1005fcd1
mov ecx, dword [esp + 0x24]
call fcn.100633e0
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], 0
movzx eax, word [esi + 0x20]
test ax, ax
js 0x1005fd66
test edi, edi
je 0x1005fd66
movsx esi, ax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x2c]
test byte [edx + 0x1c], 0x60
je 0x1005fd3d
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x1005fd3d
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x1005fd1f
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x1005fd5d
xor ecx, ecx
cwde
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
jmp 0x1005fd5d
cmp esi, 0x40
mov eax, 0x3f
cmovge esi, eax
xor ecx, ecx
xor edx, edx
bts ecx, esi
cmp esi, 0x20
cmovae edx, ecx
xor ecx, edx
cmp esi, 0x40
cmovae edx, ecx
or dword [edi + 0x38], ecx
or dword [edi + 0x3c], edx
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x40]
mov byte [esi], al
cmp ebx, 1
jne 0x1005fa08
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
cmp dword [eax + 0x16c], 0
je 0x1005fe48
mov cl, byte [esi]
cmp cl, 0xa7
je 0x1005fd98
cmp cl, 0x4d
jne 0x1005fe48
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov ebx, dword [ebx + 4]
test esi, esi
je 0x1005fe48
mov eax, dword [eax + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], esi
je 0x1005fdc7
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], esi
jne 0x1005fdb7
test edx, edx
js 0x1005fe48
cmp cl, 0x4d
jne 0x1005fdd4
mov esi, dword [edi + 0x84]
jmp 0x1005fdfe
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x1005fe48
mov ecx, dword [ebp + 0x14]
mov edi, dword [ecx + 0x1c]
lea ecx, [ebx + 0x34]
cmp edi, dword [ecx]
je 0x1005fdf3
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x1005fde5
jmp 0x1005fe48
mov edi, dword [esp + 0x14]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x1005fe48
mov ebx, dword [ebp + 0x14]
movsx ecx, word [ebx + 0x20]
test ecx, ecx
js 0x1005fe17
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1005fe32
movzx eax, word [esi + 0x20]
test ax, ax
js 0x1005fe2d
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1005fe32
mov eax, str.ROWID
push edx
mov edx, dword [esi]
mov ecx, edi
push eax
call fcn.100739b0
add esp, 8
cmp eax, 2
jne 0x1005fe48
mov byte [ebx], 0x79
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x1005fe61
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x1005fe57
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret