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

Disassembly:
sub esp, 0x50
push ebp
mov ebp, dword [esp + 0x5c]
push edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [ebp]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edi, dword [ecx]
mov dword [esp + 0x4c], edi
mov byte [esp + 0xb], 0
mov eax, dword [edi]
mov dword [esp + 0x14], eax
cmp byte [eax + 0x53], 0
jne 0x42f5c6
mov eax, dword [esp + 0x64]
add ecx, 0x1e8
push ebx
push esi
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
mov dword [esp + 0x20], ecx
shl edx, 4
add esi, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov ebx, dword [esi]
mov dword [esp + 0x5c], ebx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x42e5c7
push eax
push ecx
call fcn.0048d610
mov ecx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x42e5d7
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ebx]
mov byte [esp + 0x12], al
movzx eax, al
mov dword [esp + 0x4c], eax
cmp eax, 0x31
jne 0x42e620
push ebx
push edi
call fcn.00458c40
add esp, 8
test eax, eax
jne 0x42f5c4
test dword [ebx + 4], 0x800
mov eax, dword [ebx + 0x14]
push eax
push dword [esp + 0x24]
je 0x42e616
call fcn.004316e0
add esp, 8
jmp 0x42e63c
call fcn.0048d5a0
add esp, 8
jmp 0x42e63c
cmp eax, 0x32
je 0x42e638
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x42e638
push eax
push ecx
call fcn.0048d610
add esp, 8
jmp 0x42e63c
xor eax, eax
xor edx, edx
mov ecx, esi
push ebx
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x24], edx
push eax
mov dword [eax], 0
call fcn.0048d610
mov ecx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp dword [ecx], 0
je 0x42e672
mov edx, 0x1000
or word [esi + 0xa], dx
test byte [ebx + 4], 1
je 0x42e6dc
push dword [ebx + 0x24]
push ecx
call fcn.0048d7c0
or dword [esp + 0x34], edx
mov ecx, eax
mov eax, dword [esp + 0x30]
add esp, 8
or eax, ecx
mov dword [esp + 0x30], ecx
add dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
adc dword [esp + 0x34], 0xffffffff
shrd dword [esp + 0x48], eax, 1
shr eax, 1
cmp eax, edx
jb 0x42e6d8
ja 0x42e6c2
cmp dword [esp + 0x48], ecx
jb 0x42e6d8
push str.ON_clause_references_tables_to_its_right
push edi
call fcn.00457ce0
add esp, 8
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x50
ret
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x2c], eax
xor eax, eax
mov word [esi + 0xc], ax
mov al, byte [esp + 0x12]
mov dword [esi + 0x14], 0xffffffff
mov dword [esi + 0x10], 0xffffffff
cmp al, 0x31
je 0x42ed6c
cmp al, 0x35
jb 0x42e716
cmp al, 0x39
jbe 0x42ed6c
cmp al, 0x32
je 0x42ed6c
cmp al, 0x2d
je 0x42ed6c
mov al, byte [ebx]
cmp al, 0x30
jne 0x42e8c2
cmp byte [ebp + 8], 0x2c
jne 0x42e902
mov eax, dword [ebx + 0x14]
xor esi, esi
add eax, 4
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], eax
lea ebx, [ebx]
mov eax, dword [eax]
test eax, eax
je 0x42e76d
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004308b0
add esp, 0x10
mov dword [esp + 0x44], eax
jmp 0x42e775
mov dword [esp + 0x44], 0
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x42e78f
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004308b0
add esp, 0x10
jmp 0x42e791
xor eax, eax
push 0
mov dword [esp + 0x4c], eax
mov al, byte [esi + 0x4cf484]
push 0x34
push dword [edi]
mov byte [esp + 0x1e], al
call fcn.00455fb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42e82e
push 0x34
push 0
push esi
call fcn.004ac5e0
mov al, byte [esp + 0x1e]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x42e7e5
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x42e7fb
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
push esi
call fcn.00431990
mov eax, dword [edi]
add esp, 4
mov eax, dword [eax + 0x7c]
cmp dword [esi + 0x18], eax
jle 0x42e81d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00457ce0
add esp, 0xc
mov eax, dword [ebx + 4]
and eax, 1
or dword [esi + 4], eax
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x24], eax
jmp 0x42e854
mov eax, dword [esp + 0x48]
test eax, eax
je 0x42e841
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x42e854
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
push 3
push esi
push ebp
call fcn.0049b780
mov esi, eax
push esi
push ebp
push dword [esp + 0x78]
call fcn.0042e530
mov ecx, dword [ebp + 0x14]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x30]
add edx, edx
mov esi, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x2c], eax
add esp, 0x18
mov eax, dword [esp + 0x6c]
mov dword [ecx + edx*8 + 0x10], eax
mov ecx, dword [ebp + 0x14]
mov ax, word [ecx + esi + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [ebp + 0x14]
inc byte [eax + esi + 0xe]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
inc esi
add eax, 0x14
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], eax
cmp esi, 2
jl 0x42e750
mov edx, dword [esp + 0x14]
jmp 0x42e904
cmp al, 0x2b
jne 0x42e8dd
push dword [esp + 0x6c]
push ebp
push ecx
call fcn.0042f830
mov edx, dword [ebp + 0x14]
add esp, 0xc
add edx, dword [esp + 0x18]
jmp 0x42e904
cmp al, 0x14
jne 0x42e930
test byte [ebx + 4], 0x20
je 0x42e902
mov eax, dword [esp + 0x1c]
test dword [eax + 0x4c], 0x20000
jne 0x42e902
push dword [esp + 0x6c]
push ebp
push ecx
call fcn.0042f5d0
add esp, 0xc
mov edx, esi
mov cl, byte [ebx]
cmp cl, 0x35
je 0x42e914
cmp cl, 0x2d
jne 0x42f2e3
mov esi, dword [ebx + 0xc]
mov al, byte [esi]
cmp al, 0xaf
jne 0x42e920
mov al, byte [esi + 2]
cmp al, 0xb0
jne 0x42f145
mov eax, dword [esi + 0x14]
jmp 0x42f153
cmp al, 0x33
jne 0x42ea21
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], eax
cmp byte [eax], 0xa6
jne 0x42e902
cmp word [eax + 0x20], 0
jl 0x42e902
test byte [ebx + 4], 1
jne 0x42e902
push 0
push 0x34
push dword [esp + 0x24]
call fcn.00455fb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42e985
push 0x34
push 0
push esi
call fcn.004ac5e0
add esp, 0xc
mov byte [esi], 0x78
or eax, 0xffffffff
mov dword [esi + 0x18], 1
mov word [esi + 0x22], ax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42e9a0
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004308b0
add esp, 0x10
jmp 0x42e9a2
xor eax, eax
push esi
push eax
push 0x36
push edi
call fcn.00467d20
push 0x83
push eax
push ebp
call fcn.0049b780
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x42e8bc
mov ecx, dword [esp + 0x4c]
lea esi, [edx + edx*2]
push dword [esp + 0x6c]
shl esi, 4
add esi, dword [ebp + 0x14]
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.0043aff0
mov edx, dword [ebp + 0x14]
add esp, 0xc
add edx, dword [esp + 0x18]
or word [edx + 0xa], 8
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x42e904
cmp al, 0xab
jne 0x42e902
cmp byte [ebp + 8], 0x2c
jne 0x42e902
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x2c]
push eax
push ebx
push edi
call fcn.004397b0
add esp, 0x14
test eax, eax
je 0x42e902
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x42ea81
push 0
push 0
push ecx
push dword [esp + 0x28]
call fcn.004308b0
mov ecx, dword [esp + 0x34]
add esp, 0x10
mov dword [esp + 0x2c], eax
jmp 0x42ea89
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x3c], 0
je 0x42eaf7
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
jne 0x42eaf7
mov eax, 0x400
or word [esi + 0xa], ax
xor esi, esi
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
mov cl, byte [eax]
test cl, cl
je 0x42eaf7
mov ebx, dword [esp + 0x24]
mov ebp, eax
mov edi, dword [esp + 0x2c]
lea ebx, [ebx]
movzx edx, cl
mov al, byte [edx + 0x4cf218]
and al, 0x20
not al
and al, cl
mov byte [ebp], al
mov ecx, dword [edi + 8]
mov al, byte [edx + 0x4cf118]
mov byte [esi + ecx], al
inc esi
mov ebp, dword [ebx + 8]
add ebp, esi
mov cl, byte [ebp]
test cl, cl
jne 0x42eac0
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x53], 0
jne 0x42eb5b
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
test edx, edx
jne 0x42eb10
xor ecx, ecx
jmp 0x42eb24
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42eb15
sub ecx, esi
and ecx, 0x3fffffff
cmp dword [esp + 0x3c], 0
mov al, byte [ecx + edx - 1]
mov esi, dword [esp + 0x38]
je 0x42eb4b
cmp al, 0x40
mov dword [esp + 0x5c], 0
movzx eax, al
cmove esi, dword [esp + 0x5c]
mov al, byte [eax + 0x4cf118]
inc al
mov dword [esp + 0x48], esi
mov byte [ecx + edx - 1], al
mov ecx, dword [esp + 0x1c]
jmp 0x42eb63
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x3c], 0
mov eax, 0x4cf3cc
mov esi, str.NOCASE
cmove esi, eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x42eb8f
push 0
push 0
push eax
push ecx
call fcn.004308b0
add esp, 0x10
mov edx, eax
jmp 0x42eb91
xor edx, edx
mov ecx, esi
mov dword [esp + 0x54], esi
lea eax, [ecx + 1]
mov dword [esp + 0x5c], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42eba0
sub ecx, dword [esp + 0x5c]
lea eax, [esp + 0x54]
push 0
push eax
push edx
and ecx, 0x3fffffff
push edi
mov dword [esp + 0x68], ecx
call fcn.00458470
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x68], eax
call fcn.00455fb0
add esp, 0x1c
mov dword [esp + 0x14], eax
test eax, eax
je 0x42ec63
push 0x34
push 0
push eax
call fcn.004ac5e0
mov ecx, dword [esp + 0x20]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
mov eax, dword [esp + 0x24]
mov byte [ecx], 0x39
test eax, eax
je 0x42ec12
mov dword [ecx + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42ec28
mov dword [ecx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [ecx + 4], eax
push ecx
call fcn.00431990
mov eax, dword [edi]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x7c]
cmp dword [ecx + 0x18], eax
jle 0x42ec52
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00457ce0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + 4]
and eax, 1
or dword [ecx + 4], eax
mov eax, dword [ebx + 0x24]
mov dword [ecx + 0x24], eax
jmp 0x42ec8d
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42ec76
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42ec89
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
mov ecx, dword [esp + 0x14]
push 0x103
push ecx
push ebp
call fcn.0049b780
push eax
push ebp
push dword [esp + 0x78]
mov dword [esp + 0x74], eax
call fcn.0042e530
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
je 0x42ecc8
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004308b0
add esp, 0x10
mov ecx, eax
jmp 0x42ecca
xor ecx, ecx
mov dword [esp + 0x54], esi
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x42ecd1
push 0
lea eax, [esp + 0x58]
sub esi, edx
push eax
push ecx
and esi, 0x3fffffff
push edi
mov dword [esp + 0x68], esi
call fcn.00458470
push dword [esp + 0x3c]
push eax
push 0x38
push edi
call fcn.00467d20
add esp, 0x20
test eax, eax
je 0x42ed15
mov ecx, dword [ebx + 4]
and ecx, 1
or dword [eax + 4], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
push 0x103
push eax
push ebp
call fcn.0049b780
mov esi, eax
push esi
push ebp
push dword [esp + 0x78]
call fcn.0042e530
mov edx, dword [ebp + 0x14]
add esp, 0x18
add edx, dword [esp + 0x18]
cmp dword [esp + 0x48], 0
mov dword [esp + 0x14], edx
je 0x42e904
push dword [esp + 0x6c]
push dword [esp + 0x60]
push ebp
call fcn.0043aff0
push dword [esp + 0x78]
push esi
push ebp
call fcn.0043aff0
mov edx, dword [esp + 0x2c]
add esp, 0x18
jmp 0x42e904
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x42ed8b
test dword [edx + 4], 0x1000
je 0x42ed87
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x42ed77
mov dword [esp + 0x3c], edx
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
test eax, eax
je 0x42edaa
test dword [eax + 4], 0x1000
je 0x42eda6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x42ed96
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x40]
mov eax, esi
mov dword [esp + 0x48], 0x1fff
and ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
and eax, dword [esp + 0x44]
or ecx, eax
je 0x42edce
mov dword [esp + 0x48], 0x800
mov eax, dword [esi + 0x1c]
test eax, eax
jle 0x42ede3
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov edx, dword [eax + ecx*4 - 0x10]
mov dword [esp + 0x3c], edx
push dword [esp + 0x4c]
lea eax, [esp + 0x58]
push edx
push eax
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x78]
call fcn.004312a0
mov edx, dword [esp + 0x64]
add esp, 0x18
test eax, eax
je 0x42ee29
mov eax, dword [esp + 0x54]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x58]
push edx
mov dword [esi + 0x18], eax
call fcn.0043def0
add esp, 4
and ax, word [esp + 0x48]
mov word [esi + 0xc], ax
cmp byte [esp + 0x12], 0x2d
mov eax, 0x800
jne 0x42ee39
or word [esi + 0xa], ax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x42f104
push edx
push eax
lea eax, [esp + 0x5c]
push eax
mov eax, esi
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [esp + 0x78]
call fcn.004312a0
add esp, 0x18
test eax, eax
je 0x42f104
cmp dword [esi + 0x14], 0
mov dword [esp + 0x50], 0
jl 0x42efda
mov esi, dword [esp + 0x1c]
push 0
push 0
push ebx
push esi
call fcn.004308b0
add esp, 0x10
mov dword [esp + 0x24], eax
cmp byte [esi + 0x53], 0
je 0x42eeb0
test eax, eax
je 0x42f5c4
push eax
push esi
call fcn.0045b700
add esp, 8
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x50
ret
push 3
push eax
push ebp
call fcn.0049b780
add esp, 0xc
test eax, eax
je 0x42f5c4
push dword [esp + 0x6c]
lea esi, [eax + eax*2]
shl esi, 4
add esi, dword [ebp + 0x14]
push eax
push ebp
mov dword [esp + 0x44], esi
call fcn.0043aff0
add esp, 0xc
cmp byte [esp + 0x12], 0x2d
jne 0x42eeef
mov eax, 0x800
or word [esi + 0xa], ax
mov esi, dword [ebp + 0x14]
add esi, dword [esp + 0x18]
mov dword [esp + 0x14], esi
or word [esi + 0xa], 8
mov eax, dword [edi]
test byte [eax + 0x4c], 0x80
jne 0x42efe2
mov eax, dword [esp + 0x24]
mov cl, byte [eax]
cmp cl, 0x35
je 0x42ef1f
cmp cl, 0x2d
jne 0x42efe2
test byte [eax + 4], 1
jne 0x42efe2
push dword [eax + 0xc]
call fcn.00458500
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x28]
push dword [eax + 0x10]
call fcn.00458500
mov cl, al
add esp, 8
mov al, byte [esp + 0x12]
cmp al, cl
je 0x42ef5f
cmp al, 0x43
jl 0x42efe2
cmp cl, 0x43
jl 0x42efe2
push dword [esp + 0x24]
push edi
call fcn.0045b660
add esp, 8
test eax, eax
je 0x42efcb
cmp dword [eax + 0xc], fcn.00425780
je 0x42efcb
mov eax, dword [esp + 0x24]
push dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
push edi
mov dword [esp + 0x64], ecx
call fcn.0045b260
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x42efa1
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
push dword [esp + 0x5c]
push edi
call fcn.0045b260
add esp, 8
test eax, eax
jne 0x42efb7
mov eax, dword [edi]
mov eax, dword [eax + 8]
push dword [eax]
mov eax, dword [esp + 0x50]
push dword [eax]
call fcn.00475700
add esp, 8
test eax, eax
jne 0x42efe2
mov eax, 0x800
or word [esi + 0xc], ax
mov dword [esp + 0x50], eax
jmp 0x42efe2
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0xb0
je 0x42f08a
mov eax, dword [esi + 0x10]
mov dword [esp + 0x5c], eax
cmp byte [eax], 0xb0
je 0x42f08a
test dword [ecx + 4], 0x100
je 0x42f00e
push ecx
jmp 0x42f036
test eax, eax
je 0x42f01e
test dword [eax + 4], 0x100
je 0x42f01e
push eax
jmp 0x42f036
push ecx
push edi
call fcn.0045b260
mov ecx, eax
add esp, 8
mov dword [esp + 0x3c], ecx
test ecx, ecx
jne 0x42f043
push dword [esp + 0x5c]
push edi
call fcn.0045b260
add esp, 8
mov dword [esp + 0x3c], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x5c], eax
test dword [ecx + 4], 0x100
je 0x42f059
push ecx
jmp 0x42f07b
test eax, eax
je 0x42f069
test dword [eax + 4], 0x100
je 0x42f069
push eax
jmp 0x42f07b
push ecx
push edi
call fcn.0045b260
add esp, 8
test eax, eax
jne 0x42f084
push dword [esp + 0x5c]
push edi
call fcn.0045b260
add esp, 8
cmp dword [esp + 0x3c], eax
je 0x42f091
xor dword [esi + 4], 0x200
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 0x42f0ab
sub al, 0x36
xor al, 2
add al, 0x36
mov byte [esi], al
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
or ecx, dword [esp + 0x34]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x30]
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.0043def0
add ax, word [esp + 0x54]
add esp, 4
and ax, word [esp + 0x48]
mov word [edx + 0xc], ax
mov edx, dword [esp + 0x14]
jmp 0x42e904
cmp byte [esp + 0x12], 0x32
jne 0x42e902
push dword [esp + 0x3c]
call fcn.00458b90
add esp, 4
mov edx, esi
test eax, eax
jne 0x42e904
or dword [ebx + 4], 0x20000000
mov byte [ebx], 0xa9
mov dword [ebx + 8], str.false
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov word [esi + 0xc], ax
jmp 0x42e904
cmp al, 0x89
jne 0x42f2e3
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
cmp eax, 1
jle 0x42f2e3
mov ecx, dword [ebx + 0x10]
mov al, byte [ecx]
cmp al, 0xaf
jne 0x42f16e
mov al, byte [ecx + 2]
cmp al, 0xb0
jne 0x42f177
mov eax, dword [ecx + 0x14]
jmp 0x42f185
cmp al, 0x89
jne 0x42f2e1
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov ebp, dword [esp + 0x44]
cmp dword [eax], ebp
mov ebp, dword [esp + 0x68]
jne 0x42f2e1
test dword [esi + 4], 0x800
je 0x42f1ab
test dword [ecx + 4], 0x800
jne 0x42f2e1
cmp byte [ebp + 8], 0x2c
jne 0x42f2e1
xor esi, esi
mov dword [esp + 0x48], esi
jmp 0x42f1c0
push esi
push dword [ebx + 0xc]
push edi
call fcn.0045b7b0
push esi
push dword [ebx + 0x10]
mov dword [esp + 0x64], eax
push edi
call fcn.0045b7b0
push 0
mov dword [esp + 0x68], eax
mov al, byte [ebx]
push 0x34
push dword [edi]
mov byte [esp + 0x8c], al
call fcn.00455fb0
mov esi, eax
add esp, 0x24
test esi, esi
je 0x42f278
push 0x34
push 0
push esi
call fcn.004ac5e0
mov al, byte [esp + 0x74]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42f22f
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x42f245
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
push esi
call fcn.00431990
mov eax, dword [edi]
add esp, 4
mov eax, dword [eax + 0x7c]
cmp dword [esi + 0x18], eax
jle 0x42f267
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00457ce0
add esp, 0xc
mov eax, dword [ebx + 4]
and eax, 1
or dword [esi + 4], eax
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x24], eax
jmp 0x42f29e
mov eax, dword [esp + 0x50]
test eax, eax
je 0x42f28b
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42f29e
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
push 1
push esi
push ebp
call fcn.0049b780
push eax
push ebp
push dword [esp + 0x78]
call fcn.0042e530
mov esi, dword [esp + 0x60]
add esp, 0x18
inc esi
mov dword [esp + 0x48], esi
cmp esi, dword [esp + 0x44]
jl 0x42f1c0
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
or word [eax + edx + 0xa], 6
xor ecx, ecx
mov word [eax + edx + 0xc], cx
jmp 0x42f5b1
mov cl, byte [ebx]
cmp cl, 0x31
jne 0x42f3ab
cmp dword [edx + 0x1c], 0
jne 0x42f3ab
mov eax, dword [ebx + 0xc]
cmp byte [eax], 0xb0
jne 0x42f3ab
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x34], 0
jne 0x42f3ab
cmp dword [eax + 0x44], 0
jne 0x42f3ab
cmp byte [ebp + 8], 0x2c
jne 0x42f5ad
mov edx, dword [esp + 0x18]
xor edi, edi
lea esp, [esp]
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx]
cmp al, 0xaf
jne 0x42f33c
mov al, byte [ecx + 2]
cmp al, 0xb0
jne 0x42f347
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x42f35a
cmp al, 0x89
jne 0x42f355
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
jmp 0x42f35a
mov eax, 1
cmp edi, eax
jge 0x42f5b1
push 2
push ebx
push ebp
call fcn.0049b780
mov ecx, dword [ebp + 0x14]
inc edi
push eax
push ebp
push dword [esp + 0x78]
lea esi, [eax + eax*2]
add esi, esi
mov dword [ecx + esi*8 + 0x1c], edi
call fcn.0042e530
mov eax, dword [ebp + 0x14]
add esp, 0x18
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
mov dword [eax + esi*8 + 0x10], ecx
mov ecx, dword [ebp + 0x14]
mov ax, word [edx + ecx + 8]
mov word [ecx + esi*8 + 8], ax
mov eax, dword [ebp + 0x14]
inc byte [eax + edx + 0xe]
jmp 0x42f330
cmp byte [ebp + 8], 0x2c
jne 0x42f5ad
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x54], 0
push eax
lea eax, [esp + 0x1b]
push eax
push ebx
push dword [esp + 0x2c]
call fcn.00438d90
add esp, 0x14
test eax, eax
jle 0x42f5ad
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], ecx
lea esp, [esp]
dec eax
mov dword [esp + 0x5c], eax
test esi, esi
je 0x42f424
push esi
push dword [esp + 0x24]
call fcn.0048d610
mov ecx, dword [esp + 0x70]
add esp, 8
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edx
jmp 0x42f434
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
test ecx, ecx
je 0x42f447
push ecx
push dword [esp + 0x24]
call fcn.0048d610
add esp, 8
jmp 0x42f44b
xor eax, eax
xor edx, edx
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x44]
or eax, edx
jne 0x42f58b
test esi, esi
je 0x42f470
push eax
push eax
push esi
push dword [esp + 0x28]
call fcn.004308b0
add esp, 0x10
jmp 0x42f472
xor eax, eax
push 0
push 0x34
push dword [edi]
mov dword [esp + 0x58], eax
call fcn.00455fb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42f4db
push 0x34
push 0
push esi
call fcn.004ac5e0
or eax, 0xffffffff
mov byte [esi], 0x2e
mov word [esi + 0x22], ax
add esp, 0xc
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42f4b7
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
push esi
call fcn.00431990
mov eax, dword [edi]
add esp, 4
mov eax, dword [eax + 0x7c]
cmp dword [esi + 0x18], eax
jle 0x42f4ee
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00457ce0
add esp, 0xc
jmp 0x42f4ee
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42f4ee
push eax
push dword [edi]
call fcn.0045b700
add esp, 8
test byte [ebx + 4], 1
je 0x42f502
test esi, esi
je 0x42f502
or dword [esi + 4], 1
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x24], eax
push 3
push esi
push ebp
call fcn.0049b780
mov esi, dword [ebp + 0x14]
add esp, 0xc
mov ecx, dword [esp + 0x68]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x48]
shl edx, 4
add esi, edx
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [ecx + 0x20]
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x18], eax
mov eax, 0x40
mov word [esi + 0xc], ax
mov al, byte [esp + 0x13]
mov byte [esi + 0xf], al
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 0x10], ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x18]
mov ax, word [eax + ecx + 8]
mov word [ecx + edx + 8], ax
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
inc byte [eax + edx + 0xe]
mov ecx, dword [ebp + 0x14]
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 esi, dword [esp + 0x40]
jmp 0x42f58f
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov ecx, esi
mov esi, eax
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x40], esi
test eax, eax
jg 0x42f400
jmp 0x42f5b1
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
add eax, edx
or dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x34]
or dword [eax + 0x24], ecx
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x50
ret