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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, ecx
mov dword [esp + 0x10], 0
push ebx
push esi
mov esi, edx
mov dword [esp + 0xc], eax
mov ebx, dword [eax]
xor ecx, ecx
mov edx, dword [ebp + 0x14]
mov eax, 0xa2
push edi
xor edi, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], eax
mov dword [edx + 0x1c], 0xffffffff
test esi, esi
je 0x4b59a6
test byte [ecx + 0x18], 6
je 0x4b5968
mov dword [esp + 0x28], edi
jmp 0x4b59a6
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x4b59a4
mov ebx, dword [ebx + 0x10]
mov edx, dword [ebx]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b5a4e
test ecx, ecx
jne 0x4b5a60
mov ecx, dword [esp + 0x2c]
add edi, edi
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*8 + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
xor edi, edi
mov esi, dword [ebp + 8]
nop dword [eax]
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4b5c06
xor ecx, ecx
lea esi, [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], esi
cmp dword [eax], ecx
jle 0x4b5bdf
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x34], ebx
test eax, eax
je 0x4b5aad
test dword [eax + 8], 0x800
je 0x4b5aad
mov ebx, dword [eax]
xor esi, esi
mov dword [esp + 0x44], 0
cmp dword [ebx], esi
jle 0x4b5a98
lea edi, [ebx + 0xc]
nop word [eax + eax]
push dword [esp + 0x28]
mov edx, dword [ebp + 0xc]
push dword [ebp + 8]
mov ecx, dword [edi]
call fcn.004b5830
add esp, 8
test eax, eax
je 0x4b5a80
mov eax, dword [esp + 0x14]
inc dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], 2
mov word [eax + 0x20], si
mov eax, 1
mov dword [esp + 0x44], eax
jmp 0x4b5a84
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b5a66
inc edx
jmp 0x4b5976
mov eax, dword [esp + 0x2c]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jge 0x4b599e
mov esi, dword [esp + 0x28]
jmp 0x4b5972
mov eax, dword [esp + 0x44]
inc esi
add edi, 0x18
cmp esi, dword [ebx]
jl 0x4b5a10
mov ecx, dword [esp + 0x24]
test eax, eax
jne 0x4b5bbc
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x4b5bc0
mov ebx, dword [esp + 0x34]
jmp 0x4b5ab0
mov eax, dword [ebp + 8]
cmp dword [esp + 0x28], 0
je 0x4b5ac4
mov edx, dword [esp + 0x30]
cmp dword [ebx + 0x48], edx
jne 0x4b5bc0
test eax, eax
je 0x4b5b33
mov edi, dword [esi + 0xc]
mov edx, edi
test edi, edi
jne 0x4b5ad3
mov edx, dword [ebx]
mov esi, eax
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b5b14
test ecx, ecx
jne 0x4b5b2a
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 2
jb 0x4b5b33
test edi, edi
je 0x4b5b33
mov eax, dword [eax + 0x110]
test eax, eax
je 0x4b5b33
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x4b5b2d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4b5b07
jmp 0x4b5b33
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b5bb8
inc edx
jmp 0x4b5ad7
mov dword [eax], 0
mov ecx, dword [esp + 0x18]
mov eax, ecx
inc ecx
mov dword [esp + 0x18], ecx
test eax, eax
jne 0x4b5b4a
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x34]
xor edi, edi
mov ebx, dword [ebx + 4]
movsx eax, word [eax + 0x2a]
test eax, eax
jle 0x4b5bb8
nop dword [eax + eax]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub esi, edx
movzx eax, byte [edx]
movzx ecx, byte [esi + edx]
cmp eax, ecx
jne 0x4b5c72
test eax, eax
jne 0x4b5c88
mov esi, dword [esp + 0x1c]
cmp esi, 1
jne 0x4b5c8e
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 4
jne 0x4b5ba8
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 0x34]
call fcn.004b57c0
test eax, eax
je 0x4b5c8e
mov ecx, dword [esp + 0x34]
inc edi
add ebx, 0x10
movsx eax, word [ecx + 0x2a]
cmp edi, eax
jl 0x4b5b60
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x48]
inc ecx
add esi, 0x48
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], esi
cmp ecx, dword [eax]
jl 0x4b59d4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4b5c03
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x1c], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x2c], eax
test byte [edi + 0x24], 8
je 0x4b5bfc
or dword [edx + 4], 0x100000
mov eax, dword [eax + 0x48]
mov dword [esp + 0x30], eax
mov esi, dword [ebp + 8]
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x18]
jne 0x4b5f44
test esi, esi
je 0x4b5f44
test eax, eax
jne 0x4b5f44
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x24], ebx
cmp dword [eax + 0x78], ebx
je 0x4b5d28
movzx edi, byte [eax + 0x90]
cmp edi, 0x7c
je 0x4b5cf0
mov edx, 0x70dc64
sub esi, edx
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b5cd5
test ecx, ecx
jne 0x4b5ce7
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], 1
jmp 0x4b5d1d
movzx ecx, byte [ecx + 0x6cd750]
movzx eax, byte [eax + 0x6cd750]
sub eax, ecx
jne 0x4b5ba8
inc edx
jmp 0x4b5b67
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], esi
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x4b5cbe
mov edx, dword [ebp + 0x14]
or eax, 0xffffffff
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov word [edx + 0x20], ax
jmp 0x4b5bc3
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
movsx eax, di
mov word [edx + 0x20], ax
jmp 0x4b5bc3
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b5ced
inc edx
jmp 0x4b5c50
mov esi, dword [ebp + 8]
cmp edi, 0x7b
je 0x4b5d28
mov edx, 0x70dc78
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b5dce
test ecx, ecx
jne 0x4b5de4
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], ebx
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x78]
mov dword [esp + 0x24], ebx
mov eax, dword [ebp + 0x10]
test dword [eax + 0x18], 0x200
je 0x4b5d70
mov edi, dword [eax + 8]
test edi, edi
je 0x4b5d70
mov esi, dword [ebp + 8]
mov edx, str.excluded
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b5dea
test ecx, ecx
jne 0x4b5e00
mov eax, dword [edi + 0x14]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x24], ebx
mov dword [eax + 0x1c], 2
test ebx, ebx
je 0x4b5f4c
mov eax, dword [ebx + 0x48]
xor edi, edi
movsx ecx, word [ebx + 0x2a]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x4b5e37
mov ebx, dword [ebp + 0xc]
mov edx, dword [eax]
sub ebx, edx
movzx eax, byte [edx]
movzx esi, byte [ebx + edx]
cmp eax, esi
jne 0x4b5e06
test eax, eax
jne 0x4b5e18
mov ebx, dword [esp + 0x24]
mov esi, 0xffffffff
mov ecx, dword [esp + 0x34]
movsx eax, word [ebx + 0x28]
cmp edi, eax
cmove edi, esi
jmp 0x4b5e3a
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b5d28
inc edx
jmp 0x4b5d00
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b5d70
inc edx
jmp 0x4b5d45
movzx ecx, byte [eax + 0x6cd750]
movzx eax, byte [esi + 0x6cd750]
sub ecx, eax
jne 0x4b5e1b
inc edx
jmp 0x4b5da7
mov eax, dword [esp + 0x44]
inc edi
mov ecx, dword [esp + 0x34]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp edi, ecx
jl 0x4b5da0
mov ebx, dword [esp + 0x24]
or esi, 0xffffffff
cmp edi, ecx
jl 0x4b5e5d
mov ecx, dword [ebp + 0xc]
call fcn.004ba710
mov ecx, dword [esp + 0x34]
test eax, eax
je 0x4b5e55
test byte [ebx + 0x24], 0x40
cmove edi, esi
cmp edi, ecx
jge 0x4b5f4c
mov esi, dword [ebp + 0x14]
inc dword [esp + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 2
jne 0x4b5eaf
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
cmp byte [eax + 0xc8], 2
jb 0x4b5e90
mov word [esi + 0x20], di
mov dword [esi + 0x2c], ebx
mov dword [esp + 0x38], 0xa2
jmp 0x4b5f52
mov eax, dword [ecx + 8]
mov dword [esp + 0x38], 0xab
mov eax, dword [eax + 0x18]
add eax, edi
or dword [esi + 4], 0x400000
mov dword [esi + 0x1c], eax
jmp 0x4b5f52
test edi, edi
jns 0x4b5ecb
mov byte [esi + 1], 0x44
mov dword [esi + 0x2c], ebx
mov word [esi + 0x20], di
mov dword [esp + 0x38], 0x4d
jmp 0x4b5f4f
test eax, eax
jne 0x4b5f16
cmp edi, 0x20
jl 0x4b5ef2
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x38], 0x4d
or dword [ecx + 0x88], eax
mov dword [esi + 0x2c], ebx
mov word [esi + 0x20], di
jmp 0x4b5f4f
mov ecx, edi
mov dword [esp + 0x38], 0x4d
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x88], eax
mov dword [esi + 0x2c], ebx
mov word [esi + 0x20], di
jmp 0x4b5f4f
cmp edi, 0x20
jl 0x4b5f20
or eax, 0xffffffff
jmp 0x4b5f29
mov eax, 1
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], 0x4d
or dword [ecx + 0x8c], eax
mov dword [esi + 0x2c], ebx
mov word [esi + 0x20], di
jmp 0x4b5f4f
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
jmp 0x4b5f5a
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x4b5f9a
cmp eax, 1
jne 0x4b5f9a
test edi, edi
je 0x4b5f9a
test byte [ecx + 0x18], 0x20
jne 0x4b5f9a
mov ecx, dword [ebp + 0xc]
call fcn.004ba710
test eax, eax
je 0x4b5f9a
mov eax, dword [edi + 0x10]
test byte [eax + 0x24], 0x40
jne 0x4b5f9a
mov ebx, 1
mov byte [esi + 1], 0x44
or eax, 0xffffffff
mov dword [esp + 0x1c], ebx
mov word [esi + 0x20], ax
mov ecx, dword [ebp + 0x10]
test byte [ecx + 0x18], 0x80
je 0x4b6087
test ebx, ebx
jne 0x4b608b
mov esi, dword [ebp + 8]
test esi, esi
jne 0x4b6069
mov eax, dword [ecx + 8]
mov dword [esp + 0x34], eax
cmp dword [eax], ebx
jle 0x4b6099
mov ecx, dword [esp + 0x34]
add eax, 8
mov dword [esp + 0x44], eax
mov edi, dword [eax]
test edi, edi
je 0x4b604f
mov esi, dword [ebp + 0xc]
mov edx, edi
sub esi, edi
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b6032
test ecx, ecx
jne 0x4b6044
mov ecx, dword [ebp + 0x10]
lea eax, [ebx + ebx*2]
mov edx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x18]
mov eax, dword [edx + eax*8 + 4]
test cl, 1
jne 0x4b609f
test byte [eax + 4], 0x10
je 0x4b609f
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x18]
call fcn.00483a70
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b6047
inc edx
jmp 0x4b5fe1
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
inc ebx
add eax, 0x18
mov dword [esp + 0x44], eax
cmp ebx, dword [ecx]
jl 0x4b5fd4
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
inc dword [esp + 0x3c]
mov dword [ebp + 0x10], ecx
test ecx, ecx
je 0x4b6150
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0x20]
jmp 0x4b59b0
test ebx, ebx
je 0x4b6066
cmp ebx, 1
jne 0x4b6290
jmp 0x4b62fd
mov ebx, dword [esp + 0x1c]
jmp 0x4b6069
test ecx, 0x4000
jne 0x4b60bb
test dword [eax + 4], 0x8000
je 0x4b60bb
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x4b601a
mov cl, byte [eax]
cmp cl, 0xab
jne 0x4b60c5
mov cl, byte [eax + 0x26]
cmp cl, 0xac
jne 0x4b60cf
mov eax, dword [eax + 0x14]
jmp 0x4b60d9
cmp cl, 0x86
jne 0x4b60fd
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
je 0x4b60fd
push 0x70dcc4
push dword [esp + 0x14]
call fcn.00483a70
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 0x14]
push ecx
push 0x71ccfe
push esi
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.004b5660
add esp, 0x10
cmp byte [ebx + 0xc8], 2
jb 0x4b6382
mov eax, dword [ebx + 0x110]
test eax, eax
je 0x4b6382
cmp dword [eax], esi
je 0x4b6145
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4b6135
jmp 0x4b6382
mov dword [eax], 0
jmp 0x4b6382
test esi, esi
jne 0x4b6293
mov esi, dword [ebp + 0x14]
mov ebx, dword [esi + 4]
test bl, 0x40
je 0x4b61b6
mov edx, dword [esp + 0x2c]
cmp byte [edx + 0xa5], 0
jne 0x4b6218
mov eax, dword [esp + 0x40]
test dword [eax + 0x18], 0x10000
je 0x4b620b
mov eax, dword [edx + 0x24]
mov ecx, dword [edx + 0x20]
xor edx, edx
mov dword [esp + 0x4c], eax
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x4b61ac
test edx, edx
jne 0x4b61ac
mov eax, ecx
and eax, 0x40000000
or eax, edx
jne 0x4b6218
and ecx, 0x20000000
or ecx, edx
jne 0x4b6218
test ebx, 0x4000000
jne 0x4b628c
mov edi, dword [esi + 8]
mov esi, str.true
mov edx, edi
sub esi, edi
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b6240
test ecx, ecx
jne 0x4b6252
mov ecx, dword [ebp + 0x14]
mov eax, 0x20000000
mov edx, 0x10000000
mov byte [ecx], 0xa5
cmp byte [edi + 4], 0
cmove eax, edx
or eax, ebx
mov dword [ecx + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x20]
and eax, 0x40000000
or eax, 0
je 0x4b61b6
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.00482df0
add esp, 0xc
mov byte [esi], 0x71
mov dword [esi + 0x2c], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b6258
inc edx
jmp 0x4b61d0
mov esi, str.false
mov edx, edi
sub esi, edi
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b6277
test ecx, ecx
je 0x4b61e3
inc edx
jmp 0x4b6261
movzx eax, byte [eax + 0x6cd750]
movzx ecx, byte [ecx + 0x6cd750]
sub ecx, eax
jne 0x4b628c
inc edx
jmp 0x4b6261
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
push dword [ebp + 0xc]
test ebx, ebx
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4b62c3
push esi
push ecx
push eax
push str._s:__s._s._s
push dword [esp + 0x24]
call fcn.00483a70
add esp, 0x18
jmp 0x4b62ee
test esi, esi
je 0x4b62dc
push esi
push eax
push 0x70dd3c
push dword [esp + 0x20]
call fcn.00483a70
add esp, 0x14
jmp 0x4b62ee
push eax
push 0x70dd34
push dword [esp + 0x1c]
call fcn.00483a70
add esp, 0x10
mov eax, dword [esp + 0x10]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x40]
inc dword [eax + 0x14]
mov esi, dword [ebp + 0x14]
movzx eax, word [esi + 0x20]
test ax, ax
js 0x4b633a
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4b633a
movsx edx, ax
mov eax, 0x3f
cmp edx, 0x40
cmovge edx, eax
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or dword [edi + 0x38], eax
or dword [edi + 0x3c], ecx
mov edx, dword [esi + 0xc]
mov edi, dword [esp + 0x2c]
test edx, edx
je 0x4b634c
mov ecx, edi
call fcn.004b8c80
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test edx, edx
je 0x4b6361
mov ecx, edi
call fcn.004b8c80
mov eax, dword [esp + 0x38]
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], 0
mov byte [esi], al
cmp ebx, 1
jne 0x4b6026
mov ebx, dword [esp + 0x10]
test dword [esi + 4], 0x400000
jne 0x4b63a1
mov eax, dword [ebp + 0x10]
mov edx, esi
mov ecx, ebx
push dword [eax + 4]
push dword [esp + 0x34]
call fcn.004c53e0
add esp, 8
mov ecx, dword [esp + 0x40]
mov eax, dword [ebp + 0x10]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x4b63ba
nop
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x4b63b0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret