Function at 0x4f7c40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x58
push ebp
mov ebp, dword [esp + 0x64]
xorps xmm0, xmm0
push edi
movlpd qword [esp + 0x58], xmm0
mov dword [esp + 0x30], 0
mov eax, dword [ebp]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov edi, dword [eax]
mov dword [esp + 0x4c], edi
mov ecx, dword [edi]
mov dword [esp + 0x1c], ecx
cmp byte [ecx + 0x57], 0
jne 0x4f8fdc
mov ecx, dword [esp + 0x6c]
lea edx, [eax + 0x1f0]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x1c], edx
shl ecx, 4
add ebx, ecx
mov dword [esp + 0x14], ecx
mov esi, dword [ebx]
mov dword [edx], 0
mov dword [esp + 0x20], esi
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4f7d0f
cmp byte [eax], 0xa7
jne 0x4f7cd6
test byte [eax + 4], 0x20
jne 0x4f7cd6
push dword [eax + 0x1c]
push edx
call fcn.00594bb0
mov dword [esp + 0x3c], edx
add esp, 8
mov edx, dword [esp + 0x1c]
jmp 0x4f7d21
test dword [eax + 4], 0x810000
je 0x4f7cfb
movlpd qword [esp + 0x58], xmm0
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
jmp 0x4f7d25
push eax
push edx
call fcn.005949c0
mov dword [esp + 0x3c], edx
add esp, 8
mov edx, dword [esp + 0x1c]
jmp 0x4f7d21
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov al, byte [esi]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x50], eax
cmp eax, 0x31
jne 0x4f7d8c
push esi
push edi
call fcn.0054e390
add esp, 8
test eax, eax
jne 0x4f8fda
test dword [esi + 4], 0x1000
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
push eax
push dword [esp + 0x20]
mov dword [esp + 0x20], ecx
je 0x4f7d68
call fcn.004fb450
jmp 0x4f7d6d
call fcn.005948c0
mov ecx, edx
mov dword [ebx + 0x20], eax
or eax, dword [esp + 0x38]
lea edx, [esi + 4]
add esp, 8
mov dword [ebx + 0x24], ecx
or ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
jmp 0x4f7e67
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4f7dc5
cmp byte [eax], 0xa7
jne 0x4f7dae
test byte [eax + 4], 0x20
jne 0x4f7dae
push dword [eax + 0x1c]
push edx
call fcn.00594bb0
add esp, 8
mov ecx, edx
jmp 0x4f7dd6
test dword [eax + 4], 0x810000
jne 0x4f7dc5
push eax
push edx
call fcn.005949c0
add esp, 8
mov ecx, edx
jmp 0x4f7dd6
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dword [esi + 0xc], 0
je 0x4f7e06
test dword [esi + 4], 0x41000
lea edx, [esi + 4]
mov dword [esp + 0x18], edx
jne 0x4f7e06
cmp dword [esi + 0x14], 0
jne 0x4f7e06
or eax, dword [esp + 0x30]
or ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
jmp 0x4f7e67
cmp byte [esi], 0xa7
lea edx, [esi + 4]
mov eax, dword [edx]
mov dword [esp + 0x18], edx
jne 0x4f7e2d
test al, 0x20
jne 0x4f7e2d
push dword [esi + 0x1c]
push dword [esp + 0x20]
call fcn.00594bb0
mov dword [esp + 0x34], edx
lea edx, [esi + 4]
jmp 0x4f7e64
test eax, 0x810000
je 0x4f7e4f
xorps xmm0, xmm0
mov dword [esp + 0x18], edx
movlpd qword [esp + 0x58], xmm0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ecx
jmp 0x4f7e67
push esi
push dword [esp + 0x20]
call fcn.005949c0
mov dword [esp + 0x34], edx
lea edx, [esi + 4]
mov dword [esp + 0x20], edx
add esp, 8
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ecx], 0
je 0x4f7e7d
mov eax, 0x1000
or word [ebx + 0xa], ax
mov eax, dword [edx]
mov dword [esp + 0x4c], eax
test al, 3
je 0x4f7f62
push dword [esi + 0x24]
push ecx
call fcn.00594bb0
mov ecx, dword [esp + 0x54]
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
test cl, 1
je 0x4f7efc
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
or eax, ecx
mov edx, dword [esp + 0x2c]
or edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], eax
mov eax, edx
mov dword [esp + 0x3c], ecx
add dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x58]
adc ebp, 0xffffffff
shrd edx, eax, 1
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x70]
shr eax, 1
cmp eax, dword [esp + 0x40]
ja 0x4f7f31
jb 0x4f7ef6
cmp edx, ecx
jae 0x4f7f31
mov edx, dword [esp + 0x28]
jmp 0x4f7f76
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
shrd dword [esp + 0x4c], eax, 1
shr eax, 1
cmp eax, dword [esp + 0x40]
jb 0x4f7f66
ja 0x4f7f22
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x3c]
jb 0x4f7f66
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jle 0x4f7f47
test byte [eax + 0x2c], 0x40
je 0x4f7f47
push str.ON_clause_references_tables_to_its_right
push edi
call fcn.0054d2c0
add esp, 8
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x58
ret
mov eax, dword [esp + 0x18]
and ecx, 0xfffffffd
mov dword [eax], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], ecx
jmp 0x4f7f76
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x2c], eax
xor eax, eax
mov word [ebx + 0xc], ax
mov al, byte [esp + 0x13]
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x14], 0xffffffff
mov dword [ebx + 0x10], 0xffffffff
cmp al, 0x31
je 0x4f85c5
cmp al, 0x35
jb 0x4f7fac
cmp al, 0x39
jbe 0x4f85c5
cmp al, 0x32
je 0x4f85c5
cmp al, 0x2d
je 0x4f85c5
mov al, byte [esi]
cmp al, 0x30
jne 0x4f8166
cmp byte [ebp + 8], 0x2c
jne 0x4f8187
mov eax, dword [esi + 0x14]
add eax, 8
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], eax
mov eax, dword [eax]
mov ebx, dword [esp + 0x24]
test eax, eax
je 0x4f7ffe
push 0
push 0
push eax
push ebx
call fcn.004fa110
add esp, 0x10
mov ebp, eax
jmp 0x4f8000
xor ebp, ebp
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4f8019
push 0
push 0
push eax
push ebx
call fcn.004fa110
add esp, 0x10
mov ebx, eax
jmp 0x4f801b
xor ebx, ebx
mov eax, dword [esp + 0x48]
push 0
push 0x34
push dword [edi]
mov al, byte [eax + 0x618328]
mov byte [esp + 0x1f], al
call fcn.0054aba0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4f80d1
push 0x34
push 0
push esi
call fcn.0042d620
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4f8075
mov dword [esi + 0x10], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ebp + 0x18]
inc ecx
jmp 0x4f807a
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x4f809c
mov dword [esi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebx + 0x18]
cmp eax, ecx
jl 0x4f809c
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4f80b7
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0054d2c0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4f80ef
or dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4f80ef
test ebx, ebx
je 0x4f80e0
push ebx
push dword [edi]
call fcn.005514d0
add esp, 8
test ebp, ebp
je 0x4f80ef
push ebp
push dword [edi]
call fcn.005514d0
add esp, 8
mov ebp, dword [esp + 0x70]
push 3
push esi
push ebp
call fcn.005a63f0
mov esi, eax
push esi
push ebp
push dword [esp + 0x80]
call fcn.004f7c40
mov ecx, dword [ebp + 0x18]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x8c]
add edx, edx
mov ebx, dword [esp + 0x2c]
add esp, 0x18
mov esi, dword [esp + 0x14]
add ebx, ecx
mov dword [ecx + edx*8 + 0x10], eax
mov ecx, dword [ebp + 0x18]
mov ax, word [esi + ecx + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x48], ecx
inc byte [esi + eax + 0xe]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x20]
add eax, 0x14
mov dword [esp + 0x50], eax
cmp ecx, 2
jl 0x4f7fe2
jmp 0x4f8986
cmp al, 0x2b
jne 0x4f8187
push dword [esp + 0x74]
push ebp
push dword [esp + 0x74]
call fcn.004f8ff0
mov ebx, dword [ebp + 0x18]
add esp, 0xc
add ebx, dword [esp + 0x14]
jmp 0x4f8986
cmp al, 0x33
jne 0x4f829a
mov eax, dword [esi + 0xc]
mov dword [esp + 0x48], eax
cmp byte [eax], 0xa7
jne 0x4f8986
cmp word [eax + 0x20], 0
jl 0x4f8986
mov ecx, dword [esp + 0x18]
test byte [ecx], 1
jne 0x4f8986
test eax, eax
je 0x4f81d2
push 0
push 0
push eax
push dword [esp + 0x30]
call fcn.004fa110
add esp, 0x10
mov dword [esp + 0x50], eax
jmp 0x4f81da
mov dword [esp + 0x50], 0
push 0
push 0x34
push dword [esp + 0x2c]
call fcn.0054aba0
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x4f8214
push 0x34
push 0
push eax
call fcn.0042d620
mov eax, dword [esp + 0x64]
add esp, 0xc
or ecx, 0xffffffff
mov byte [eax], 0x79
mov word [eax + 0x22], cx
mov dword [eax + 0x18], 1
push eax
push dword [esp + 0x54]
push 0x36
push edi
call fcn.00567c00
push 0x83
push eax
push ebp
call fcn.005a63f0
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x4f8986
mov ecx, dword [esp + 0x48]
lea esi, [edx + edx*2]
push dword [esp + 0x74]
shl esi, 4
add esi, dword [ebp + 0x18]
push edx
push ebp
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [ecx + 0x20]
mov dword [esi + 0x18], eax
mov eax, 4
mov word [esi + 0xc], ax
call fcn.00528d30
mov ebx, dword [ebp + 0x18]
add esp, 0xc
add ebx, dword [esp + 0x14]
or word [ebx + 0xa], 8
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov esi, dword [esp + 0x20]
jmp 0x4f8986
cmp al, 0xac
jne 0x4f8986
cmp byte [ebp + 8], 0x2c
jne 0x4f8986
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.00520040
add esp, 0x14
test eax, eax
je 0x4f8986
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x4f82fa
push 0
push 0
push ecx
push dword [esp + 0x30]
call fcn.004fa110
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x40], eax
jmp 0x4f8302
mov dword [esp + 0x40], 0
cmp dword [esp + 0x48], 0
je 0x4f836c
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4f836c
mov eax, 0x400
or word [ebx + 0xa], ax
xor ebx, ebx
mov eax, dword [ecx + 8]
mov dword [esp + 0x58], eax
mov cl, byte [eax]
test cl, cl
je 0x4f836c
mov ebp, dword [esp + 0x38]
mov esi, eax
mov edi, dword [esp + 0x40]
movzx edx, cl
lea ebx, [ebx + 1]
mov al, byte [edx + 0x612dc0]
and al, 0x20
not al
and al, cl
mov byte [esi + ebx - 1], al
mov ecx, dword [edi + 8]
mov al, byte [edx + 0x612ca8]
mov byte [ebx + ecx - 1], al
mov esi, dword [ebp + 8]
mov cl, byte [esi + ebx]
test cl, cl
jne 0x4f8333
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x4f83cf
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 8]
test edx, edx
jne 0x4f8385
xor ecx, ecx
jmp 0x4f839f
mov ecx, edx
lea ebx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f8390
sub ecx, ebx
and ecx, 0x3fffffff
mov al, byte [edx + ecx - 1]
add edx, ecx
cmp dword [esp + 0x48], 0
mov ecx, dword [esp + 0x44]
je 0x4f83c0
xor ebx, ebx
cmp al, 0x40
movzx eax, al
cmove ecx, ebx
mov al, byte [eax + 0x612ca8]
inc al
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x24]
mov byte [edx - 1], al
jmp 0x4f83d7
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x48], 0
mov eax, str.BINARY
mov ebx, str.NOCASE
cmove ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x58], ebx
test eax, eax
je 0x4f8405
push 0
push 0
push eax
push ecx
call fcn.004fa110
add esp, 0x10
jmp 0x4f8407
xor eax, eax
push ebx
push eax
push edi
call fcn.0054d8b0
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x60], eax
call fcn.0054aba0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x4f84ca
push 0x34
push 0
push ebx
call fcn.0042d620
mov ecx, dword [esp + 0x44]
lea edx, [ebx + 4]
or eax, 0xffffffff
mov byte [ebx], 0x39
add esp, 0xc
mov word [ebx + 0x22], ax
mov dword [esp + 0x50], edx
test ecx, ecx
je 0x4f8464
mov dword [ebx + 0x10], ecx
mov eax, dword [ecx + 4]
and eax, 0x400208
or dword [edx], eax
mov ecx, dword [ecx + 0x18]
inc ecx
jmp 0x4f846d
mov ecx, 1
mov dword [esp + 0x50], edx
mov dword [ebx + 0x18], ecx
mov edx, dword [esp + 0x48]
test edx, edx
je 0x4f8499
mov ecx, dword [esp + 0x50]
mov dword [ebx + 0xc], edx
mov eax, dword [edx + 4]
and eax, 0x400208
or dword [ecx], eax
mov eax, dword [edx + 0x18]
mov ecx, dword [ebx + 0x18]
cmp eax, ecx
jl 0x4f8499
lea ecx, [eax + 1]
mov dword [ebx + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4f84b4
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0054d2c0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4f84f0
or dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 0x24], eax
jmp 0x4f84f0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4f84dd
push eax
push dword [edi]
call fcn.005514d0
add esp, 8
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4f84f0
push eax
push dword [edi]
call fcn.005514d0
add esp, 8
push 0x103
push ebx
push ebp
call fcn.005a63f0
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4f851e
push 0
push 0
push eax
push dword [esp + 0x30]
call fcn.004fa110
add esp, 0x10
jmp 0x4f8520
xor eax, eax
push dword [esp + 0x40]
push dword [esp + 0x5c]
push eax
push edi
call fcn.0054d8b0
add esp, 0xc
push eax
push 0x38
push edi
call fcn.00567c00
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4f8558
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4f8558
or dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx + 0x24], eax
push 0x103
push ecx
push ebp
call fcn.005a63f0
push dword [esp + 0x5c]
mov ebx, eax
push ebp
push dword [esp + 0x80]
mov dword [esp + 0x70], ebx
call fcn.004f7c40
push ebx
push ebp
push dword [esp + 0x8c]
call fcn.004f7c40
mov ebx, dword [ebp + 0x18]
add esp, 0x24
add ebx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
je 0x4f8986
push dword [esp + 0x74]
push dword [esp + 0x54]
push ebp
call fcn.00528d30
push dword [esp + 0x80]
push dword [esp + 0x68]
push ebp
call fcn.00528d30
add esp, 0x18
jmp 0x4f8986
mov edx, dword [esi + 0xc]
mov dword [esp + 0x40], edx
test edx, edx
je 0x4f85e4
test dword [edx + 4], 0x2000
je 0x4f85e0
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4f85d0
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4f8604
nop
test dword [eax + 4], 0x2000
je 0x4f8600
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4f85f0
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx + 0x24]
and ecx, dword [ebx + 0x20]
and eax, dword [esp + 0x34]
or ecx, eax
mov dword [esp + 0x44], 0x3fff
je 0x4f8626
mov dword [esp + 0x44], 0x800
mov eax, dword [ebx + 0x1c]
test eax, eax
jle 0x4f863b
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov edx, dword [eax + ecx*4 - 0xc]
mov dword [esp + 0x40], edx
push dword [esp + 0x50]
lea eax, [esp + 0x64]
push edx
push eax
push dword [esp + 0x78]
call fcn.004fad90
mov edx, dword [esp + 0x60]
add esp, 0x10
test eax, eax
je 0x4f8679
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x64]
push edx
mov dword [ebx + 0x18], eax
call fcn.0052c890
add esp, 4
and ax, word [esp + 0x44]
mov word [ebx + 0xc], ax
cmp byte [esp + 0x13], 0x2d
mov eax, 0x800
jne 0x4f8689
or word [ebx + 0xa], ax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4f8934
push edx
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x78]
call fcn.004fad90
add esp, 0x10
test eax, eax
je 0x4f8934
mov eax, dword [esp + 0x48]
test byte [eax + 4], 0x20
jne 0x4f8934
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x38], 0
jl 0x4f8815
mov ebx, dword [esp + 0x24]
push 0
push 0
push esi
push ebx
call fcn.004fa110
add esp, 0x10
mov esi, eax
cmp byte [ebx + 0x57], 0
je 0x4f8704
test esi, esi
je 0x4f8fda
push esi
push ebx
call fcn.005514d0
add esp, 8
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x58
ret
push 3
push esi
push ebp
call fcn.005a63f0
add esp, 0xc
test eax, eax
je 0x4f8fda
push dword [esp + 0x74]
lea ebx, [eax + eax*2]
shl ebx, 4
add ebx, dword [ebp + 0x18]
push eax
push ebp
mov dword [esp + 0x4c], ebx
call fcn.00528d30
add esp, 0xc
cmp byte [esp + 0x13], 0x2d
jne 0x4f8743
mov eax, 0x800
or word [ebx + 0xa], ax
mov ebx, dword [ebp + 0x18]
add ebx, dword [esp + 0x14]
or word [ebx + 0xa], 8
mov eax, dword [edi]
test byte [eax + 0x50], 0x80
jne 0x4f8819
mov al, byte [esi]
cmp al, 0x35
je 0x4f8769
cmp al, 0x2d
jne 0x4f8819
test byte [esi + 4], 1
jne 0x4f8819
push dword [esi + 0xc]
call fcn.0054da60
push dword [esi + 0x10]
mov byte [esp + 0x1b], al
call fcn.0054da60
mov cl, al
add esp, 8
mov al, byte [esp + 0x13]
cmp al, cl
je 0x4f87a1
cmp al, 0x43
jl 0x4f8819
cmp cl, 0x43
jl 0x4f8819
push esi
push edi
call fcn.00551170
add esp, 8
test eax, eax
je 0x4f8806
cmp dword [eax + 0xc], fcn.004ec2d0
je 0x4f8806
push dword [esi + 0xc]
mov eax, dword [esi + 0x10]
push edi
mov dword [esp + 0x60], eax
call fcn.00550cd0
add esp, 8
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4f87dc
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
push dword [esp + 0x58]
push edi
call fcn.00550cd0
add esp, 8
test eax, eax
jne 0x4f87f2
mov eax, dword [edi]
mov eax, dword [eax + 8]
push dword [eax]
mov eax, dword [esp + 0x54]
push dword [eax]
call fcn.005794f0
add esp, 8
test eax, eax
jne 0x4f8819
mov eax, 0x800
or word [ebx + 0xc], ax
mov dword [esp + 0x38], eax
jmp 0x4f8819
mov dword [esp + 0x40], ebx
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0xb1
je 0x4f88bd
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
cmp byte [eax], 0xb1
je 0x4f88bd
test dword [ecx + 4], 0x200
je 0x4f8841
push ecx
jmp 0x4f8869
test eax, eax
je 0x4f8851
test dword [eax + 4], 0x200
je 0x4f8851
push eax
jmp 0x4f8869
push ecx
push edi
call fcn.00550cd0
mov ecx, eax
add esp, 8
mov dword [esp + 0x48], ecx
test ecx, ecx
jne 0x4f8876
push dword [esp + 0x58]
push edi
call fcn.00550cd0
add esp, 8
mov dword [esp + 0x48], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x58], eax
test dword [ecx + 4], 0x200
je 0x4f888c
push ecx
jmp 0x4f88ae
test eax, eax
je 0x4f889c
test dword [eax + 4], 0x200
je 0x4f889c
push eax
jmp 0x4f88ae
push ecx
push edi
call fcn.00550cd0
add esp, 8
test eax, eax
jne 0x4f88b7
push dword [esp + 0x58]
push edi
call fcn.00550cd0
add esp, 8
cmp dword [esp + 0x48], eax
je 0x4f88c4
xor dword [esi + 4], 0x400
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x10], eax
mov al, byte [esi]
mov dword [esi + 0xc], ecx
cmp al, 0x36
jb 0x4f88de
sub al, 0x36
xor al, 2
add al, 0x36
mov byte [esi], al
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
or ecx, dword [esp + 0x4c]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x3c]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [edx + 0x24], ecx
mov dword [edx + 0x2c], eax
movzx eax, byte [esi]
push eax
call fcn.0052c890
add ax, word [esp + 0x3c]
add esp, 4
and ax, word [esp + 0x44]
mov esi, dword [esp + 0x20]
mov word [edx + 0xc], ax
jmp 0x4f8986
cmp byte [esp + 0x13], 0x32
jne 0x4f8986
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
test al, 1
jne 0x4f8986
push dword [esp + 0x40]
call fcn.0054e2b0
add esp, 4
test eax, eax
jne 0x4f8986
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
or eax, 0x20000000
mov byte [esi], 0xaa
mov dword [esi + 8], str.false
mov dword [ecx], eax
xor eax, eax
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov word [ebx + 0xc], ax
mov cl, byte [esi]
cmp cl, 0x35
je 0x4f8996
cmp cl, 0x2d
jne 0x4f8b63
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0xb0
jne 0x4f89a2
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x4f89ab
mov edx, dword [edx + 0x14]
jmp 0x4f89b9
cmp al, 0x8a
jne 0x4f8b63
mov eax, dword [edx + 0x14]
mov edx, dword [eax + 0x1c]
mov edx, dword [edx]
mov dword [esp + 0x48], edx
cmp edx, 1
jle 0x4f8b63
mov eax, dword [esi + 0x10]
mov ch, byte [eax]
cmp ch, 0xb0
jne 0x4f89d5
mov ch, byte [eax + 2]
cmp ch, 0xb1
jne 0x4f89df
mov eax, dword [eax + 0x14]
jmp 0x4f89ee
cmp ch, 0x8a
jne 0x4f8b63
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], edx
jne 0x4f8b63
mov eax, dword [esi + 0xc]
test dword [eax + 4], 0x1000
je 0x4f8a12
mov eax, dword [esi + 0x10]
test dword [eax + 4], 0x1000
jne 0x4f8b63
cmp byte [ebp + 8], 0x2c
jne 0x4f8b63
xor ebp, ebp
mov dword [esp + 0x50], ebp
push edx
push ebp
push dword [esi + 0xc]
push edi
call fcn.00551580
push dword [esp + 0x58]
mov ebx, eax
push ebp
push dword [esi + 0x10]
push edi
call fcn.00551580
push 0
mov ebp, eax
mov al, byte [esi]
push 0x34
push dword [edi]
mov byte [esp + 0x3f], al
call fcn.0054aba0
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x4f8aed
push 0x34
push 0
push esi
call fcn.0042d620
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4f8a91
mov dword [esi + 0x10], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ebp + 0x18]
inc ecx
jmp 0x4f8a96
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x4f8ab8
mov dword [esi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebx + 0x18]
cmp eax, ecx
jl 0x4f8ab8
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4f8ad3
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0054d2c0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4f8b0b
or dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4f8b0b
test ebx, ebx
je 0x4f8afc
push ebx
push dword [edi]
call fcn.005514d0
add esp, 8
test ebp, ebp
je 0x4f8b0b
push ebp
push dword [edi]
call fcn.005514d0
add esp, 8
mov ebx, dword [esp + 0x70]
push 0x8001
push esi
push ebx
call fcn.005a63f0
push eax
push ebx
push dword [esp + 0x80]
call fcn.004f7c40
mov ebp, dword [esp + 0x68]
add esp, 0x18
mov edx, dword [esp + 0x48]
inc ebp
mov esi, dword [esp + 0x20]
mov dword [esp + 0x50], ebp
cmp ebp, edx
jl 0x4f8a22
mov edx, dword [esp + 0x14]
mov ebp, ebx
mov ecx, 0x2000
mov eax, dword [ebp + 0x18]
or word [eax + edx + 0xa], 6
mov word [eax + edx + 0xc], cx
jmp 0x4f8fc7
cmp cl, 0x31
jne 0x4f8c4c
cmp dword [ebx + 0x1c], 0
jne 0x4f8c4c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0xb1
jne 0x4f8c4c
mov eax, dword [esp + 0x18]
test dword [eax], 0x1000
je 0x4f8c4c
mov eax, dword [esi + 0x14]
cmp dword [eax + 0x34], 0
je 0x4f8ba8
test dword [eax + 4], 0x200
je 0x4f8c4c
cmp dword [eax + 0x44], 0
jne 0x4f8c4c
cmp byte [ebp + 8], 0x2c
jne 0x4f8fc3
xor edi, edi
nop
mov ecx, dword [esi + 0xc]
mov al, byte [ecx]
cmp al, 0xb0
jne 0x4f8bcc
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4f8bd7
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x4f8bea
cmp al, 0x8a
jne 0x4f8be5
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
jmp 0x4f8bea
mov eax, 1
cmp edi, eax
jge 0x4f8fc3
push 0x8002
push esi
push ebp
call fcn.005a63f0
mov ecx, dword [ebp + 0x18]
inc edi
push eax
push ebp
push dword [esp + 0x80]
lea esi, [eax + eax*2]
add esi, esi
mov dword [ecx + esi*8 + 0x1c], edi
call fcn.004f7c40
mov eax, dword [ebp + 0x18]
add esp, 0x18
mov ecx, dword [esp + 0x74]
mov dword [eax + esi*8 + 0x10], ecx
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x14]
mov ax, word [ecx + eax + 8]
mov word [ecx + esi*8 + 8], ax
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
inc byte [ecx + eax + 0xe]
jmp 0x4f8bc0
cmp byte [ebp + 8], 0x2c
jne 0x4f8fc3
cmp cl, 0xac
jne 0x4f8d31
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x4f8fc3
cmp dword [ebx], 2
jne 0x4f8fc3
mov ebp, dword [ebx + 0x1c]
cmp byte [ebp], 0xa7
jne 0x4f8cb4
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4f8cb4
mov eax, dword [esp + 0x20]
xor esi, esi
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
push dword [esi*8 + 0x618218]
push eax
call fcn.005794f0
add esp, 8
test eax, eax
je 0x4f8d1c
mov eax, dword [esp + 0x58]
inc esi
cmp esi, 4
jl 0x4f8c92
mov esi, dword [esp + 0x20]
mov ebp, dword [ebx + 8]
cmp byte [ebp], 0xa7
jne 0x4f8fbf
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4f8fbf
push eax
push dword [esp + 0x28]
call fcn.00561580
add esp, 8
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4f8fbf
lea edx, [esp + 0x40]
push edx
lea edx, [esp + 0x38]
push edx
push dword [esi + 8]
push 2
push ecx
call eax
add esp, 0x14
mov dword [esp + 0x44], eax
cmp eax, 0x96
jl 0x4f8fbf
mov ebx, dword [ebx + 0x1c]
mov edx, 1
jmp 0x4f8db0
mov al, byte [esi*8 + 0x61821c]
mov edx, 1
mov ebx, dword [ebx + 8]
mov dword [esp + 0x44], eax
jmp 0x4f8db0
cmp cl, 0x34
je 0x4f8d44
cmp cl, 0xab
je 0x4f8d44
cmp cl, 0x33
jne 0x4f8fc3
mov ebp, dword [esi + 0xc]
xor edx, edx
mov ebx, dword [esi + 0x10]
cmp byte [ebp], 0xa7
jne 0x4f8d61
mov eax, dword [ebp + 0x2c]
mov esi, 1
cmp byte [eax + 0x2b], 1
cmove edx, esi
test ebx, ebx
je 0x4f8d7a
cmp byte [ebx], 0xa7
jne 0x4f8d7a
mov eax, dword [ebx + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4f8d7a
mov eax, ebp
inc edx
mov ebp, ebx
mov ebx, eax
cmp cl, 0x34
setne al
dec al
and al, 0x44
cmp cl, 0xab
jne 0x4f8d90
mov byte [esp + 0x44], 0x45
jmp 0x4f8da2
cmp cl, 0x33
movzx eax, al
mov esi, 0x46
cmove eax, esi
mov byte [esp + 0x44], al
test edx, edx
je 0x4f8fbf
nop word [eax + eax]
dec edx
mov dword [esp + 0x58], edx
test ebx, ebx
je 0x4f8df9
cmp byte [ebx], 0xa7
jne 0x4f8ddb
test byte [ebx + 4], 0x20
jne 0x4f8ddb
push dword [ebx + 0x1c]
push dword [esp + 0x20]
call fcn.00594bb0
add esp, 8
mov dword [esp + 0x38], edx
mov esi, eax
jmp 0x4f8e0e
test dword [ebx + 4], 0x810000
jne 0x4f8df9
push ebx
push dword [esp + 0x20]
call fcn.005949c0
add esp, 8
mov dword [esp + 0x38], edx
mov esi, eax
jmp 0x4f8e0e
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], esi
test ebp, ebp
je 0x4f8e4b
cmp byte [ebp], 0xa7
jne 0x4f8e33
test byte [ebp + 4], 0x20
jne 0x4f8e33
push dword [ebp + 0x1c]
push dword [esp + 0x20]
call fcn.00594bb0
add esp, 8
jmp 0x4f8e5c
test dword [ebp + 4], 0x810000
jne 0x4f8e4b
push ebp
push dword [esp + 0x20]
call fcn.005949c0
add esp, 8
jmp 0x4f8e5c
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
and edx, dword [esp + 0x38]
and eax, esi
or eax, edx
jne 0x4f8fad
test ebx, ebx
je 0x4f8e7f
push eax
push eax
push ebx
push dword [esp + 0x30]
call fcn.004fa110
add esp, 0x10
jmp 0x4f8e81
xor eax, eax
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x5c], eax
call fcn.0054aba0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4f8ef1
push 0x34
push 0
push esi
call fcn.0042d620
mov ecx, dword [esp + 0x5c]
or eax, 0xffffffff
add esp, 0xc
mov byte [esi], 0x2e
mov word [esi + 0x22], ax
test ecx, ecx
je 0x4f8ecc
mov dword [esi + 0x10], ecx
mov eax, dword [ecx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ecx + 0x18]
inc ecx
jmp 0x4f8ed1
mov ecx, 1
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4f8f04
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0054d2c0
add esp, 0xc
jmp 0x4f8f04
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4f8f04
push eax
push dword [edi]
call fcn.005514d0
add esp, 8
mov eax, dword [esp + 0x18]
test byte [eax], 1
je 0x4f8f1f
test esi, esi
je 0x4f8f1f
mov eax, dword [esp + 0x20]
or dword [esi + 4], 1
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
push 3
push esi
push dword [esp + 0x78]
call fcn.005a63f0
mov ecx, dword [esp + 0x7c]
add esp, 0xc
mov edi, dword [esp + 0x74]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x48]
mov esi, dword [ecx + 0x18]
shl edx, 4
add esi, edx
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [ebp + 0x20]
mov dword [esi + 0x18], eax
mov eax, 0x40
mov word [esi + 0xc], ax
mov eax, dword [esp + 0x44]
mov byte [esi + 0xf], al
mov eax, dword [ecx + 0x18]
mov dword [edx + eax + 0x10], edi
mov ecx, dword [ecx + 0x18]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
mov ax, word [ecx + eax + 8]
mov word [ecx + edx + 8], ax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
inc byte [edx + eax + 0xe]
mov ecx, dword [ecx + 0x18]
add ecx, edx
or word [ecx + 0xa], 8
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov edx, dword [esp + 0x58]
mov eax, ebp
mov ebp, ebx
mov ebx, eax
test edx, edx
jg 0x4f8db0
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x3c]
add eax, edx
or dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x4c]
or dword [eax + 0x24], ecx
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x58
ret