Function at 0x4a00d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x18]
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 0x44], edx
movzx eax, byte [edx]
add eax, 0xffffffec
cmp eax, 0x98
ja case.0x4a0102.21
jmp dword [eax*4 + 0x5290c0]
mov eax, dword [esp]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne case.0x4a0102.21
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
movzx eax, byte [ecx]
cmp al, 0xb0
jne 0x4a0129
movzx eax, byte [ecx + 2]
cmp al, 0x8a
je 0x4a03e9
movzx edx, al
mov eax, 1
cmp edx, 0xb1
jne 0x4a03f3
add ecx, 0x14
jmp 0x4a03ef
mov eax, dword [ebp + 0xc]
test byte [eax + 5], 0x10
je case.0x4a0102.21
mov eax, edi
mov ebx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
test al, 0x2e
je 0x4a075b
mov ecx, str.index_expressions
test al, 0x20
jne 0x4a018b
mov ecx, str.CHECK_constraints
test al, 4
jne 0x4a018b
test al, 8
mov eax, str.partial_index_WHERE_clauses
mov ecx, str.generated_columns
cmove ecx, eax
push ecx
push str.subqueries
push str._s_prohibited_in__s
mov esi, dword [esp + 0xc]
push esi
call fcn.00434540
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0x79
mov eax, dword [esi]
jmp 0x4a01bb
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4a0766
test byte [ecx + 4], 3
jne 0x4a01b0
mov edx, dword [ecx + 0x24]
test edx, edx
jle 0x4a01b0
mov dword [eax + 0x44], edx
jmp 0x4a0766
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
jne 0x4a01f0
jmp case.0x4a0102.48
mov edi, dword [edi + 0x14]
add edi, 8
mov edi, dword [edi]
test edi, edi
je case.0x4a0102.48
mov eax, dword [edi + 4]
test eax, 0x82000
je 0x4a0714
test eax, 0x80000
jne 0x4a01e0
add edi, 0xc
mov edi, dword [edi]
test edi, edi
jne 0x4a01f0
jmp case.0x4a0102.48
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
mov eax, dword [edi + 0x10]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x70], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x74], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x78], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a028c
mov eax, dword [eax + 0x10]
mov dword [esp + 0x7c], eax
mov esi, edi
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4a02a0
mov ecx, dword [ebp + 8]
call fcn.00499fb0
mov eax, dword [ebp + 0xc]
lea ebx, [eax + 0xc]
mov eax, ebx
nop dword [eax + eax]
mov eax, dword [eax]
movzx ecx, byte [eax]
movzx edx, cl
lea edi, [edx - 0xad]
cmp edi, 2
jae 0x4a02c8
add eax, 0xc
jmp 0x4a02b0
cmp edx, 0xb0
mov edi, esi
jne 0x4a02d6
movzx ecx, byte [eax + 2]
movzx ecx, cl
lea edx, [ecx - 0x99]
cmp edx, 3
jb 0x4a0327
cmp ecx, 0x75
je 0x4a0327
cmp ecx, 0xa7
jne 0x4a03df
test byte [eax + 6], 0x20
jne 0x4a03df
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x4a03df
movsx eax, word [eax + 0x20]
test eax, eax
js 0x4a0327
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4a0327
lea eax, [eax + eax*2]
test byte [ecx + eax*4 + 4], 0xf
je 0x4a03df
mov eax, dword [esp]
cmp byte [eax + 0xd0], 1
ja 0x4a03df
xor eax, eax
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0x33
mov ecx, str.true
mov edx, str.false
cmove edx, ecx
setne al
shl eax, 0x1c
add eax, 0x10000000
mov dword [esi + 8], edx
or dword [esi + 4], eax
mov byte [esi], 0xaa
mov eax, dword [esp + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x78]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a03c9
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx]
test edx, edx
mov eax, dword [esp]
je 0x4a03d9
mov ecx, dword [eax]
call fcn.00469350
mov dword [ebx], 0
mov ebx, 1
jmp 0x4a0805
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov eax, dword [ecx]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0x30
jne 0x4a0435
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx + 8]
movzx ebx, byte [edx]
cmp bl, 0xb0
jne 0x4a0410
movzx ebx, byte [edx + 2]
cmp bl, 0x8a
je 0x4a077c
movzx edi, bl
mov esi, 1
cmp edi, 0xb1
jne 0x4a0786
add edx, 0x14
jmp 0x4a0782
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x10]
movzx edx, byte [ecx]
cmp dl, 0xb0
jne 0x4a0447
movzx edx, byte [ecx + 2]
cmp dl, 0x8a
je 0x4a07a2
movzx edx, dl
mov esi, 1
cmp edx, 0xb1
jne 0x4a07ac
add ecx, 0x14
jmp 0x4a07a8
mov dword [esp + 0x28], edi
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
mov edi, dword [esp]
mov eax, dword [edi]
mov dword [esp + 0x38], eax
lea eax, [edx + 0x1c]
mov dword [esp + 0x40], eax
mov dword [edx + 0x1c], 0xffffffff
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
jmp 0x4a0ae6
mov eax, dword [edi + 4]
mov edx, dword [ebp + 0xc]
mov byte [edx], 0xa7
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x2c], ecx
mov eax, dword [eax + 0x30]
mov dword [edx + 0x1c], eax
dec word [edx + 0x20]
mov byte [edx + 1], 0x44
jmp case.0x4a0102.21
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
mov eax, dword [edi + 0x18]
test al, 0x28
mov dword [esp + 0x28], edi
je 0x4a0537
mov ecx, str.index_expressions
test al, 0x20
jne 0x4a04f8
mov ecx, str.CHECK_constraints
test al, 4
jne 0x4a04f8
test al, 8
mov eax, str.partial_index_WHERE_clauses
mov ecx, str.generated_columns
cmove ecx, eax
push ecx
push str.the__.__operator
push str._s_prohibited_in__s
mov edi, dword [esp + 0xc]
push edi
call fcn.00434540
add esp, 0x10
mov eax, dword [edi]
mov ecx, dword [ebp + 0xc]
jmp 0x4a0527
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4a0537
test byte [ecx + 4], 3
jne 0x4a0520
mov edx, dword [ecx + 0x24]
test edx, edx
jle 0x4a0520
mov dword [eax + 0x44], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
xor eax, eax
cmp byte [ecx], 0x3b
je 0x4a054d
mov eax, dword [esi + 8]
mov esi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 8]
mov dword [esp + 8], edx
mov edx, dword [ecx + 8]
mov dword [esp + 4], edx
mov edx, dword [esp]
cmp byte [edx + 0xd0], 2
jb 0x4a0aa2
mov edx, dword [esp]
mov edx, dword [edx + 0x10c]
test edx, edx
je 0x4a0aa2
mov edi, edx
nop
cmp dword [edi], ecx
je 0x4a083e
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x4a0580
jmp 0x4a084c
mov eax, dword [edi + 0x18]
test al, 0x2e
je case.0x4a0102.21
mov ecx, str.index_expressions
test al, 0x20
jne 0x4a05c0
mov ecx, str.CHECK_constraints
test al, 4
jne 0x4a05c0
test al, 8
mov eax, str.partial_index_WHERE_clauses
mov ecx, str.generated_columns
cmove ecx, eax
push ecx
push str.parameters
push str._s_prohibited_in__s
mov esi, dword [esp + 0xc]
push esi
call fcn.00434540
add esp, 0x10
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x79
mov eax, dword [esi]
jmp 0x4a0603
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x44], ecx
test ecx, ecx
je case.0x4a0102.21
mov ecx, dword [esp + 0x44]
test byte [ecx + 4], 3
jne 0x4a05f0
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
jle 0x4a05f0
jmp 0x4a07f4
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x14]
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
test ebx, ebx
je 0x4a063d
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov ecx, dword [eax]
movzx eax, byte [ecx + 0x54]
mov edx, 0x4001
mov esi, dword [ebp + 0xc]
test byte [esi + 7], 1
je 0x4a066c
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x2c]
xor esi, esi
cmp byte [edx + 0x10], 0xa6
cmovne esi, edx
mov dword [esp + 4], esi
mov edx, 0x4001
lea esi, [edi + 0x18]
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], edi
and edx, dword [edi + 0x18]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0xc]
mov edi, dword [edx + 8]
movzx esi, al
mov edx, edi
push 0
push esi
push dword [esp + 0x14]
call fcn.0043a9a0
add esp, 0xc
test eax, eax
je 0x4a080f
mov edx, eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0x3c], eax
test eax, eax
setne al
mov dword [esp + 0x1c], eax
test byte [edx + 5], 4
mov eax, dword [esp]
mov dword [esp + 8], edx
je 0x4a0887
mov esi, dword [ebp + 0xc]
or byte [esi + 6], 8
cmp dword [esp + 0xc], 2
jne 0x4a086e
mov ecx, dword [ebx + 0x18]
call fcn.004a2d90
mov edx, dword [esp + 8]
mov dword [esi + 0x1c], eax
test eax, eax
mov eax, dword [esp]
jns 0x4a0887
push dword [ebp + 0xc]
push str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
push eax
call fcn.00434540
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0x28]
inc dword [ecx + 0x14]
jmp 0x4a0887
movzx eax, byte [edi]
cmp eax, 0xaa
je 0x4a0727
cmp eax, 0x3b
jne case.0x4a0102.48
push edi
push ecx
call fcn.004a00d0
add esp, 8
mov ebx, 2
cmp eax, 2
je 0x4a0805
cmp byte [edi], 0xaa
jne case.0x4a0102.48
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
mov byte [ecx + 2], al
mov byte [ecx], 0xaf
xor ebx, ebx
jmp 0x4a0805
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
call fcn.0049a080
cmp ebx, dword [edi + 0x10]
je case.0x4a0102.21
mov ecx, dword [ebp + 0xc]
or byte [ecx + 4], 0x40
or byte [edi + 0x18], 0x40
jmp case.0x4a0102.21
mov edx, dword [edx + 0x14]
add edx, 0x1c
mov edx, dword [edx]
mov esi, dword [edx]
cmp esi, eax
jne 0x4a07ac
mov ecx, dword [ecx + 0x18]
movzx edx, byte [ecx]
cmp dl, 0xb0
jne 0x4a0799
movzx edx, byte [ecx + 2]
cmp dl, 0x8a
jne 0x4a0450
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov esi, dword [ecx]
cmp eax, esi
je case.0x4a0102.21
push str.row_value_misused
mov esi, dword [esp + 4]
push esi
call fcn.00434540
add esp, 8
mov eax, dword [esi]
jmp 0x4a07df
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x44], ecx
test ecx, ecx
je case.0x4a0102.21
mov ecx, dword [esp + 0x44]
test byte [ecx + 4], 3
jne 0x4a07d0
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
jle 0x4a07d0
mov dword [eax + 0x44], ecx
xor ebx, ebx
mov eax, dword [esp]
cmp dword [eax + 0x24], 0
setne bl
add ebx, ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp]
mov ecx, dword [eax]
mov edx, edi
push 0
push esi
push 0xfffffffffffffffe
call fcn.0043a9a0
mov edi, dword [esp + 0xc]
add esp, 0xc
mov edx, eax
test eax, eax
sete byte [esp + 0x2c]
setne al
mov dword [esp + 0x3c], eax
xor eax, eax
jmp 0x4a09af
mov ecx, dword [ebp + 0xc]
mov dword [edi], ecx
mov ecx, dword [esp]
mov edx, dword [ecx + 0x10c]
test edx, edx
je 0x4a0aa2
mov ecx, dword [ebp + 0xc]
add ecx, 0x2c
cmp dword [edx], esi
je 0x4a0aa0
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4a085a
jmp 0x4a0aa2
mov eax, dword [edx + 0x20]
cmp byte [eax], 0x75
mov eax, 0x800000
mov ecx, 0x7800000
cmove ecx, eax
mov dword [esi + 0x1c], ecx
mov eax, dword [esp]
mov eax, dword [eax]
mov ecx, dword [eax + 0x168]
test ecx, ecx
mov esi, dword [esp + 0x10]
je 0x4a08b4
cmp byte [eax + 0xb1], 0
jne 0x4a08b4
mov edx, dword [esp]
cmp byte [edx + 0xd0], 0
mov edx, dword [esp + 8]
je 0x4a1b38
mov eax, dword [edx + 4]
test eax, 0x2800
je 0x4a08c8
mov eax, dword [ebp + 0xc]
or byte [eax + 6], 0x10
mov eax, dword [edx + 4]
mov ecx, dword [esi]
test eax, 0x800
jne 0x4a08f5
test cl, 0x2a
je 0x4a090b
mov ecx, dword [esp]
mov edx, dword [esp + 0x28]
push dword [ebp + 0xc]
push 0
push str.non_deterministic_functions
call fcn.004a2d10
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x4a090b
and cl, 0x2e
mov eax, dword [ebp + 0xc]
mov byte [eax + 2], cl
test byte [esi + 2], 4
je 0x4a090b
mov eax, dword [ebp + 0xc]
or byte [eax + 7], 0x40
mov eax, dword [edx + 4]
test eax, 0x40000
mov edi, dword [esp]
je 0x4a0976
cmp byte [edi + 0x12], 0
jne 0x4a0976
mov ecx, dword [esp]
mov ecx, dword [ecx]
test byte [ecx + 0x18], 0x20
mov edi, dword [esp]
jne 0x4a0976
xor eax, eax
mov edx, dword [esp + 0x3c]
test edx, edx
setne byte [esp + 8]
lea ecx, [edi + 0xd0]
cmp byte [edi + 0xd0], 1
mov dword [esp + 0xc], ecx
ja 0x4a1f1f
mov dword [esp + 8], 0
mov byte [esp + 0x2c], 1
test edx, edx
je 0x4a2222
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xc]
jmp 0x4a0a04
mov cl, 1
mov dword [esp + 0x3c], ecx
test eax, 0x280000
je 0x4a09a6
cmp byte [edi + 0xd0], 1
ja 0x4a09a6
mov ecx, dword [esp]
mov edx, dword [ebp + 0xc]
push dword [esp + 8]
call fcn.00497540
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 4]
add esp, 4
mov byte [esp + 0x2c], 1
mov eax, dword [esp + 0x1c]
movzx esi, al
lea eax, [edi + 0xd0]
cmp byte [edi + 0xd0], 2
mov dword [esp + 8], edx
jae 0x4a09e8
test edx, edx
je 0x4a0a00
mov edx, dword [esp + 8]
cmp dword [edx + 0x18], 0
jne 0x4a0a00
mov edx, str._T___may_not_be_used_as_a_window_function
cmp dword [esp + 4], 0
je 0x4a0a00
mov dword [esp + 0xc], eax
jmp 0x4a226c
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
mov edi, 1
cmove edi, esi
jmp 0x4a22a2
test esi, esi
je 0x4a0a78
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 4]
test dl, 1
mov dword [esp + 0xc], eax
je 0x4a0a40
test ecx, 0x10000
je 0x4a0a29
cmp dword [esp + 4], 0
je 0x4a0a40
cmp dword [esp + 4], 0
je 0x4a1f99
and edx, 0x4000
jne 0x4a1f99
and ecx, 0x10000
mov eax, str.window
mov edx, str.aggregate
or ecx, dword [esp + 4]
cmovne edx, eax
push dword [ebp + 0xc]
push edx
push str.misuse_of__s_function__T__
push dword [esp + 0xc]
call fcn.00434540
add esp, 0x10
mov eax, dword [esp + 0x28]
inc dword [eax + 0x14]
jmp 0x4a22a0
mov dword [esp + 0xc], eax
xor esi, esi
cmp byte [esp + 0x3c], 0
je 0x4a2224
cmp byte [esp + 0x2c], 0
jne 0x4a2247
xor esi, esi
mov edx, str.wrong_number_of_arguments_to_function__T__
jmp 0x4a226c
mov dword [edx], ecx
mov edi, dword [esp]
mov edx, dword [edi]
mov esi, dword [ebp + 0xc]
lea ecx, [esi + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esi + 0x1c], 0xffffffff
test eax, eax
mov dword [esp + 0x38], edx
je 0x4a0ace
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x18], 6
je 0x4a1876
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
mov dword [esp + 8], eax
test eax, eax
sete al
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xc]
add eax, 0x2c
mov dword [esp + 0x54], eax
lea eax, [edi + 0x78]
mov dword [esp + 0x50], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x90], eax
xor edx, edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x24], 0
jmp 0x4a0b5a
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
inc dword [esp + 0x8c]
test eax, eax
mov edx, dword [esp + 0x14]
je 0x4a1979
mov dword [esp + 0x30], eax
mov eax, dword [eax + 4]
test eax, eax
je 0x4a12c9
cmp dword [eax], 0
jle 0x4a12cd
mov dword [esp + 0x98], eax
lea ecx, [eax + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x94], 0
mov edi, dword [esp + 4]
jmp 0x4a0be7
mov eax, dword [esi + 0x1c]
mov ecx, 0x200
and eax, ecx
mov ecx, eax
shr ecx, 9
xor ecx, 1
add dword [esp + 0x48], ecx
test eax, eax
mov eax, dword [esp + 0x24]
cmove eax, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], 0
mov edx, ebx
mov esi, dword [esp + 0x94]
inc esi
mov ecx, dword [esp + 0x18]
add ecx, 0x40
mov eax, dword [esp + 0x98]
mov dword [esp + 0x94], esi
cmp esi, dword [eax]
jge 0x4a12d5
mov esi, dword [ecx + 0x10]
test byte [ecx + 0x26], 0x20
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], esi
jne 0x4a0c10
cmp dword [esp + 8], 0
jne 0x4a0ed8
jmp 0x4a0ff0
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x1c]
mov edi, dword [ecx]
test edi, edi
jle 0x4a0eb2
mov dword [esp + 0x4c], 0
xor esi, esi
mov ebx, edx
mov dword [esp + 0x10], ecx
jmp 0x4a0c59
mov edx, ebx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
inc esi
mov ebx, edx
cmp esi, edi
jge 0x4a0eba
mov dword [esp + 0x3c], edi
mov dword [esp + 0xc], esi
shl esi, 4
add ecx, esi
add ecx, 8
mov edx, dword [esp + 4]
push dword [esp + 0x2c]
push dword [esp + 0xc]
call fcn.004a30c0
add esp, 8
test eax, eax
je 0x4a0c40
cmp dword [esp + 0x1c], 0
jle 0x4a0d30
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x18]
test byte [eax + 0x26], 4
je 0x4a0d00
mov edi, dword [eax + 0x2c]
mov eax, dword [edi]
mov dword [esp + 0x9c], eax
test eax, eax
jle 0x4a0d00
xor eax, eax
mov dword [esp + 0x5c], eax
mov ecx, dword [edi + eax*8 + 8]
xor eax, eax
jmp 0x4a0cd0
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ebx + 0x52a853]
jne 0x4a0cf0
inc eax
movzx edx, byte [ecx + eax]
mov ebx, dword [esp + 4]
movzx ebx, byte [ebx + eax]
cmp dl, bl
jne 0x4a0cc0
test edx, edx
jne 0x4a0ccf
jmp 0x4a0d8b
mov eax, dword [esp + 0x5c]
inc eax
cmp eax, dword [esp + 0x9c]
jne 0x4a0cac
nop
mov ebx, esi
xor esi, esi
mov edx, dword [esp + 0x14]
test edx, edx
mov ecx, dword [esp + 0x10]
je 0x4a0d3a
mov ecx, dword [esp + 0x38]
call fcn.00475f10
mov ecx, dword [esp + 0x10]
xor esi, esi
jmp 0x4a0d3a
mov eax, ebx
mov ebx, esi
mov esi, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
mov word [eax + 0x20], dx
mov edx, ebx
movzx eax, word [ecx + ebx + 0x11]
mov ecx, eax
or ecx, 0x40
mov ebx, dword [esp + 0x10]
mov word [ebx + edx + 0x11], cx
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x1c]
test al, 0x80
jne 0x4a0f8d
mov edi, dword [ecx]
mov dword [esp + 0x4c], 1
mov dword [esp + 0x48], 2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edx, esi
jmp 0x4a0c4a
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x24]
test al, 0x10
jne 0x4a0da0
mov edx, dword [esp + 0x14]
jmp 0x4a0c42
test al, 8
jne 0x4a0ddc
mov ebx, esi
xor esi, esi
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
test edx, edx
mov ecx, dword [esp + 0x10]
je 0x4a0d3a
mov ecx, dword [esp + 0x38]
call fcn.00475f10
mov ecx, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x1c], 0
jmp 0x4a0d3a
mov eax, dword [ebp + 0xc]
movzx edi, word [eax + 0x20]
mov eax, dword [esp]
mov ecx, dword [eax]
mov edx, 0x34
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x4a0e81
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0xa7
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x1c], ecx
mov word [eax + 0x20], di
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov dword [eax + 4], 0x200000
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4a0e8c
mov edx, ecx
mov ebx, esi
mov ecx, dword [ecx]
cmp dword [edx + 4], ecx
jle 0x4a0e9f
lea esi, [ecx + 1]
mov dword [edx], esi
shl ecx, 4
mov dword [edx + ecx + 0x10], 0
mov dword [edx + ecx + 0xc], 0
mov dword [edx + ecx + 0x14], 0
mov dword [edx + ecx + 8], eax
mov esi, edx
jmp 0x4a0d36
mov ebx, esi
mov esi, dword [esp + 0x14]
jmp 0x4a0d36
mov ebx, esi
mov ecx, dword [esp]
mov ecx, dword [ecx]
mov edx, eax
call fcn.004ca190
jmp 0x4a0d34
mov ecx, dword [esp]
mov ecx, dword [ecx]
push eax
call fcn.004ca1f0
add esp, 4
jmp 0x4a0d34
mov dword [esp + 0x4c], 0
cmp dword [esp + 8], 0
je 0x4a0fa8
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x34]
jne 0x4a0bc2
cmp dword [esp + 0x2c], 0
je 0x4a0ef7
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x3c], eax
jne 0x4a0bc2
cmp dword [esp + 0x20], 0
je 0x4a0fbb
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
mov ecx, esi
test esi, esi
jne 0x4a0f0e
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
xor edx, edx
jmp 0x4a0f25
test ebx, ebx
je 0x4a0f4d
inc edx
movzx ebx, byte [ecx + edx]
mov eax, dword [esp + 8]
movzx eax, byte [eax + edx]
cmp bl, al
je 0x4a0f20
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [eax + 0x52a853]
je 0x4a0f24
mov edx, dword [esp + 0x14]
jmp 0x4a0bc2
mov eax, dword [esp]
cmp byte [eax + 0xd0], 2
jb 0x4a0fb1
test esi, esi
mov edx, dword [esp + 0x14]
je 0x4a0fdd
mov eax, dword [eax + 0x10c]
test eax, eax
mov esi, dword [esp + 0x34]
je 0x4a0ff0
mov ecx, dword [esp + 0x54]
nop word [eax + eax]
cmp dword [eax], ecx
je 0x4a0fe3
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a0f80
jmp 0x4a0ff0
mov dword [esp + 0x48], 2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 4]
mov edx, esi
jmp 0x4a0bc2
mov edi, dword [esp + 4]
jmp 0x4a0bc2
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
jmp 0x4a0ff0
push 0x531c90
push dword [esp + 0x30]
mov esi, edx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
mov edx, esi
add esp, 8
test eax, eax
jne 0x4a0bc2
jmp 0x4a0ef7
mov esi, dword [esp + 0x34]
jmp 0x4a0ff0
mov dword [eax], 0
nop dword [eax]
test edi, edi
mov dword [esp + 0x14], edx
je 0x4a1023
movzx ecx, byte [edi]
xor ebx, ebx
test cl, cl
je 0x4a1025
mov edx, dword [esp + 0x90]
nop dword [eax + eax]
movzx eax, cl
add bl, byte [eax + 0x52a853]
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4a1010
jmp 0x4a1025
xor ebx, ebx
movsx eax, word [esi + 0x22]
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4a1137
mov edx, dword [esi + 4]
xor eax, eax
mov dword [esp + 0x3c], ebx
jmp 0x4a106a
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x24]
test al, 0x10
mov edi, dword [esp + 4]
jne 0x4a116b
mov eax, dword [esp + 0xc]
inc eax
add edx, 0xc
cmp eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
je 0x4a114f
mov dword [esp + 0xc], eax
cmp byte [edx + 7], bl
jne 0x4a1054
mov ecx, dword [edx]
xor esi, esi
jmp 0x4a1090
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [eax + 0x52a853]
jne 0x4a1054
inc esi
movzx ebx, byte [ecx + esi]
movzx eax, byte [edi + esi]
cmp bl, al
jne 0x4a1080
test ebx, ebx
jne 0x4a108f
cmp dword [esp + 0x1c], 0
jle 0x4a124b
mov eax, dword [esp + 0x18]
test byte [eax + 0x26], 4
je 0x4a111b
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
test ecx, ecx
jle 0x4a111b
xor edi, edi
mov dword [esp + 0x5c], eax
mov ebx, dword [eax + edi*8 + 8]
xor esi, esi
jmp 0x4a10f0
movzx ecx, byte [ecx + 0x52a853]
cmp cl, byte [eax + 0x52a853]
jne 0x4a1110
inc esi
movzx ecx, byte [ebx + esi]
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
cmp cl, al
jne 0x4a10e0
test ecx, ecx
jne 0x4a10ef
jmp 0x4a1040
inc edi
cmp edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x5c]
jne 0x4a10cc
xor ebx, ebx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4a112e
mov ecx, dword [esp + 0x38]
call fcn.00475f10
mov edi, dword [esp + 4]
jmp 0x4a124f
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
jne 0x4a0bc0
jmp 0x4a0b95
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x1c], 0
jne 0x4a0bc0
jmp 0x4a0b95
test al, 8
jne 0x4a11a1
xor ebx, ebx
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
test edx, edx
mov esi, dword [esp + 0x34]
je 0x4a1253
mov ecx, dword [esp + 0x38]
call fcn.00475f10
xor ebx, ebx
mov dword [esp + 0x1c], 0
jmp 0x4a1253
mov eax, dword [ebp + 0xc]
movzx esi, word [eax + 0x20]
mov eax, dword [esp]
mov ecx, dword [eax]
mov edx, 0x34
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x4a124b
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0xa7
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x1c], ecx
mov word [eax + 0x20], si
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov dword [eax + 4], 0x200000
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4a12a7
mov ecx, dword [edx]
cmp dword [edx + 4], ecx
mov esi, dword [esp + 0x34]
jle 0x4a12b7
mov ebx, edx
lea edx, [ecx + 1]
mov dword [ebx], edx
shl ecx, 4
mov dword [ebx + ecx + 0x10], 0
mov dword [ebx + ecx + 0xc], 0
mov dword [ebx + ecx + 0x14], 0
mov dword [ebx + ecx + 8], eax
jmp 0x4a1253
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
inc dword [esp + 0x1c]
movsx eax, word [esi + 0x20]
mov ebx, dword [esp + 0xc]
cmp ebx, eax
mov eax, ebx
mov ecx, 0xffff
cmove eax, ecx
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x20], ax
mov edx, dword [esp + 0x18]
test byte [edx + 0x26], 0x20
je 0x4a128f
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
shl ebx, 4
or word [eax + ebx + 0x11], 0x40
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x1c], 0
jne 0x4a0bc0
jmp 0x4a0b95
mov ecx, dword [esp]
mov ecx, dword [ecx]
mov edx, eax
call fcn.004ca190
mov ebx, eax
jmp 0x4a124f
mov ecx, dword [esp]
mov ecx, dword [ecx]
push eax
call fcn.004ca1f0
add esp, 4
mov ebx, eax
jmp 0x4a1253
xor edi, edi
jmp 0x4a1315
mov dword [esp + 0x1c], 0
mov edi, edx
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4a1307
mov eax, dword [edx + 0x28]
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
test byte [edx + 0x24], 0x48
je 0x4a12fe
mov ecx, dword [ebp + 0xc]
or byte [ecx + 6], 0x20
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x20], eax
jmp 0x4a130f
mov dword [esp + 0x24], 0
mov edx, edi
mov edi, dword [esp + 0x1c]
test edi, edi
mov dword [esp + 0x14], edx
jne 0x4a1658
cmp dword [esp + 0x2c], 0
jne 0x4a1658
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
xor esi, esi
test eax, eax
je 0x4a139b
mov edi, dword [esp]
movzx ebx, byte [edi + 0x94]
cmp byte [edi + 0x95], 0
je 0x4a13a3
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x19], 4
je 0x4a1458
mov byte [esp + 0xc], bl
mov edi, dword [esp + 8]
test edi, edi
je 0x4a143b
mov eax, dword [eax]
xor edx, edx
jmp 0x4a1379
test ebx, ebx
je 0x4a143b
inc edx
movzx ebx, byte [edi + edx]
movzx ecx, byte [eax + edx]
cmp bl, cl
je 0x4a1370
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [ecx + 0x52a853]
je 0x4a1378
xor esi, esi
jmp 0x4a1451
mov edi, dword [esp]
jmp 0x4a1458
mov edi, dword [esp + 8]
test edi, edi
je 0x4a13ea
cmp bl, 0x80
je 0x4a13ea
xor eax, eax
jmp 0x4a13d0
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ecx + 0x52a853]
jne 0x4a13ea
inc eax
movzx edx, byte [eax + 0x531c92]
movzx ecx, byte [edi + eax]
cmp dl, cl
jne 0x4a13c0
test edx, edx
jne 0x4a13cf
mov eax, 1
jmp 0x4a1445
test edi, edi
je 0x4a1451
cmp bl, 0x7f
mov edi, dword [esp]
mov edx, dword [esp + 0x14]
je 0x4a1458
xor eax, eax
mov edi, dword [esp + 8]
jmp 0x4a1424
movzx ecx, byte [ecx + 0x52a853]
cmp cl, byte [edx + 0x52a853]
jne 0x4a1394
inc eax
movzx ecx, byte [eax + 0x531c96]
movzx edx, byte [edi + eax]
cmp cl, dl
jne 0x4a1410
test ecx, ecx
jne 0x4a1423
xor eax, eax
jmp 0x4a1445
xor eax, eax
cmp byte [esp + 0xc], 0x80
setne al
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
mov eax, dword [esp + 0x50]
mov esi, dword [eax]
mov edi, dword [esp]
mov edx, dword [esp + 0x14]
cmp dword [esp + 8], 0
je 0x4a14ba
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x18]
mov edx, 0x200
and eax, edx
je 0x4a14b6
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4a14b3
xor eax, eax
mov edi, dword [esp + 8]
jmp 0x4a1490
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ebx + 0x52a853]
jne 0x4a14b3
inc eax
movzx edx, byte [eax + str.excluded]
movzx ebx, byte [edi + eax]
cmp dl, bl
jne 0x4a1480
test edx, edx
jne 0x4a148f
mov eax, dword [ecx + 0x20]
mov esi, dword [eax + 0x18]
mov eax, dword [esp + 0x40]
mov dword [eax], 2
mov edi, dword [esp]
mov edx, dword [esp + 0x14]
test esi, esi
je 0x4a1656
xor ecx, ecx
mov eax, dword [esp + 4]
test eax, eax
je 0x4a14f3
movzx eax, byte [eax]
xor ebx, ebx
test al, al
je 0x4a14f5
mov edx, dword [esp + 0x90]
nop dword [eax]
movzx eax, al
add bl, byte [eax + 0x52a853]
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4a14e0
jmp 0x4a14f5
xor ebx, ebx
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x20], eax
movsx eax, word [esi + 0x22]
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4a157d
mov dword [esp + 0x1c], esi
xor eax, eax
mov edi, dword [esp + 0x18]
jmp 0x4a152d
mov eax, dword [esp + 0xc]
inc eax
add edi, 0xc
cmp eax, dword [esp + 0x10]
je 0x4a17f6
mov dword [esp + 0xc], eax
cmp byte [edi + 7], bl
jne 0x4a151b
mov esi, dword [edi]
xor eax, eax
jmp 0x4a1550
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ecx + 0x52a853]
jne 0x4a151b
inc eax
movzx edx, byte [esi + eax]
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax]
cmp dl, cl
jne 0x4a1540
test edx, edx
jne 0x4a154f
mov esi, dword [esp + 0x1c]
movsx eax, word [esi + 0x20]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov edi, dword [esp]
cmp ecx, dword [esp + 0x10]
jl 0x4a1644
mov dword [esp + 0xc], ecx
xor eax, eax
mov edi, dword [esp + 4]
jmp 0x4a15a9
test edx, edx
je 0x4a162c
inc eax
movzx edx, byte [edi + eax]
movzx ecx, byte [eax + str._ROWID_]
cmp dl, cl
je 0x4a15a0
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ecx + 0x52a853]
je 0x4a15a8
xor edx, edx
jmp 0x4a15d5
test eax, eax
je 0x4a162c
inc edx
movzx eax, byte [edi + edx]
movzx ecx, byte [edx + str.ROWID]
cmp al, cl
je 0x4a15d0
movzx eax, byte [eax + 0x52a853]
cmp al, byte [ecx + 0x52a853]
je 0x4a15d4
xor eax, eax
jmp 0x4a1605
test edx, edx
je 0x4a162c
inc eax
movzx edx, byte [edi + eax]
movzx ecx, byte [eax + 0x537a8e]
cmp dl, cl
je 0x4a1600
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ecx + 0x52a853]
je 0x4a1604
mov edi, dword [esp]
mov ecx, dword [esp + 0xc]
jmp 0x4a1644
movzx eax, byte [esi + 0x1d]
and al, 2
cmp al, 1
mov eax, 0
sbb eax, eax
mov ecx, dword [esp + 0xc]
or ecx, eax
mov edi, dword [esp]
cmp ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jl 0x4a1a17
inc dword [esp + 0x48]
xor edi, edi
test edi, edi
jne 0x4a1735
cmp dword [esp + 0x48], 1
jne 0x4a1735
cmp dword [esp + 0x24], 0
je 0x4a1735
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x48], 1
mov dword [esp + 0x18], eax
test al, 0x28
jne 0x4a1748
xor ecx, ecx
mov edi, dword [esp + 4]
jmp 0x4a16a5
test eax, eax
je 0x4a1723
inc ecx
movzx eax, byte [edi + ecx]
movzx edx, byte [ecx + str._ROWID_]
cmp al, dl
je 0x4a16a0
movzx eax, byte [eax + 0x52a853]
cmp al, byte [edx + 0x52a853]
je 0x4a16a4
xor ecx, ecx
jmp 0x4a16d5
test eax, eax
je 0x4a1723
inc ecx
movzx eax, byte [edi + ecx]
movzx edx, byte [ecx + str.ROWID]
cmp al, dl
je 0x4a16d0
movzx eax, byte [eax + 0x52a853]
cmp al, byte [edx + 0x52a853]
je 0x4a16d4
xor ecx, ecx
jmp 0x4a1710
movzx eax, byte [eax + 0x52a853]
cmp al, byte [edx + 0x52a853]
jne 0x4a1748
inc ecx
movzx eax, byte [edi + ecx]
movzx edx, byte [ecx + 0x537a8e]
cmp al, dl
jne 0x4a1700
test eax, eax
jne 0x4a170f
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test byte [eax + 0x1d], 2
jne 0x4a1748
jmp 0x4a1b95
test edi, edi
jne 0x4a19b9
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
cmp dword [esp + 8], 0
jne 0x4a0b40
mov eax, dword [esp + 0x18]
and eax, 0x80
je 0x4a0b40
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4a0b40
xor esi, esi
jmp 0x4a179b
cmp dword [esp + 4], 0
je 0x4a1803
nop word cs:[eax + eax]
inc esi
cmp esi, dword [esp + 0x10]
je 0x4a0b40
mov ebx, esi
shl ebx, 4
mov eax, dword [esp + 0xc]
test byte [eax + ebx + 0x11], 3
jne 0x4a1790
mov eax, dword [esp + 0xc]
mov edi, dword [eax + ebx + 0xc]
test edi, edi
je 0x4a177f
cmp dword [esp + 4], 0
je 0x4a1790
xor eax, eax
jmp 0x4a17e0
movzx ecx, byte [ecx + 0x52a853]
cmp cl, byte [edx + 0x52a853]
jne 0x4a1790
inc eax
movzx ecx, byte [edi + eax]
mov edx, dword [esp + 4]
movzx edx, byte [edx + eax]
cmp cl, dl
jne 0x4a17d0
test ecx, ecx
jne 0x4a17df
jmp 0x4a1803
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jmp 0x4a1587
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + ebx + 8]
mov eax, dword [ecx + 4]
test byte [esp + 0x18], 1
jne 0x4a1827
mov edx, eax
and edx, 0x10
je 0x4a1827
push edi
push str.misuse_of_aliased_aggregate__s
jmp 0x4a18e9
test eax, 0x8000
je 0x4a184a
test dword [esp + 0x18], 0x4000
je 0x4a18e3
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
jne 0x4a18e3
movzx eax, byte [ecx]
cmp al, 0xb0
jne 0x4a1855
movzx eax, byte [ecx + 2]
cmp al, 0x8a
mov ebx, dword [ebp + 0xc]
je 0x4a18ff
movzx eax, al
cmp eax, 0xb1
jne 0x4a190c
add ecx, 0x14
jmp 0x4a1905
mov ecx, dword [edx + 0x14]
test ecx, ecx
jle 0x4a19cc
mov edx, dword [edx + 0x10]
xor edi, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], edi
shl edi, 4
mov ebx, dword [edx + edi]
xor esi, esi
jmp 0x4a18b0
movzx ecx, byte [ecx + 0x52a853]
cmp cl, byte [edx + 0x52a853]
jne 0x4a18c5
inc esi
movzx ecx, byte [ebx + esi]
movzx edx, byte [eax + esi]
cmp cl, dl
jne 0x4a18a0
test ecx, ecx
jne 0x4a18af
jmp 0x4a19a0
mov edi, dword [esp + 0xc]
inc edi
mov ecx, dword [esp + 0x10]
cmp edi, ecx
mov edx, dword [esp + 0x18]
jne 0x4a188e
mov dword [esp + 0x20], 0
jmp 0x4a19da
push edi
push str.misuse_of_aliased_window_function__s
push dword [esp + 8]
call fcn.00434540
add esp, 0xc
mov ebx, 2
jmp 0x4a0805
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov eax, dword [ecx]
cmp dword [eax], 1
jne 0x4a1955
mov edi, dword [esp]
mov ecx, edi
mov edx, dword [esp + 0xc]
push dword [esp + 0x8c]
push ebx
push esi
call fcn.004a3230
add esp, 0xc
cmp byte [edi + 0xd0], 2
jb 0x4a1970
mov eax, dword [edi + 0x10c]
test eax, eax
mov esi, dword [esp + 0x20]
je 0x4a26ca
cmp dword [eax], ebx
je 0x4a1ae0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a1941
jmp 0x4a26ca
push str.row_value_misused
push dword [esp + 4]
call fcn.00434540
add esp, 8
mov ebx, 2
jmp 0x4a0805
mov esi, dword [esp + 0x20]
jmp 0x4a26ca
mov esi, str.no_such_column
cmp dword [esp + 8], 0
je 0x4a1a55
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x58], 0
jmp 0x4a1a84
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + edi + 0xc]
mov dword [esp + 0x20], ecx
mov edi, dword [esp]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4a19d6
mov esi, str.ambiguous_column_name
cmp edi, 1
jne 0x4a1a84
jmp 0x4a1ba2
xor edx, edx
mov dword [esp + 0x20], 0
cmp edx, ecx
jne 0x4a1a0e
xor ecx, ecx
jmp 0x4a19e7
test edx, edx
je 0x4a1aeb
inc ecx
movzx edx, byte [ecx + str.main]
movzx ebx, byte [eax + ecx]
cmp dl, bl
je 0x4a19de
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ebx + 0x52a853]
je 0x4a19e6
mov dword [esp + 0x2c], eax
jmp 0x4a1aff
mov dword [esp + 0x2c], eax
jmp 0x4a0ade
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
cmp esi, 2
mov dword [esp + 0xc], ecx
jne 0x4a1bae
cmp byte [edi + 0xd0], 2
jb 0x4a1fdc
mov edx, dword [ebp + 0xc]
mov word [edx + 0x20], cx
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x2c], eax
mov edi, 1
mov bl, 0xa7
jmp 0x4a25cd
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 4]
test bl, 0x80
jne 0x4a1daf
mov al, 1
mov dword [esp + 0x58], eax
xor edi, edi
test ebx, 0x4000800
je 0x4a219c
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4a1b10
lea eax, [edi - 1]
cmp dword [edx], eax
jne 0x4a1b07
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
test eax, 0x800000
jne 0x4a1e1f
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
mov esi, dword [esp + 0x38]
je 0x4a1ab9
mov ecx, esi
call fcn.00469350
mov eax, dword [ebp + 0xc]
mov dword [eax + 0xc], 0
mov edx, dword [eax + 0x10]
test edx, edx
je 0x4a1ad1
mov ecx, esi
call fcn.00469350
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x10], 0
jmp 0x4a1e2a
mov dword [eax], 0
jmp 0x4a26ca
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
mov edi, dword [esp]
jmp 0x4a0ade
mov ecx, dword [esp + 0x38]
call fcn.00475f10
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a1b6f
push dword [esp + 4]
push dword [esp + 0xc]
push eax
push esi
push str._s:__s._s._s
push dword [esp + 0x14]
call fcn.00434540
add esp, 0x18
jmp 0x4a1f4f
mov edi, edx
mov edx, dword [esp]
push dword [edx + 0xf8]
push 0
push dword [edi + 0x20]
push 0
push 0x1f
push dword [eax + 0x16c]
call ecx
add esp, 0x18
cmp eax, 1
jne 0x4a1ed1
mov esi, 0x17
mov eax, str.not_authorized
jmp 0x4a1ee6
cmp byte [esp + 0x58], 0
je 0x4a1f35
push dword [esp + 4]
push esi
push str._s:__s
push dword [esp + 0xc]
call fcn.00434540
add esp, 0x10
jmp 0x4a1f4f
mov eax, dword [ebp + 0xc]
mov word [eax + 0x20], 0xffff
mov byte [eax + 1], 0x44
mov edi, 1
mov bl, 0xa7
jmp 0x4a25d5
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
cmp byte [edi + 0x95], 0
je 0x4a21d9
mov eax, dword [ebp + 0xc]
mov byte [eax + 2], 0xa7
movsx edx, word [ecx + 0x22]
inc edx
imul edx, esi
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 8]
cmp word [esp + 0xc], 0
js 0x4a2219
mov eax, dword [ecx + 0x1c]
and eax, 0x20
je 0x4a2219
mov eax, dword [esp + 0xc]
movsx ebx, ax
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov ecx, eax
test cx, cx
mov eax, ebx
mov dword [esp + 8], ebx
je 0x4a2556
mov dword [esp + 0x10], 0
mov eax, ecx
shl eax, 0x10
mov edi, 0
cmp eax, 0x110000
jb 0x4a1d84
mov eax, ecx
and eax, 0xf
mov ecx, 0x10
cmovne ecx, eax
mov edi, ebx
sub edi, ecx
mov eax, dword [esp + 4]
lea ebx, [eax + 0xbe]
pxor xmm0, xmm0
movdqa xmm3, xmmword [0x5290b0]
mov dword [esp + 0x10], edi
pxor xmm1, xmm1
movzx eax, word [ebx - 0x60]
movd xmm4, eax
movzx eax, word [ebx - 0x6c]
movd xmm6, eax
punpcklwd xmm6, xmm4
movzx eax, word [ebx - 0x78]
movd xmm4, eax
movzx eax, word [ebx - 0x84]
movd xmm5, eax
punpcklwd xmm5, xmm4
punpckldq xmm5, xmm6
movzx eax, word [ebx - 0x90]
movd xmm4, eax
movzx eax, word [ebx - 0x9c]
movd xmm6, eax
punpcklwd xmm6, xmm4
movzx eax, word [ebx - 0xa8]
movd xmm7, eax
movzx eax, word [ebx - 0xb4]
movd xmm4, eax
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm6
punpcklqdq xmm4, xmm5
movzx eax, word [ebx]
movd xmm5, eax
movzx eax, word [ebx - 0xc]
movd xmm7, eax
punpcklwd xmm7, xmm5
movzx eax, word [ebx - 0x18]
movd xmm5, eax
movzx eax, word [ebx - 0x24]
movd xmm6, eax
punpcklwd xmm6, xmm5
punpckldq xmm6, xmm7
movzx eax, word [ebx - 0x30]
movd xmm5, eax
movzx eax, word [ebx - 0x3c]
movd xmm7, eax
punpcklwd xmm7, xmm5
movzx eax, word [ebx - 0x48]
movd xmm2, eax
movzx eax, word [ebx - 0x54]
movd xmm5, eax
punpcklwd xmm5, xmm2
punpckldq xmm5, xmm7
punpcklqdq xmm5, xmm6
pcmpeqd xmm2, xmm2
pxor xmm4, xmm2
psrlw xmm4, 5
pand xmm4, xmm3
paddw xmm0, xmm4
pxor xmm5, xmm2
psrlw xmm5, 5
pand xmm5, xmm3
paddw xmm1, xmm5
add ebx, 0xc0
add edi, 0xfffffff0
jne 0x4a1c5e
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edi, xmm0
mov ebx, dword [esp + 8]
mov eax, ebx
mov ecx, dword [esp + 0x10]
sub eax, ecx
lea ecx, [ecx + ecx*2]
mov ebx, dword [esp + 4]
lea ebx, [ebx + ecx*4]
add ebx, 0xa
movzx ecx, word [ebx]
bt ecx, 5
sbb di, 0xffff
add ebx, 0xc
dec eax
jne 0x4a1d99
jmp 0x4a2558
mov eax, dword [esp + 0x38]
cmp byte [eax + 0xb1], 0
jne 0x4a1dee
mov eax, dword [esp + 0x28]
test byte [eax + 0x1a], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x20]
mov edx, 0x1e
je 0x4a1de5
mov eax, ecx
and eax, 0x50000001
mov edx, 0x1d
cmp eax, 0x40000001
je 0x4a1dee
bt ecx, edx
jae 0x4a1a64
push dword [esp + 4]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.004287c0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x75
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov ebx, 1
jmp 0x4a0805
and eax, 0xff7fffff
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], eax
mov edi, dword [esp]
mov eax, dword [ebp + 0xc]
movzx esi, word [eax + 0x20]
mov ecx, dword [edi]
mov edx, 0x34
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x4a1f8f
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0xa7
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x1c], ecx
mov word [eax + 0x20], si
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov dword [eax + 4], 0x200000
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
cmp dword [edx + 4], ecx
jle 0x4a1fb0
lea edx, [ecx + 1]
mov esi, dword [esp + 0x14]
mov dword [esi], edx
mov edx, dword [esp + 0x14]
shl ecx, 4
mov dword [edx + ecx + 0x10], 0
mov dword [edx + ecx + 0xc], 0
mov dword [edx + ecx + 0x14], 0
mov dword [edx + ecx + 8], eax
jmp 0x4a1fc0
test eax, 0xfffffffd
je 0x4a24e3
mov esi, 1
mov eax, str.authorizer_malfunction
mov ebx, dword [ebp + 0xc]
push eax
mov edi, dword [esp + 4]
push edi
call fcn.00434540
mov eax, edi
add esp, 8
mov dword [edi + 0xc], esi
push ebx
push str.not_authorized_to_use_function:__T
push eax
call fcn.00434540
add esp, 0xc
mov eax, dword [esp + 0x28]
inc dword [eax + 0x14]
mov byte [ebx], 0x79
mov ebx, 1
jmp 0x4a0805
movzx ecx, byte [esp + 8]
mov al, cl
mov esi, eax
mov dword [esp + 8], 0
jmp 0x4a09ec
push dword [esp + 4]
push dword [esp + 0xc]
push esi
push str._s:__s._s
push dword [esp + 0x10]
call fcn.00434540
add esp, 0x14
cmp dword [ebp + 0xc], 0
mov esi, dword [esp + 0x20]
je 0x4a1f7a
mov eax, dword [esp]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
jmp 0x4a1f6a
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4a1f7a
test byte [ecx + 4], 3
jne 0x4a1f63
mov edx, dword [ecx + 0x24]
test edx, edx
jle 0x4a1f63
mov dword [eax + 0x44], edx
mov eax, dword [esp]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x28]
inc dword [eax + 0x14]
mov bl, 0xa7
jmp 0x4a25d9
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
jmp 0x4a1fc4
mov cl, 1
mov esi, 1
cmp byte [esp + 0x3c], 0
je 0x4a2226
jmp 0x4a2234
mov ecx, dword [esp]
mov ecx, dword [ecx]
push eax
call fcn.004ca1f0
add esp, 4
mov edx, eax
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
mov byte [eax], 0xac
mov dword [eax + 8], str.coalesce
mov dword [eax + 0x14], edx
mov edi, dword [esp]
jmp 0x4a26ca
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
mov esi, dword [eax + 0x24]
test cx, cx
js 0x4a25ae
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
and eax, 0x20
je 0x4a25ae
movsx ebx, cx
xor edx, edx
test cx, cx
je 0x4a258c
mov eax, ecx
shl eax, 0x10
mov edi, 0
cmp eax, 0x110000
jb 0x4a2175
mov eax, ecx
and eax, 0xf
mov ecx, 0x10
cmovne ecx, eax
mov edx, ebx
sub ebx, ecx
mov eax, dword [esp + 0x18]
lea edi, [eax + 0xbe]
pxor xmm0, xmm0
movdqa xmm3, xmmword [0x5290b0]
mov ecx, ebx
pxor xmm1, xmm1
movzx eax, word [edi - 0x60]
movd xmm4, eax
movzx eax, word [edi - 0x6c]
movd xmm6, eax
punpcklwd xmm6, xmm4
movzx eax, word [edi - 0x78]
movd xmm4, eax
movzx eax, word [edi - 0x84]
movd xmm5, eax
punpcklwd xmm5, xmm4
punpckldq xmm5, xmm6
movzx eax, word [edi - 0x90]
movd xmm4, eax
movzx eax, word [edi - 0x9c]
movd xmm6, eax
punpcklwd xmm6, xmm4
movzx eax, word [edi - 0xa8]
movd xmm7, eax
movzx eax, word [edi - 0xb4]
movd xmm4, eax
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm6
punpcklqdq xmm4, xmm5
movzx eax, word [edi]
movd xmm5, eax
movzx eax, word [edi - 0xc]
movd xmm7, eax
punpcklwd xmm7, xmm5
movzx eax, word [edi - 0x18]
movd xmm5, eax
movzx eax, word [edi - 0x24]
movd xmm6, eax
punpcklwd xmm6, xmm5
punpckldq xmm6, xmm7
movzx eax, word [edi - 0x30]
movd xmm5, eax
movzx eax, word [edi - 0x3c]
movd xmm7, eax
punpcklwd xmm7, xmm5
movzx eax, word [edi - 0x48]
movd xmm2, eax
movzx eax, word [edi - 0x54]
movd xmm5, eax
punpcklwd xmm5, xmm2
punpckldq xmm5, xmm7
punpcklqdq xmm5, xmm6
pcmpeqd xmm2, xmm2
pxor xmm4, xmm2
psrlw xmm4, 5
pand xmm4, xmm3
paddw xmm0, xmm4
pxor xmm5, xmm2
psrlw xmm5, 5
pand xmm5, xmm3
paddw xmm1, xmm5
add edi, 0xc0
add ebx, 0xfffffff0
jne 0x4a204f
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edi, xmm0
mov ebx, edx
mov edx, ecx
mov eax, ebx
sub eax, edx
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x18]
lea edx, [edx + ecx*4]
add edx, 0xa
movzx ecx, word [edx]
bt ecx, 5
sbb di, 0xffff
add edx, 0xc
dec eax
jne 0x4a2186
jmp 0x4a258e
mov edi, ebx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
xor edx, edx
jmp 0x4a21bc
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [eax + 0x52a853]
jne 0x4a2503
inc edx
movzx ebx, byte [ecx + edx]
movzx eax, byte [edx + str.true]
cmp bl, al
jne 0x4a21a8
test ebx, ebx
jne 0x4a21bb
mov ecx, 0x10000000
jmp 0x4a2533
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0xc]
mov word [eax + 0x20], cx
test ecx, ecx
js 0x4a2548
mov edi, 1
mov edx, 1
shl edx, cl
cmp ecx, 0x20
mov eax, 0xffffffff
cmovb eax, edx
test esi, esi
je 0x4a25c2
mov ecx, dword [esp]
or dword [ecx + 0x90], eax
jmp 0x4a25cb
mov ecx, dword [esp + 0xc]
jmp 0x4a257c
xor esi, esi
xor ecx, ecx
mov edx, dword [esp]
mov edx, dword [edx]
cmp byte [edx + 0xb1], 0
je 0x4a2264
mov edx, str.wrong_number_of_arguments_to_function__T__
cmp byte [esp + 0x2c], 0
je 0x4a2269
test cl, cl
mov edi, dword [esp]
jne 0x4a2284
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
je 0x4a22a0
push eax
push str.FILTER_may_not_be_used_with_non_aggregate__T__
push edi
call fcn.00434540
add esp, 0xc
jmp 0x4a0a6c
mov edx, str.no_such_function:__T
mov edi, dword [esp]
push dword [ebp + 0xc]
push edx
push edi
call fcn.00434540
add esp, 0xc
mov eax, dword [esp + 0x28]
inc dword [eax + 0x14]
test esi, esi
je 0x4a22a0
xor eax, eax
cmp dword [esp + 4], 0
sete al
xor eax, 0xffffbfff
mov ecx, dword [esp + 0x10]
and dword [ecx], eax
mov edi, 1
jmp 0x4a22a2
xor edi, edi
test ebx, ebx
je 0x4a22e0
mov esi, dword [ebx]
test esi, esi
jle 0x4a22e0
add ebx, 8
jmp 0x4a22c9
cmp esi, 2
jl 0x4a22e0
dec esi
add ebx, 0x10
mov edx, dword [ebx]
test edx, edx
je 0x4a22c0
mov ecx, dword [ebp + 8]
call fcn.00499fb0
test eax, eax
jne 0x4a22e0
cmp esi, 1
jg 0x4a22c5
mov ebx, 1
test edi, edi
je 0x4a0805
cmp dword [esp + 4], 0
je 0x4a231b
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0xc]
cmp byte [eax], 1
mov esi, dword [ebp + 8]
ja 0x4a248e
test edi, edi
je 0x4a2468
mov edx, dword [edi + 0x48]
jmp 0x4a246a
mov eax, dword [ebp + 0xc]
mov byte [eax], 0xa8
mov byte [eax + 2], 0
test byte [eax + 7], 1
mov esi, dword [esp + 0x28]
je 0x4a2344
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x4a2344
mov ecx, dword [ebp + 8]
call fcn.00499fb0
mov ecx, dword [esp]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x28], esi
mov eax, dword [esi + 4]
pxor xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea esi, [esp + 0xa8]
movdqu xmmword [esi], xmm0
mov dword [esp + 0x64], 0x4a3630
mov dword [esp + 0x68], 0x4a36d0
mov dword [esp + 0x6c], 0x4a3800
lea esi, [esp + 0xa0]
mov dword [esp + 0x78], esi
mov ecx, dword [ecx]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov edi, dword [edx + 0x14]
test edi, edi
je 0x4a23e1
mov esi, dword [edi]
test esi, esi
jle 0x4a23e1
add edi, 8
jmp 0x4a23c9
cmp esi, 2
jl 0x4a23e1
dec esi
add edi, 0x10
mov edx, dword [edi]
test edx, edx
je 0x4a23c0
lea ecx, [esp + 0x60]
call fcn.00499fb0
test eax, eax
jne 0x4a23e1
cmp esi, 1
jg 0x4a23c5
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
je 0x4a2400
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x4a2400
lea ecx, [esp + 0x60]
call fcn.00499fb0
mov edx, dword [esp + 0xb0]
test edx, edx
mov esi, dword [esp + 0x28]
je 0x4a2419
mov eax, dword [esp]
mov ecx, dword [eax]
call fcn.0043f4f0
movzx eax, word [esp + 0x74]
test ax, ax
mov ecx, dword [esp]
je 0x4a2444
and eax, 1
test ax, ax
jne 0x4a2444
mov edx, dword [ebp + 0xc]
inc byte [edx + 2]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4a234a
jmp 0x4a24d4
cmp dword [esp + 8], 0
je 0x4a24d4
mov eax, 0x8001000
mov ecx, dword [esp + 8]
and eax, dword [ecx + 4]
xor eax, 0x8000010
mov ecx, dword [esi + 0x18]
add esi, 0x18
jmp 0x4a24d0
xor edx, edx
mov esi, dword [esp]
mov ecx, esi
push dword [esp + 8]
push dword [esp + 8]
call fcn.004a2e00
add esp, 8
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
mov esi, dword [ebp + 8]
jne case.0x4a0102.21
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
mov edx, dword [edi + 8]
mov ecx, esi
call fcn.0049a2a0
mov edx, dword [edi + 0xc]
mov ecx, esi
call fcn.0049a2a0
mov edx, dword [edi + 0x28]
test edx, edx
je 0x4a24b8
mov ecx, esi
call fcn.00499fb0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
call fcn.0049d3e0
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov ecx, 0x8000
or ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
or dword [ecx], eax
jmp 0x4a0805
test eax, eax
mov edx, dword [esp + 8]
je 0x4a08b4
cmp eax, 1
mov eax, dword [esp]
mov ebx, dword [ebp + 0xc]
je 0x4a1efc
jmp 0x4a1f12
xor edx, edx
jmp 0x4a251b
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [eax + 0x52a853]
jne 0x4a27c6
inc edx
movzx ebx, byte [ecx + edx]
movzx eax, byte [edx + str.false]
cmp bl, al
jne 0x4a2507
test ebx, ebx
jne 0x4a251a
mov ecx, 0x20000000
mov eax, dword [ebp + 0xc]
mov byte [eax], 0xaa
or ecx, edi
mov dword [eax + 4], ecx
mov ebx, 1
jmp 0x4a0805
mov eax, dword [ebp + 0xc]
mov byte [eax + 1], 0x44
mov edi, 1
jmp 0x4a25cb
xor edi, edi
mov eax, dword [esp + 8]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 4]
test byte [ecx + eax*4 + 0xa], 0x20
jne 0x4a256e
mov ecx, edi
jmp 0x4a257c
mov ecx, dword [esp + 0xc]
sub ecx, edi
mov eax, dword [esp + 0x1c]
add cx, word [eax + 0x24]
movsx eax, cx
add esi, edx
add eax, esi
inc eax
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x4a25b9
xor edi, edi
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x18]
test byte [ecx + eax*4 + 0xa], 0x20
jne 0x4a25a0
mov ecx, edi
jmp 0x4a25ae
mov ecx, dword [esp + 0xc]
sub ecx, edi
mov eax, dword [esp + 0x1c]
add cx, word [eax + 0x24]
movsx eax, cx
add esi, eax
mov eax, dword [esp + 0x40]
mov dword [eax], esi
mov edi, 1
mov bl, 0xb0
jmp 0x4a25cd
mov ecx, dword [esp]
or dword [ecx + 0x8c], eax
mov bl, 0x4d
mov dword [esp + 0x24], 0
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
test byte [eax + 6], 0x81
jne 0x4a261a
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4a25f2
mov ecx, dword [esp + 0x38]
call fcn.00469350
mov eax, dword [ebp + 0xc]
mov dword [eax + 0xc], 0
mov edx, dword [eax + 0x10]
test edx, edx
je 0x4a260c
mov ecx, dword [esp + 0x38]
call fcn.00469350
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x10], 0
or byte [eax + 6], 0x80
movzx eax, word [eax + 0x20]
test ax, ax
js 0x4a26b4
cmp dword [esp + 0x24], 0
je 0x4a26b4
mov byte [esp + 4], bl
mov ebx, esi
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
test byte [ecx + 0x1c], 0x60
je 0x4a2681
mov edx, dword [ecx + 4]
lea esi, [eax + eax*2]
test byte [edx + esi*4 + 0xa], 0x60
je 0x4a2681
movzx ecx, word [ecx + 0x22]
mov esi, 0xffffffff
shl esi, cl
xor eax, eax
test cl, 0x20
mov edx, 0xffffffff
cmovne edx, esi
cmove eax, esi
mov esi, 0xffffffff
cmp cx, 0x40
not eax
not edx
cmovge edx, esi
cmovge eax, esi
jmp 0x4a26a3
cmp eax, 0x3f
mov ecx, 0x3f
cmovl ecx, eax
mov eax, 1
xor edx, edx
shld edx, eax, cl
xor esi, esi
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov ecx, dword [esp + 0x24]
or dword [ecx + 0x30], eax
or dword [ecx + 0x34], edx
mov esi, ebx
movzx ebx, byte [esp + 4]
mov eax, dword [ebp + 0xc]
mov byte [eax], bl
mov ebx, 2
cmp edi, 1
mov edi, dword [esp]
jne 0x4a0805
mov eax, dword [edi]
cmp dword [eax + 0x168], 0
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
je 0x4a2791
movzx ecx, byte [ebx]
cmp ecx, 0xa7
je 0x4a26f4
cmp ecx, 0x4d
jne 0x4a2791
test esi, esi
je 0x4a2791
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 4]
mov ebx, esi
mov esi, dword [eax + 0x10]
add esi, 0xc
mov eax, 0xffffffff
nop word cs:[eax + eax]
inc eax
lea edi, [esi + 0x10]
cmp dword [esi], ebx
mov esi, edi
jne 0x4a2720
cmp cl, 0x4d
mov edi, dword [esp + 0x28]
mov ebx, dword [ebp + 0xc]
je 0x4a2756
mov ecx, dword [edx]
test ecx, ecx
jle 0x4a2791
mov esi, dword [esp + 0x40]
mov esi, dword [esi]
add edx, 0x18
cmp esi, dword [edx + 0x18]
je 0x4a2752
add edx, 0x40
dec ecx
jne 0x4a2745
jmp 0x4a2791
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2791
movsx edx, word [ebx + 0x20]
test edx, edx
jns 0x4a2771
movzx edx, word [ecx + 0x20]
test dx, dx
js 0x4a27bf
mov esi, dword [ecx + 4]
lea edx, [edx + edx*2]
mov esi, dword [esi + edx*4]
mov edx, dword [ecx]
mov ecx, dword [esp]
push eax
push esi
call fcn.004a3560
add esp, 8
cmp eax, 2
jne 0x4a2791
mov byte [ebx], 0x79
inc dword [edi + 0x10]
mov ebx, 1
cmp dword [esp + 0x30], edi
je 0x4a0805
mov eax, dword [esp + 0x30]
nop word [eax + eax]
mov edi, dword [edi + 0xc]
inc dword [edi + 0x10]
cmp edi, eax
jne 0x4a27b0
jmp 0x4a0805
mov esi, str.ROWID
jmp 0x4a277a
xor edi, edi
jmp 0x4a1a78