Function at 0x4e9270
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 0x4ea60c
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 0x4e933f
cmp byte [eax], 0xa7
jne 0x4e9306
test byte [eax + 4], 0x20
jne 0x4e9306
push dword [eax + 0x1c]
push edx
call fcn.005861e0
mov dword [esp + 0x3c], edx
add esp, 8
mov edx, dword [esp + 0x1c]
jmp 0x4e9351
test dword [eax + 4], 0x810000
je 0x4e932b
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 0x4e9355
push eax
push edx
call fcn.00585ff0
mov dword [esp + 0x3c], edx
add esp, 8
mov edx, dword [esp + 0x1c]
jmp 0x4e9351
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 0x4e93bc
push esi
push edi
call fcn.0053f9c0
add esp, 8
test eax, eax
jne 0x4ea60a
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 0x4e9398
call fcn.004eca80
jmp 0x4e939d
call fcn.00585ef0
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 0x4e9497
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4e93f5
cmp byte [eax], 0xa7
jne 0x4e93de
test byte [eax + 4], 0x20
jne 0x4e93de
push dword [eax + 0x1c]
push edx
call fcn.005861e0
add esp, 8
mov ecx, edx
jmp 0x4e9406
test dword [eax + 4], 0x810000
jne 0x4e93f5
push eax
push edx
call fcn.00585ff0
add esp, 8
mov ecx, edx
jmp 0x4e9406
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 0x4e9436
test dword [esi + 4], 0x41000
lea edx, [esi + 4]
mov dword [esp + 0x18], edx
jne 0x4e9436
cmp dword [esi + 0x14], 0
jne 0x4e9436
or eax, dword [esp + 0x30]
or ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
jmp 0x4e9497
cmp byte [esi], 0xa7
lea edx, [esi + 4]
mov eax, dword [edx]
mov dword [esp + 0x18], edx
jne 0x4e945d
test al, 0x20
jne 0x4e945d
push dword [esi + 0x1c]
push dword [esp + 0x20]
call fcn.005861e0
mov dword [esp + 0x34], edx
lea edx, [esi + 4]
jmp 0x4e9494
test eax, 0x810000
je 0x4e947f
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 0x4e9497
push esi
push dword [esp + 0x20]
call fcn.00585ff0
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 0x4e94ad
mov eax, 0x1000
or word [ebx + 0xa], ax
mov eax, dword [edx]
mov dword [esp + 0x4c], eax
test al, 3
je 0x4e9592
push dword [esi + 0x24]
push ecx
call fcn.005861e0
mov ecx, dword [esp + 0x54]
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
test cl, 1
je 0x4e952c
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 0x4e9561
jb 0x4e9526
cmp edx, ecx
jae 0x4e9561
mov edx, dword [esp + 0x28]
jmp 0x4e95a6
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 0x4e9596
ja 0x4e9552
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x3c]
jb 0x4e9596
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jle 0x4e9577
test byte [eax + 0x2c], 0x40
je 0x4e9577
push str.ON_clause_references_tables_to_its_right
push edi
call fcn.0053e8f0
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 0x4e95a6
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 0x4e9bf5
cmp al, 0x35
jb 0x4e95dc
cmp al, 0x39
jbe 0x4e9bf5
cmp al, 0x32
je 0x4e9bf5
cmp al, 0x2d
je 0x4e9bf5
mov al, byte [esi]
cmp al, 0x30
jne 0x4e9796
cmp byte [ebp + 8], 0x2c
jne 0x4e97b7
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 0x4e962e
push 0
push 0
push eax
push ebx
call fcn.004eb740
add esp, 0x10
mov ebp, eax
jmp 0x4e9630
xor ebp, ebp
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4e9649
push 0
push 0
push eax
push ebx
call fcn.004eb740
add esp, 0x10
mov ebx, eax
jmp 0x4e964b
xor ebx, ebx
mov eax, dword [esp + 0x48]
push 0
push 0x34
push dword [edi]
mov al, byte [eax + 0x609758]
mov byte [esp + 0x1f], al
call fcn.0053c1d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4e9701
push 0x34
push 0
push esi
call fcn.00423ff0
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4e96a5
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 0x4e96aa
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x4e96cc
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 0x4e96cc
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4e96e7
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0053e8f0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4e971f
or dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4e971f
test ebx, ebx
je 0x4e9710
push ebx
push dword [edi]
call fcn.00542b00
add esp, 8
test ebp, ebp
je 0x4e971f
push ebp
push dword [edi]
call fcn.00542b00
add esp, 8
mov ebp, dword [esp + 0x70]
push 3
push esi
push ebp
call fcn.00597a20
mov esi, eax
push esi
push ebp
push dword [esp + 0x80]
call fcn.004e9270
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 0x4e9612
jmp 0x4e9fb6
cmp al, 0x2b
jne 0x4e97b7
push dword [esp + 0x74]
push ebp
push dword [esp + 0x74]
call fcn.004ea620
mov ebx, dword [ebp + 0x18]
add esp, 0xc
add ebx, dword [esp + 0x14]
jmp 0x4e9fb6
cmp al, 0x33
jne 0x4e98ca
mov eax, dword [esi + 0xc]
mov dword [esp + 0x48], eax
cmp byte [eax], 0xa7
jne 0x4e9fb6
cmp word [eax + 0x20], 0
jl 0x4e9fb6
mov ecx, dword [esp + 0x18]
test byte [ecx], 1
jne 0x4e9fb6
test eax, eax
je 0x4e9802
push 0
push 0
push eax
push dword [esp + 0x30]
call fcn.004eb740
add esp, 0x10
mov dword [esp + 0x50], eax
jmp 0x4e980a
mov dword [esp + 0x50], 0
push 0
push 0x34
push dword [esp + 0x2c]
call fcn.0053c1d0
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x4e9844
push 0x34
push 0
push eax
call fcn.00423ff0
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.00559230
push 0x83
push eax
push ebp
call fcn.00597a20
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x4e9fb6
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.0051a360
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 0x4e9fb6
cmp al, 0xac
jne 0x4e9fb6
cmp byte [ebp + 8], 0x2c
jne 0x4e9fb6
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.00511670
add esp, 0x14
test eax, eax
je 0x4e9fb6
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x4e992a
push 0
push 0
push ecx
push dword [esp + 0x30]
call fcn.004eb740
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x40], eax
jmp 0x4e9932
mov dword [esp + 0x40], 0
cmp dword [esp + 0x48], 0
je 0x4e999c
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4e999c
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 0x4e999c
mov ebp, dword [esp + 0x38]
mov esi, eax
mov edi, dword [esp + 0x40]
movzx edx, cl
lea ebx, [ebx + 1]
mov al, byte [edx + 0x6041f0]
and al, 0x20
not al
and al, cl
mov byte [esi + ebx - 1], al
mov ecx, dword [edi + 8]
mov al, byte [edx + 0x6040d8]
mov byte [ebx + ecx - 1], al
mov esi, dword [ebp + 8]
mov cl, byte [esi + ebx]
test cl, cl
jne 0x4e9963
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 0x4e99ff
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 8]
test edx, edx
jne 0x4e99b5
xor ecx, ecx
jmp 0x4e99cf
mov ecx, edx
lea ebx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4e99c0
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 0x4e99f0
xor ebx, ebx
cmp al, 0x40
movzx eax, al
cmove ecx, ebx
mov al, byte [eax + 0x6040d8]
inc al
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x24]
mov byte [edx - 1], al
jmp 0x4e9a07
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 0x4e9a35
push 0
push 0
push eax
push ecx
call fcn.004eb740
add esp, 0x10
jmp 0x4e9a37
xor eax, eax
push ebx
push eax
push edi
call fcn.0053eee0
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x60], eax
call fcn.0053c1d0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x4e9afa
push 0x34
push 0
push ebx
call fcn.00423ff0
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 0x4e9a94
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 0x4e9a9d
mov ecx, 1
mov dword [esp + 0x50], edx
mov dword [ebx + 0x18], ecx
mov edx, dword [esp + 0x48]
test edx, edx
je 0x4e9ac9
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 0x4e9ac9
lea ecx, [eax + 1]
mov dword [ebx + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4e9ae4
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0053e8f0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4e9b20
or dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 0x24], eax
jmp 0x4e9b20
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4e9b0d
push eax
push dword [edi]
call fcn.00542b00
add esp, 8
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4e9b20
push eax
push dword [edi]
call fcn.00542b00
add esp, 8
push 0x103
push ebx
push ebp
call fcn.00597a20
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4e9b4e
push 0
push 0
push eax
push dword [esp + 0x30]
call fcn.004eb740
add esp, 0x10
jmp 0x4e9b50
xor eax, eax
push dword [esp + 0x40]
push dword [esp + 0x5c]
push eax
push edi
call fcn.0053eee0
add esp, 0xc
push eax
push 0x38
push edi
call fcn.00559230
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4e9b88
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4e9b88
or dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx + 0x24], eax
push 0x103
push ecx
push ebp
call fcn.00597a20
push dword [esp + 0x5c]
mov ebx, eax
push ebp
push dword [esp + 0x80]
mov dword [esp + 0x70], ebx
call fcn.004e9270
push ebx
push ebp
push dword [esp + 0x8c]
call fcn.004e9270
mov ebx, dword [ebp + 0x18]
add esp, 0x24
add ebx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
je 0x4e9fb6
push dword [esp + 0x74]
push dword [esp + 0x54]
push ebp
call fcn.0051a360
push dword [esp + 0x80]
push dword [esp + 0x68]
push ebp
call fcn.0051a360
add esp, 0x18
jmp 0x4e9fb6
mov edx, dword [esi + 0xc]
mov dword [esp + 0x40], edx
test edx, edx
je 0x4e9c14
test dword [edx + 4], 0x2000
je 0x4e9c10
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4e9c00
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4e9c34
nop
test dword [eax + 4], 0x2000
je 0x4e9c30
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4e9c20
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 0x4e9c56
mov dword [esp + 0x44], 0x800
mov eax, dword [ebx + 0x1c]
test eax, eax
jle 0x4e9c6b
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.004ec3c0
mov edx, dword [esp + 0x60]
add esp, 0x10
test eax, eax
je 0x4e9ca9
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x64]
push edx
mov dword [ebx + 0x18], eax
call fcn.0051dec0
add esp, 4
and ax, word [esp + 0x44]
mov word [ebx + 0xc], ax
cmp byte [esp + 0x13], 0x2d
mov eax, 0x800
jne 0x4e9cb9
or word [ebx + 0xa], ax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4e9f64
push edx
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x78]
call fcn.004ec3c0
add esp, 0x10
test eax, eax
je 0x4e9f64
mov eax, dword [esp + 0x48]
test byte [eax + 4], 0x20
jne 0x4e9f64
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x38], 0
jl 0x4e9e45
mov ebx, dword [esp + 0x24]
push 0
push 0
push esi
push ebx
call fcn.004eb740
add esp, 0x10
mov esi, eax
cmp byte [ebx + 0x57], 0
je 0x4e9d34
test esi, esi
je 0x4ea60a
push esi
push ebx
call fcn.00542b00
add esp, 8
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x58
ret
push 3
push esi
push ebp
call fcn.00597a20
add esp, 0xc
test eax, eax
je 0x4ea60a
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.0051a360
add esp, 0xc
cmp byte [esp + 0x13], 0x2d
jne 0x4e9d73
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 0x4e9e49
mov al, byte [esi]
cmp al, 0x35
je 0x4e9d99
cmp al, 0x2d
jne 0x4e9e49
test byte [esi + 4], 1
jne 0x4e9e49
push dword [esi + 0xc]
call fcn.0053f090
push dword [esi + 0x10]
mov byte [esp + 0x1b], al
call fcn.0053f090
mov cl, al
add esp, 8
mov al, byte [esp + 0x13]
cmp al, cl
je 0x4e9dd1
cmp al, 0x43
jl 0x4e9e49
cmp cl, 0x43
jl 0x4e9e49
push esi
push edi
call fcn.005427a0
add esp, 8
test eax, eax
je 0x4e9e36
cmp dword [eax + 0xc], fcn.004dd900
je 0x4e9e36
push dword [esi + 0xc]
mov eax, dword [esi + 0x10]
push edi
mov dword [esp + 0x60], eax
call fcn.00542300
add esp, 8
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4e9e0c
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
push dword [esp + 0x58]
push edi
call fcn.00542300
add esp, 8
test eax, eax
jne 0x4e9e22
mov eax, dword [edi]
mov eax, dword [eax + 8]
push dword [eax]
mov eax, dword [esp + 0x54]
push dword [eax]
call fcn.0056ab20
add esp, 8
test eax, eax
jne 0x4e9e49
mov eax, 0x800
or word [ebx + 0xc], ax
mov dword [esp + 0x38], eax
jmp 0x4e9e49
mov dword [esp + 0x40], ebx
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0xb1
je 0x4e9eed
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
cmp byte [eax], 0xb1
je 0x4e9eed
test dword [ecx + 4], 0x200
je 0x4e9e71
push ecx
jmp 0x4e9e99
test eax, eax
je 0x4e9e81
test dword [eax + 4], 0x200
je 0x4e9e81
push eax
jmp 0x4e9e99
push ecx
push edi
call fcn.00542300
mov ecx, eax
add esp, 8
mov dword [esp + 0x48], ecx
test ecx, ecx
jne 0x4e9ea6
push dword [esp + 0x58]
push edi
call fcn.00542300
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 0x4e9ebc
push ecx
jmp 0x4e9ede
test eax, eax
je 0x4e9ecc
test dword [eax + 4], 0x200
je 0x4e9ecc
push eax
jmp 0x4e9ede
push ecx
push edi
call fcn.00542300
add esp, 8
test eax, eax
jne 0x4e9ee7
push dword [esp + 0x58]
push edi
call fcn.00542300
add esp, 8
cmp dword [esp + 0x48], eax
je 0x4e9ef4
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 0x4e9f0e
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.0051dec0
add ax, word [esp + 0x3c]
add esp, 4
and ax, word [esp + 0x44]
mov esi, dword [esp + 0x20]
mov word [edx + 0xc], ax
jmp 0x4e9fb6
cmp byte [esp + 0x13], 0x32
jne 0x4e9fb6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
test al, 1
jne 0x4e9fb6
push dword [esp + 0x40]
call fcn.0053f8e0
add esp, 4
test eax, eax
jne 0x4e9fb6
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 0x4e9fc6
cmp cl, 0x2d
jne 0x4ea193
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0xb0
jne 0x4e9fd2
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x4e9fdb
mov edx, dword [edx + 0x14]
jmp 0x4e9fe9
cmp al, 0x8a
jne 0x4ea193
mov eax, dword [edx + 0x14]
mov edx, dword [eax + 0x1c]
mov edx, dword [edx]
mov dword [esp + 0x48], edx
cmp edx, 1
jle 0x4ea193
mov eax, dword [esi + 0x10]
mov ch, byte [eax]
cmp ch, 0xb0
jne 0x4ea005
mov ch, byte [eax + 2]
cmp ch, 0xb1
jne 0x4ea00f
mov eax, dword [eax + 0x14]
jmp 0x4ea01e
cmp ch, 0x8a
jne 0x4ea193
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], edx
jne 0x4ea193
mov eax, dword [esi + 0xc]
test dword [eax + 4], 0x1000
je 0x4ea042
mov eax, dword [esi + 0x10]
test dword [eax + 4], 0x1000
jne 0x4ea193
cmp byte [ebp + 8], 0x2c
jne 0x4ea193
xor ebp, ebp
mov dword [esp + 0x50], ebp
push edx
push ebp
push dword [esi + 0xc]
push edi
call fcn.00542bb0
push dword [esp + 0x58]
mov ebx, eax
push ebp
push dword [esi + 0x10]
push edi
call fcn.00542bb0
push 0
mov ebp, eax
mov al, byte [esi]
push 0x34
push dword [edi]
mov byte [esp + 0x3f], al
call fcn.0053c1d0
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x4ea11d
push 0x34
push 0
push esi
call fcn.00423ff0
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4ea0c1
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 0x4ea0c6
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x4ea0e8
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 0x4ea0e8
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4ea103
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0053e8f0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
and eax, 3
je 0x4ea13b
or dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4ea13b
test ebx, ebx
je 0x4ea12c
push ebx
push dword [edi]
call fcn.00542b00
add esp, 8
test ebp, ebp
je 0x4ea13b
push ebp
push dword [edi]
call fcn.00542b00
add esp, 8
mov ebx, dword [esp + 0x70]
push 0x8001
push esi
push ebx
call fcn.00597a20
push eax
push ebx
push dword [esp + 0x80]
call fcn.004e9270
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 0x4ea052
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 0x4ea5f7
cmp cl, 0x31
jne 0x4ea27c
cmp dword [ebx + 0x1c], 0
jne 0x4ea27c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0xb1
jne 0x4ea27c
mov eax, dword [esp + 0x18]
test dword [eax], 0x1000
je 0x4ea27c
mov eax, dword [esi + 0x14]
cmp dword [eax + 0x34], 0
je 0x4ea1d8
test dword [eax + 4], 0x200
je 0x4ea27c
cmp dword [eax + 0x44], 0
jne 0x4ea27c
cmp byte [ebp + 8], 0x2c
jne 0x4ea5f3
xor edi, edi
nop
mov ecx, dword [esi + 0xc]
mov al, byte [ecx]
cmp al, 0xb0
jne 0x4ea1fc
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4ea207
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x4ea21a
cmp al, 0x8a
jne 0x4ea215
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
jmp 0x4ea21a
mov eax, 1
cmp edi, eax
jge 0x4ea5f3
push 0x8002
push esi
push ebp
call fcn.00597a20
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.004e9270
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 0x4ea1f0
cmp byte [ebp + 8], 0x2c
jne 0x4ea5f3
cmp cl, 0xac
jne 0x4ea361
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x4ea5f3
cmp dword [ebx], 2
jne 0x4ea5f3
mov ebp, dword [ebx + 0x1c]
cmp byte [ebp], 0xa7
jne 0x4ea2e4
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4ea2e4
mov eax, dword [esp + 0x20]
xor esi, esi
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
push dword [esi*8 + 0x609648]
push eax
call fcn.0056ab20
add esp, 8
test eax, eax
je 0x4ea34c
mov eax, dword [esp + 0x58]
inc esi
cmp esi, 4
jl 0x4ea2c2
mov esi, dword [esp + 0x20]
mov ebp, dword [ebx + 8]
cmp byte [ebp], 0xa7
jne 0x4ea5ef
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4ea5ef
push eax
push dword [esp + 0x28]
call fcn.00552bb0
add esp, 8
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4ea5ef
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 0x4ea5ef
mov ebx, dword [ebx + 0x1c]
mov edx, 1
jmp 0x4ea3e0
mov al, byte [esi*8 + 0x60964c]
mov edx, 1
mov ebx, dword [ebx + 8]
mov dword [esp + 0x44], eax
jmp 0x4ea3e0
cmp cl, 0x34
je 0x4ea374
cmp cl, 0xab
je 0x4ea374
cmp cl, 0x33
jne 0x4ea5f3
mov ebp, dword [esi + 0xc]
xor edx, edx
mov ebx, dword [esi + 0x10]
cmp byte [ebp], 0xa7
jne 0x4ea391
mov eax, dword [ebp + 0x2c]
mov esi, 1
cmp byte [eax + 0x2b], 1
cmove edx, esi
test ebx, ebx
je 0x4ea3aa
cmp byte [ebx], 0xa7
jne 0x4ea3aa
mov eax, dword [ebx + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4ea3aa
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 0x4ea3c0
mov byte [esp + 0x44], 0x45
jmp 0x4ea3d2
cmp cl, 0x33
movzx eax, al
mov esi, 0x46
cmove eax, esi
mov byte [esp + 0x44], al
test edx, edx
je 0x4ea5ef
nop word [eax + eax]
dec edx
mov dword [esp + 0x58], edx
test ebx, ebx
je 0x4ea429
cmp byte [ebx], 0xa7
jne 0x4ea40b
test byte [ebx + 4], 0x20
jne 0x4ea40b
push dword [ebx + 0x1c]
push dword [esp + 0x20]
call fcn.005861e0
add esp, 8
mov dword [esp + 0x38], edx
mov esi, eax
jmp 0x4ea43e
test dword [ebx + 4], 0x810000
jne 0x4ea429
push ebx
push dword [esp + 0x20]
call fcn.00585ff0
add esp, 8
mov dword [esp + 0x38], edx
mov esi, eax
jmp 0x4ea43e
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 0x4ea47b
cmp byte [ebp], 0xa7
jne 0x4ea463
test byte [ebp + 4], 0x20
jne 0x4ea463
push dword [ebp + 0x1c]
push dword [esp + 0x20]
call fcn.005861e0
add esp, 8
jmp 0x4ea48c
test dword [ebp + 4], 0x810000
jne 0x4ea47b
push ebp
push dword [esp + 0x20]
call fcn.00585ff0
add esp, 8
jmp 0x4ea48c
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 0x4ea5dd
test ebx, ebx
je 0x4ea4af
push eax
push eax
push ebx
push dword [esp + 0x30]
call fcn.004eb740
add esp, 0x10
jmp 0x4ea4b1
xor eax, eax
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x5c], eax
call fcn.0053c1d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4ea521
push 0x34
push 0
push esi
call fcn.00423ff0
mov ecx, dword [esp + 0x5c]
or eax, 0xffffffff
add esp, 0xc
mov byte [esi], 0x2e
mov word [esi + 0x22], ax
test ecx, ecx
je 0x4ea4fc
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 0x4ea501
mov ecx, 1
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4ea534
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0053e8f0
add esp, 0xc
jmp 0x4ea534
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4ea534
push eax
push dword [edi]
call fcn.00542b00
add esp, 8
mov eax, dword [esp + 0x18]
test byte [eax], 1
je 0x4ea54f
test esi, esi
je 0x4ea54f
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.00597a20
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 0x4ea3e0
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