Function at 0x1810d082
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
mov ebx, ecx
mov dword [esp + 0x18], edx
xor ecx, ecx
mov dword [esp + 0x28], ebx
push esi
mov esi, dword [ebp + 0x14]
mov eax, dword [ebx]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov ecx, 0xa4
mov dword [esp + 0x34], ecx
or ecx, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esi + 0x1c], ecx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x3c], edi
test edx, edx
je 0x1810d168
test byte [edi + 0x18], 6
je 0x1810d0e6
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x1810d16a
mov ebx, dword [eax + 0x14]
xor edi, edi
test ebx, ebx
jle 0x1810d115
mov eax, dword [eax + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [eax]
call fcn.180e90b3
test eax, eax
je 0x1810d150
mov eax, dword [esp + 0x48]
inc edi
mov edx, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x48], eax
cmp edi, ebx
jl 0x1810d0f6
xor eax, eax
mov dword [esp + 0x28], eax
cmp edi, ebx
jne 0x1810d161
mov ecx, str.main
mov dword [esp + 0x28], eax
call fcn.180e90b3
mov ebx, dword [esp + 0x30]
xor edx, edx
mov edi, dword [ebp + 0x10]
test eax, eax
jne 0x1810d16a
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
jmp 0x1810d16a
mov ecx, dword [esp + 0x2c]
add edi, edi
mov eax, dword [ecx + 0x10]
mov ecx, dword [eax + edi*8 + 0xc]
mov dword [esp + 0x28], ecx
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x30]
xor edx, edx
mov eax, dword [edi + 4]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x1810d3ba
lea ecx, [eax + 8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], ecx
cmp dword [eax], edx
jle 0x1810d392
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x48], edx
test eax, eax
je 0x1810d221
test dword [eax + 4], 0x800
je 0x1810d221
mov eax, dword [eax + 0x1c]
xor edi, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x50], eax
cmp dword [eax], edi
jle 0x1810d217
lea ebx, [eax + 4]
push dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.1810cf84
pop ecx
pop ecx
test eax, eax
je 0x1810d1f3
inc dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x18], 2
mov dword [esp + 0x24], eax
mov word [esi + 0x20], di
mov dword [esp + 0x44], ecx
jmp 0x1810d1f7
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
inc edi
add ebx, 0x14
cmp edi, dword [eax]
jl 0x1810d1bb
mov ebx, dword [esp + 0x30]
test ecx, ecx
mov ecx, dword [esp + 0x1c]
jne 0x1810d371
mov edx, dword [esp + 0x48]
cmp dword [ebp + 8], 0
je 0x1810d371
cmp dword [esp + 0x20], 0
je 0x1810d235
mov eax, dword [esp + 0x28]
cmp dword [edx + 0x48], eax
jne 0x1810d371
cmp dword [ebp + 8], 0
je 0x1810d271
mov edi, dword [ecx + 0xc]
mov ecx, edi
test edi, edi
jne 0x1810d246
mov ecx, dword [edx]
mov edx, dword [ebp + 8]
call fcn.180e90b3
test eax, eax
jne 0x1810d36d
cmp byte [ebx + 0xcc], 2
jb 0x1810d271
test edi, edi
je 0x1810d271
lea eax, [esi + 0x2c]
xor edx, edx
push eax
mov ecx, ebx
call fcn.18115202
pop ecx
mov ecx, dword [esp + 0x18]
mov eax, ecx
inc ecx
mov dword [esp + 0x18], ecx
test eax, eax
jne 0x1810d288
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov ecx, dword [ebp + 0xc]
call fcn.180e9148
mov ecx, dword [esp + 0x48]
mov dl, al
xor edi, edi
mov byte [esp + 0x13], dl
mov dword [esp + 0x44], edi
mov eax, dword [ecx + 4]
movsx ecx, word [ecx + 0x2a]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ecx
test ecx, ecx
jle 0x1810d36d
cmp byte [eax + 0xf], dl
jne 0x1810d350
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
call fcn.180e90b3
test eax, eax
jne 0x1810d344
mov edx, dword [esp + 0x14]
cmp edx, 1
jne 0x1810d322
mov eax, dword [esp + 0x1c]
test byte [eax + 0x24], 4
jne 0x1810d344
mov eax, dword [eax + 0x34]
test eax, eax
je 0x1810d322
mov ecx, dword [eax + 4]
and dword [esp + 0x50], 0
mov dword [esp + 0x58], ecx
test ecx, ecx
jle 0x1810d322
mov edi, dword [eax]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edi]
call fcn.180e90b3
test eax, eax
je 0x1810d340
mov eax, dword [esp + 0x50]
add edi, 8
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x58]
jl 0x1810d2fa
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x1810d366
or eax, 0xffffffff
jmp 0x1810d369
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dl, byte [esp + 0x13]
inc edi
add eax, 0x14
mov dword [esp + 0x44], edi
mov dword [esp + 0x34], eax
cmp edi, ecx
jl 0x1810d2b7
jmp 0x1810d36d
movzx eax, di
mov word [esi + 0x20], ax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
add ecx, 0x48
mov eax, dword [esp + 0x5c]
inc edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], ecx
cmp edx, dword [eax]
jl 0x1810d18c
mov edi, dword [ebp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1810d3ba
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x2c], eax
test byte [ecx + 0x24], 8
je 0x1810d3b3
or dword [esi + 4], 0x100000
mov eax, dword [eax + 0x48]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x20], 0
mov ecx, dword [esp + 0x18]
jne 0x1810d5c8
cmp dword [ebp + 8], 0
je 0x1810d5c8
test ecx, ecx
jne 0x1810d5c8
mov edi, edx
mov dword [esp + 0x1c], edi
cmp dword [ebx + 0x78], edx
je 0x1810d430
mov al, byte [ebx + 0x94]
mov byte [esp + 0x13], al
cmp al, 0x7e
je 0x1810d415
mov edx, dword [ebp + 8]
mov ecx, 0x18219974
call fcn.180e90b3
test eax, eax
jne 0x1810d40e
mov dword [esi + 0x1c], 1
jmp 0x1810d429
cmp byte [esp + 0x13], 0x7d
je 0x1810d430
mov edx, dword [ebp + 8]
mov ecx, 0x18219978
call fcn.180e90b3
test eax, eax
jne 0x1810d430
and dword [esi + 0x1c], eax
mov edi, dword [ebx + 0x78]
mov dword [esp + 0x1c], edi
mov eax, dword [ebp + 0x10]
test dword [eax + 0x18], 0x200
je 0x1810d46b
mov eax, dword [eax + 8]
test eax, eax
je 0x1810d46b
mov edx, dword [ebp + 8]
mov ecx, str.excluded
call fcn.180e90b3
test eax, eax
jne 0x1810d46b
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov dword [esp + 0x1c], edi
mov dword [esi + 0x1c], 2
test edi, edi
je 0x1810d5c1
mov ecx, dword [ebp + 0xc]
call fcn.180e9148
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x13], al
mov eax, dword [edi + 0x48]
xor edi, edi
mov dword [esp + 0x28], eax
movsx edx, word [ecx + 0x2a]
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], edx
test edx, edx
jle 0x1810d4ed
mov cl, byte [esp + 0x13]
cmp byte [eax + 0xf], cl
jne 0x1810d4ca
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
call fcn.180e90b3
test eax, eax
je 0x1810d4d8
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov cl, byte [esp + 0x13]
inc edi
add eax, 0x14
mov dword [esp + 0x54], eax
cmp edi, edx
jl 0x1810d4ab
jmp 0x1810d4f5
mov ecx, dword [esp + 0x1c]
movsx eax, word [ecx + 0x28]
cmp edi, eax
jne 0x1810d4ed
or edx, 0xffffffff
mov edi, edx
mov eax, edx
jmp 0x1810d524
movsx eax, word [ecx + 0x2a]
cmp edi, eax
jl 0x1810d513
mov ecx, dword [ebp + 0xc]
call fcn.18110c58
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x1810d513
test dword [ecx + 0x24], 0x200
jne 0x1810d513
or eax, 0xffffffff
mov edi, eax
movsx edx, word [ecx + 0x2a]
mov eax, edi
cmp edi, edx
jge 0x1810d5c1
or edx, 0xffffffff
inc dword [esp + 0x14]
cmp dword [esi + 0x1c], 2
jne 0x1810d570
cmp byte [ebx + 0xcc], 2
movzx edx, ax
jb 0x1810d54b
mov word [esi + 0x20], dx
mov dword [esi + 0x2c], ecx
mov dword [esp + 0x38], 0xa4
jmp 0x1810d5c1
call fcn.18119072
mov edi, dword [ebp + 0x10]
movsx ecx, ax
mov dword [esp + 0x38], 0xad
mov eax, dword [edi + 8]
add ecx, dword [eax + 0x18]
or dword [esi + 4], 0x400000
mov dword [esi + 0x1c], ecx
jmp 0x1810d5c4
test edi, edi
jns 0x1810d57a
mov byte [esi + 1], 0x44
jmp 0x1810d5ae
cmp dword [esi + 0x1c], 0
jne 0x1810d598
cmp edi, 0x20
jl 0x1810d589
mov eax, edx
jmp 0x1810d590
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
or dword [ebx + 0x8c], eax
jmp 0x1810d5ae
cmp edi, 0x20
jl 0x1810d5a1
mov eax, edx
jmp 0x1810d5a8
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
or dword [ebx + 0x90], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x2c], eax
mov word [esi + 0x20], di
mov dword [esp + 0x38], 0x4d
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1810d615
cmp ecx, 1
jne 0x1810d615
cmp dword [esp + 0x24], eax
je 0x1810d615
test byte [edi + 0x18], 0x28
jne 0x1810d615
mov ecx, dword [ebp + 0xc]
call fcn.18110c58
test eax, eax
je 0x1810d611
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test dword [eax + 0x24], 0x200
jne 0x1810d611
xor eax, eax
mov byte [esi + 1], 0x44
inc eax
or ecx, 0xffffffff
mov dword [esp + 0x14], eax
mov word [esi + 0x20], cx
jmp 0x1810d615
mov eax, dword [esp + 0x14]
test byte [edi + 0x18], 0x80
je 0x1810d696
test eax, eax
jne 0x1810d7f7
cmp dword [ebp + 8], eax
jne 0x1810d69e
mov eax, dword [edi + 8]
xor edx, edx
mov dword [esp + 0x50], edx
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x1810d69e
lea ecx, [eax + 0x10]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
test byte [ecx], 3
mov edi, dword [ecx - 8]
jne 0x1810d67f
test edi, edi
jne 0x1810d65b
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
jmp 0x1810d673
cmp dword [ebp + 0xc], 0
je 0x1810d67f
mov edx, dword [ebp + 0xc]
mov ecx, edi
call fcn.180e90b3
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x1810d70f
mov eax, dword [esp + 0x54]
inc edx
add ecx, 0x14
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
cmp edx, eax
jl 0x1810d646
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1810d7f7
mov edi, dword [edi + 0xc]
inc dword [esp + 0x4c]
mov dword [ebp + 0x10], edi
test edi, edi
jne 0x1810d168
cmp dword [ebp + 8], edi
jne 0x1810d800
test byte [esi + 4], 0x40
je 0x1810d7ea
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0xa5], 0
jne 0x1810d7c9
mov eax, dword [esp + 0x3c]
test dword [eax + 0x18], 0x10000
je 0x1810d7bc
call fcn.18118f2b
mov ecx, dword [esp + 0x2c]
test eax, eax
je 0x1810d702
mov eax, dword [ecx + 0x20]
and eax, 0x40000000
or eax, edi
jne 0x1810d7c9
mov eax, dword [ecx + 0x20]
and eax, 0x20000000
jmp 0x1810d7c4
mov ebx, dword [ebp + 0x10]
imul eax, edx, 0x14
mov ecx, dword [ebx + 8]
mov ecx, dword [eax + ecx + 4]
mov eax, ebx
mov ebx, dword [esp + 0x30]
test byte [eax + 0x18], 1
jne 0x1810d747
test byte [ecx + 4], 0x10
je 0x1810d747
push edi
push str.misuse_of_aliased_aggregate__s
push ebx
call fcn.180e8fc0
add esp, 0xc
push 2
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx + 4], 0x8000
je 0x1810d76a
test dword [eax + 0x18], 0x4000
je 0x1810d762
mov eax, dword [esp + 0x3c]
cmp dword [ebp + 0x10], eax
je 0x1810d76a
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x1810d734
call fcn.1810f36f
cmp eax, 1
je 0x1810d783
push str.row_value_misused
push ebx
call fcn.180e8fc0
pop ecx
pop ecx
jmp 0x1810d73d
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov edi, dword [ebp + 0x10]
push eax
push 0x181f4ba4
push esi
push edx
mov edx, dword [edi + 8]
call fcn.1810ce8c
add esp, 0x10
cmp byte [ebx + 0xcc], 2
jb 0x1810d8c1
push esi
xor edx, edx
mov ecx, ebx
call fcn.18115202
pop ecx
jmp 0x1810d8c1
mov eax, dword [ecx + 0x20]
and eax, 0x40000000
or eax, 0
je 0x1810d7ea
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.180e855e
add esp, 0xc
mov byte [esi], 0x73
and dword [esi + 0x2c], 0
xor eax, eax
inc eax
jmp 0x1810d740
mov ecx, esi
call fcn.181108e3
test eax, eax
je 0x1810d800
jmp 0x1810d7e2
cmp eax, 1
je 0x1810d860
test eax, eax
jne 0x1810d807
mov eax, str.no_such_column
jmp 0x1810d80c
mov eax, str.ambiguous_column_name
mov ecx, dword [esp + 0x20]
push dword [ebp + 0xc]
test ecx, ecx
je 0x1810d82c
push dword [ebp + 8]
push ecx
push eax
push str._s:__s._s._s
push ebx
call fcn.180e8fc0
add esp, 0x18
jmp 0x1810d855
cmp dword [ebp + 8], 0
je 0x1810d846
push dword [ebp + 8]
push eax
push str._s:__s._s
push ebx
call fcn.180e8fc0
add esp, 0x14
jmp 0x1810d855
push eax
push str._s:__s
push ebx
call fcn.180e8fc0
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov byte [ebx + 0x11], 1
inc dword [eax + 0x14]
xor eax, eax
cmp word [esi + 0x20], ax
jl 0x1810d87f
cmp dword [esp + 0x24], eax
je 0x1810d87f
mov ecx, esi
call fcn.1810d027
mov ecx, dword [esp + 0x24]
or dword [ecx + 0x38], eax
or dword [ecx + 0x3c], edx
mov edx, dword [esi + 0xc]
test edx, edx
je 0x1810d88f
mov ecx, dword [esp + 0x2c]
call fcn.1810fc83
mov edx, dword [esi + 0x10]
xor eax, eax
mov dword [esi + 0xc], eax
test edx, edx
je 0x1810d8a6
mov ecx, dword [esp + 0x2c]
call fcn.1810fc83
xor eax, eax
mov ecx, dword [esp + 0x38]
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], eax
mov byte [esi], cl
cmp dword [esp + 0x14], 1
jne 0x1810d73d
test dword [esi + 4], 0x400000
jne 0x1810d8dc
push dword [edi + 4]
mov edx, esi
mov ecx, ebx
push dword [esp + 0x2c]
call fcn.18118170
pop ecx
pop ecx
mov eax, dword [esp + 0x3c]
jmp 0x1810d8e5
mov eax, dword [eax + 0xc]
inc dword [eax + 0x10]
cmp eax, edi
jne 0x1810d8e2
jmp 0x1810d7e2