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

Disassembly:
sub esp, 0x58
push ebx
push esi
mov esi, dword [esp + 0x68]
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], 0
mov eax, dword [esi]
mov dword [esp + 0x34], 0
mov ebx, dword [eax]
mov dword [esp + 0x50], ebx
mov ecx, dword [ebx]
mov dword [esp + 0x14], ecx
cmp byte [ecx + 0x57], 0
jne 0x4d4a28
mov ecx, dword [esp + 0x6c]
lea edx, [eax + 0x1f0]
push ebp
push edi
mov dword [esp + 0x18], edx
lea ebp, [ecx + ecx*2]
shl ebp, 4
add ebp, dword [esi + 0x18]
mov edi, dword [ebp]
mov dword [edx], 0
mov dword [esp + 0x64], edi
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4d36f9
cmp byte [eax], 0xa7
jne 0x4d36c0
test byte [eax + 4], 0x20
jne 0x4d36c0
push dword [eax + 0x1c]
push edx
call fcn.0053ec90
mov dword [esp + 0x28], edx
add esp, 8
mov edx, dword [esp + 0x18]
jmp 0x4d370b
test dword [eax + 4], 0x810000
je 0x4d36e5
movlpd qword [esp + 0x5c], xmm0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
jmp 0x4d370f
push eax
push edx
call fcn.0053ea90
mov dword [esp + 0x28], edx
add esp, 8
mov edx, dword [esp + 0x18]
jmp 0x4d370b
movlpd qword [esp + 0x5c], xmm0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov al, byte [edi]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x50], eax
cmp eax, 0x31
jne 0x4d3768
push edi
push ebx
call fcn.00505df0
add esp, 8
test eax, eax
jne 0x4d4a26
test dword [edi + 4], 0x1000
mov ecx, dword [edi + 0x14]
push ecx
push dword [esp + 0x1c]
je 0x4d374b
call fcn.004d6c00
jmp 0x4d3750
call fcn.0053e9f0
mov ecx, eax
add esp, 8
mov dword [ebp + 0x20], ecx
or ecx, dword [esp + 0x2c]
mov dword [ebp + 0x24], edx
or edx, dword [esp + 0x20]
jmp 0x4d3821
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4d37a1
cmp byte [eax], 0xa7
jne 0x4d378a
test byte [eax + 4], 0x20
jne 0x4d378a
push dword [eax + 0x1c]
push edx
call fcn.0053ec90
add esp, 8
mov ecx, eax
jmp 0x4d37b2
test dword [eax + 4], 0x810000
jne 0x4d37a1
push eax
push edx
call fcn.0053ea90
add esp, 8
mov ecx, eax
jmp 0x4d37b2
xorps xmm0, xmm0
movlpd qword [esp + 0x5c], xmm0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], edx
cmp dword [edi + 0xc], 0
je 0x4d37da
test dword [edi + 4], 0x41000
lea eax, [edi + 4]
jne 0x4d37da
cmp dword [edi + 0x14], 0
jne 0x4d37da
or ecx, dword [esp + 0x2c]
or edx, dword [esp + 0x20]
jmp 0x4d3824
cmp byte [edi], 0xa7
jne 0x4d37f3
test byte [edi + 4], 0x20
jne 0x4d37f3
push dword [edi + 0x1c]
push dword [esp + 0x1c]
call fcn.0053ec90
jmp 0x4d381c
test dword [edi + 4], 0x810000
lea eax, [edi + 4]
je 0x4d3812
xorps xmm0, xmm0
movlpd qword [esp + 0x5c], xmm0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
jmp 0x4d3824
push edi
push dword [esp + 0x1c]
call fcn.0053ea90
mov ecx, eax
add esp, 8
lea eax, [edi + 4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
cmp dword [esi], 0
mov esi, dword [esp + 0x70]
je 0x4d3846
mov ebx, 0x1000
or word [ebp + 0xa], bx
mov ebx, dword [esp + 0x58]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
test al, 3
je 0x4d390b
push dword [edi + 0x24]
push dword [esp + 0x1c]
call fcn.0053ec90
mov ecx, dword [esp + 0x2c]
add esp, 8
test byte [esp + 0x48], 1
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
je 0x4d38bc
or edx, dword [esp + 0x30]
or ecx, eax
add eax, 0xffffffff
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
adc eax, 0xffffffff
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], eax
mov eax, edx
shrd dword [esp + 0x4c], eax, 1
mov dword [esp + 0x28], edx
shr eax, 1
cmp eax, dword [esp + 0x30]
ja 0x4d38eb
jb 0x4d391b
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x5c]
jae 0x4d38eb
jmp 0x4d391b
mov dword [esp + 0x4c], ecx
mov eax, edx
shrd dword [esp + 0x4c], eax, 1
shr eax, 1
cmp eax, dword [esp + 0x30]
jb 0x4d390b
ja 0x4d38dc
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x5c]
jb 0x4d390b
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jle 0x4d3901
test byte [eax + 0x2c], 0x40
je 0x4d3901
push str.ON_clause_references_tables_to_its_right
push ebx
call fcn.00505000
add esp, 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x58
ret
mov eax, dword [esp + 0x48]
and eax, 0xfffffffd
mov dword [edi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [ebp + 0x28], ecx
mov word [ebp + 0xc], ax
mov al, byte [esp + 0x13]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x14], 0xffffffff
mov dword [ebp + 0x10], 0xffffffff
cmp al, 0x31
je 0x4d3f92
cmp al, 0x35
jb 0x4d394d
cmp al, 0x39
jbe 0x4d3f92
cmp al, 0x32
je 0x4d3f92
cmp al, 0x2d
je 0x4d3f92
mov al, byte [edi]
cmp al, 0x30
jne 0x4d3b1d
cmp byte [esi + 8], 0x2c
jne 0x4d3b47
mov ecx, dword [esp + 0x74]
xor esi, esi
mov eax, dword [edi + 0x14]
mov dword [esp + 0x3c], esi
lea ecx, [ecx + ecx*2]
shl ecx, 4
add eax, 8
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], eax
jmp 0x4d3995
mov esi, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x4d39b0
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004d5ac0
add esp, 0x10
mov ebp, eax
jmp 0x4d39b2
xor ebp, ebp
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4d39cc
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004d5ac0
add esp, 0x10
jmp 0x4d39ce
xor eax, eax
push 0
mov dword [esp + 0x50], eax
mov al, byte [esi + 0x6e9248]
push 0x34
push dword [ebx]
mov byte [esp + 0x1f], al
call fcn.00503030
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4d3a83
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4d3a28
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 0x4d3a2d
mov ecx, 1
mov edx, dword [esp + 0x4c]
mov ebp, ecx
mov dword [esi + 0x18], ecx
test edx, edx
je 0x4d3a55
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [edx + 0x18]
cmp eax, ecx
jl 0x4d3a55
lea ebp, [eax + 1]
mov dword [esi + 0x18], ebp
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp ebp, eax
jle 0x4d3a70
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00505000
add esp, 0xc
mov eax, dword [edi + 4]
and eax, 3
je 0x4d3aa5
or dword [esi + 4], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4d3aa5
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4d3a96
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
test ebp, ebp
je 0x4d3aa5
push ebp
push dword [ebx]
call fcn.00508c00
add esp, 8
mov ebp, dword [esp + 0x70]
push 3
push esi
push ebp
call fcn.0054e060
mov esi, eax
push esi
push ebp
push dword [esp + 0x80]
call fcn.004d3630
mov ecx, dword [ebp + 0x18]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x74]
add edx, edx
mov esi, dword [esp + 0x8c]
add esp, 0x18
mov dword [ecx + edx*8 + 0x10], esi
lea ebp, [ecx + eax]
mov esi, dword [esp + 0x70]
mov ecx, dword [esi + 0x18]
mov ax, word [ecx + eax + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esp + 0x3c], ecx
inc byte [eax + edx + 0xe]
mov eax, dword [esp + 0x50]
add eax, 0x14
mov dword [esp + 0x50], eax
cmp ecx, 2
jl 0x4d3991
jmp 0x4d4381
cmp al, 0x2b
jne 0x4d3b47
push dword [esp + 0x74]
push esi
push dword [esp + 0x74]
call fcn.004d4a30
mov edx, dword [esp + 0x80]
add esp, 0xc
lea ebp, [edx + edx*2]
shl ebp, 4
add ebp, dword [esi + 0x18]
jmp 0x4d4381
cmp al, 0x33
jne 0x4d3c68
mov eax, dword [edi + 0xc]
mov dword [esp + 0x4c], eax
cmp byte [eax], 0xa7
jne 0x4d4381
cmp word [eax + 0x20], 0
jl 0x4d4381
test byte [edi + 4], 1
jne 0x4d4381
test eax, eax
je 0x4d3b8f
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004d5ac0
add esp, 0x10
mov dword [esp + 0x5c], eax
jmp 0x4d3b97
mov dword [esp + 0x5c], 0
push 0
push 0x34
push dword [esp + 0x24]
call fcn.00503030
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
je 0x4d3bd1
push 0x34
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x5c]
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 + 0x60]
push 0x36
push ebx
call fcn.00516c80
push 0x83
push eax
push esi
call fcn.0054e060
add esp, 0x1c
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4d4381
mov ecx, dword [esp + 0x70]
lea esi, [eax + eax*2]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x74]
shl esi, 4
add esi, dword [ecx + 0x18]
push ebp
push dword [esp + 0x60]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [edx + 0x20]
mov dword [esi + 0x18], eax
mov eax, 4
push ecx
mov word [esi + 0xc], ax
call fcn.004e5aa0
mov eax, dword [esp + 0x7c]
lea ebp, [ebp + ebp*2]
shl ebp, 4
add esp, 0xc
add ebp, dword [eax + 0x18]
or word [ebp + 0xa], 8
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov esi, dword [esp + 0x70]
jmp 0x4d4381
cmp al, 0xac
jne 0x4d4381
cmp byte [esi + 8], 0x2c
jne 0x4d4381
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x1c]
push eax
push edi
push ebx
call fcn.004df3e0
add esp, 0x14
test eax, eax
je 0x4d4381
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x50], eax
test ecx, ecx
je 0x4d3cc8
push 0
push 0
push ecx
push dword [esp + 0x28]
call fcn.004d5ac0
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x30], eax
jmp 0x4d3cd0
mov dword [esp + 0x30], 0
cmp dword [esp + 0x3c], 0
je 0x4d3d3c
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne 0x4d3d3c
mov eax, 0x400
or word [ebp + 0xa], ax
xor ebp, ebp
mov ecx, dword [ecx + 8]
mov dword [esp + 0x5c], ecx
mov cl, byte [ecx]
test cl, cl
je 0x4d3d3c
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x30]
movzx edx, cl
lea ebp, [ebp + 1]
mov al, byte [edx + 0x6e9040]
and al, 0x20
not al
and al, cl
mov byte [edi + ebp - 1], al
mov ecx, dword [ebx + 8]
mov al, byte [edx + 0x6e8f28]
mov byte [ecx + ebp - 1], al
mov edi, dword [esi + 8]
mov cl, byte [edi + ebp]
test cl, cl
jne 0x4d3d03
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x57], 0
jne 0x4d3d9f
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 8]
test edx, edx
jne 0x4d3d55
xor ecx, ecx
jmp 0x4d3d6f
mov ecx, edx
lea ebp, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d3d60
sub ecx, ebp
and ecx, 0x3fffffff
mov al, byte [edx + ecx - 1]
add edx, ecx
cmp dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x38]
je 0x4d3d90
xor ebp, ebp
cmp al, 0x40
movzx eax, al
cmove ecx, ebp
mov al, byte [eax + 0x6e8f28]
inc al
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov byte [edx - 1], al
jmp 0x4d3da7
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x3c], 0
mov eax, 0x6e921c
mov ebp, str.NOCASE
cmove ebp, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x64], ebp
test eax, eax
je 0x4d3dd5
push 0
push 0
push eax
push ecx
call fcn.004d5ac0
add esp, 0x10
jmp 0x4d3dd7
xor eax, eax
push ebp
push eax
push ebx
call fcn.005054e0
push 0
push 0x34
push dword [ebx]
mov dword [esp + 0x74], eax
call fcn.00503030
mov ebp, eax
add esp, 0x18
test ebp, ebp
je 0x4d3e94
push 0x34
push 0
push ebp
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x20]
or eax, 0xffffffff
add esp, 0xc
mov byte [ebp], 0x39
mov word [ebp + 0x22], ax
test ecx, ecx
je 0x4d3e2f
mov dword [ebp + 0x10], ecx
mov eax, dword [ecx + 4]
and eax, 0x400208
or dword [ebp + 4], eax
mov ecx, dword [ecx + 0x18]
inc ecx
jmp 0x4d3e34
mov ecx, 1
mov edx, dword [esp + 0x5c]
mov dword [ebp + 0x18], ecx
mov dword [esp + 0x4c], ecx
test edx, edx
je 0x4d3e64
mov dword [ebp + 0xc], edx
mov eax, dword [edx + 4]
and eax, 0x400208
mov dword [esp + 0x4c], ecx
or dword [ebp + 4], eax
mov eax, dword [edx + 0x18]
cmp eax, ecx
jl 0x4d3e64
inc eax
mov dword [esp + 0x4c], eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [esp + 0x4c], eax
jle 0x4d3e81
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00505000
add esp, 0xc
mov eax, dword [edi + 4]
and eax, 3
je 0x4d3eba
or dword [ebp + 4], eax
mov eax, dword [edi + 0x24]
mov dword [ebp + 0x24], eax
jmp 0x4d3eba
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4d3ea7
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4d3eba
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
push 0x103
push ebp
push esi
call fcn.0054e060
mov dword [esp + 0x68], eax
add esp, 0xc
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4d3ee8
push 0
push 0
push eax
push dword [esp + 0x28]
call fcn.004d5ac0
add esp, 0x10
jmp 0x4d3eea
xor eax, eax
push dword [esp + 0x30]
push dword [esp + 0x68]
push eax
push ebx
call fcn.005054e0
add esp, 0xc
push eax
push 0x38
push ebx
call fcn.00516c80
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4d3f1f
mov eax, dword [edi + 4]
and eax, 3
je 0x4d3f1f
or dword [ecx + 4], eax
mov eax, dword [edi + 0x24]
mov dword [ecx + 0x24], eax
push 0x103
push ecx
push esi
call fcn.0054e060
push dword [esp + 0x68]
mov ebp, eax
push esi
push dword [esp + 0x80]
mov dword [esp + 0x7c], ebp
call fcn.004d3630
push ebp
push esi
push dword [esp + 0x8c]
call fcn.004d3630
mov edx, dword [esp + 0x98]
add esp, 0x24
lea ebp, [edx + edx*2]
shl ebp, 4
add ebp, dword [esi + 0x18]
cmp dword [esp + 0x38], 0
je 0x4d4381
push edx
push dword [esp + 0x60]
push esi
call fcn.004e5aa0
push dword [esp + 0x80]
push dword [esp + 0x74]
push esi
call fcn.004e5aa0
add esp, 0x18
jmp 0x4d4381
mov edx, dword [edi + 0xc]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4d3fb4
nop dword [eax]
test dword [edx + 4], 0x2000
je 0x4d3fb0
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4d3fa0
mov dword [esp + 0x3c], edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x4d3fd4
nop
test dword [eax + 4], 0x2000
je 0x4d3fd0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4d3fc0
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x24]
and ecx, dword [ebp + 0x20]
and eax, dword [esp + 0x20]
or ecx, eax
mov dword [esp + 0x38], 0x3fff
je 0x4d3ff6
mov dword [esp + 0x38], 0x800
mov eax, dword [ebp + 0x1c]
test eax, eax
jle 0x4d400b
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov edx, dword [eax + ecx*4 - 0xc]
mov dword [esp + 0x3c], edx
push dword [esp + 0x50]
lea eax, [esp + 0x34]
push edx
push eax
push dword [esp + 0x78]
call fcn.004d66b0
mov edx, dword [esp + 0x60]
add esp, 0x10
test eax, eax
je 0x4d4049
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x34]
push edx
mov dword [ebp + 0x18], eax
call fcn.004e8f30
add esp, 4
and ax, word [esp + 0x38]
mov word [ebp + 0xc], ax
cmp byte [esp + 0x13], 0x2d
mov eax, 0x800
jne 0x4d4059
or word [ebp + 0xa], ax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4d4335
push edx
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x78]
call fcn.004d66b0
add esp, 0x10
test eax, eax
je 0x4d4335
mov eax, dword [esp + 0x4c]
test byte [eax + 4], 0x20
jne 0x4d4335
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x4c], 0
jl 0x4d4226
mov ebp, dword [esp + 0x1c]
push 0
push 0
push edi
push ebp
call fcn.004d5ac0
add esp, 0x10
mov dword [esp + 0x14], eax
cmp byte [ebp + 0x57], 0
je 0x4d40d6
test eax, eax
je 0x4d4a26
push eax
push ebp
call fcn.00508c00
add esp, 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x58
ret
push 3
push eax
push esi
call fcn.0054e060
add esp, 0xc
test eax, eax
je 0x4d4a26
push dword [esp + 0x74]
lea ebp, [eax + eax*2]
shl ebp, 4
add ebp, dword [esi + 0x18]
push eax
push esi
mov dword [esp + 0x5c], ebp
call fcn.004e5aa0
add esp, 0xc
cmp byte [esp + 0x13], 0x2d
jne 0x4d4115
mov eax, 0x800
or word [ebp + 0xa], ax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x14]
lea ebp, [eax + eax*2]
shl ebp, 4
add ebp, dword [esi + 0x18]
or word [ebp + 0xa], 8
mov eax, dword [ebx]
test byte [eax + 0x50], 0x80
jne 0x4d41fe
mov al, byte [edx]
cmp al, 0x35
je 0x4d4145
cmp al, 0x2d
jne 0x4d41fe
test byte [edx + 4], 1
jne 0x4d41fe
push dword [edx + 0xc]
call fcn.005055c0
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x18]
push dword [eax + 0x10]
call fcn.005055c0
mov cl, al
add esp, 8
mov al, byte [esp + 0x13]
cmp al, cl
je 0x4d4181
cmp al, 0x43
jl 0x4d41fa
cmp cl, 0x43
jl 0x4d41fa
push dword [esp + 0x14]
push ebx
call fcn.00508980
add esp, 8
test eax, eax
je 0x4d41ed
cmp dword [eax + 0xc], fcn.004c97d0
je 0x4d41ed
mov eax, dword [esp + 0x14]
push dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
push ebx
mov dword [esp + 0x6c], ecx
call fcn.00508540
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x4d41c3
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], eax
push dword [esp + 0x64]
push ebx
call fcn.00508540
add esp, 8
test eax, eax
jne 0x4d41d9
mov eax, dword [ebx]
mov eax, dword [eax + 8]
push dword [eax]
mov eax, dword [esp + 0x60]
push dword [eax]
call fcn.00526840
add esp, 8
test eax, eax
jne 0x4d41fa
mov eax, 0x800
or word [ebp + 0xc], ax
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xc]
cmp byte [ecx], 0xb1
je 0x4d42b6
mov eax, dword [edx + 0x10]
mov dword [esp + 0x64], eax
cmp byte [eax], 0xb1
je 0x4d42b6
test dword [ecx + 4], 0x200
je 0x4d4232
push ecx
jmp 0x4d425a
mov edx, edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x14], edx
jmp 0x4d41fe
test eax, eax
je 0x4d4242
test dword [eax + 4], 0x200
je 0x4d4242
push eax
jmp 0x4d425a
push ecx
push ebx
call fcn.00508540
mov ecx, eax
add esp, 8
mov dword [esp + 0x3c], ecx
test ecx, ecx
jne 0x4d4267
push dword [esp + 0x64]
push ebx
call fcn.00508540
add esp, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x64], ecx
test dword [eax + 4], 0x200
je 0x4d4281
push eax
jmp 0x4d42a3
test ecx, ecx
je 0x4d4291
test dword [ecx + 4], 0x200
je 0x4d4291
push ecx
jmp 0x4d42a3
push eax
push ebx
call fcn.00508540
add esp, 8
test eax, eax
jne 0x4d42ac
push dword [esp + 0x64]
push ebx
call fcn.00508540
add esp, 8
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x3c], eax
je 0x4d42bd
xor dword [edx + 4], 0x400
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x10], eax
mov al, byte [edx]
mov dword [edx + 0xc], ecx
cmp al, 0x36
jb 0x4d42d7
sub al, 0x36
xor al, 2
add al, 0x36
mov byte [edx], al
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
or dword [esp + 0x20], esi
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x2c]
or eax, dword [esp + 0x40]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0x2c], eax
movzx eax, byte [edx]
push eax
call fcn.004e8f30
mov ecx, dword [esp + 0x54]
add esp, 4
add ax, word [esp + 0x4c]
and ax, word [esp + 0x38]
mov esi, dword [esp + 0x70]
mov word [ecx + 0xc], ax
jmp 0x4d4381
cmp byte [esp + 0x13], 0x32
jne 0x4d4381
mov eax, dword [edi + 4]
mov dword [esp + 0x64], eax
test al, 1
jne 0x4d4381
push dword [esp + 0x3c]
call fcn.00505d40
add esp, 4
test eax, eax
jne 0x4d4381
mov eax, dword [esp + 0x64]
or eax, 0x20000000
mov byte [edi], 0xaa
mov dword [edi + 4], eax
xor eax, eax
mov dword [edi + 8], str.false
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x2c], 0
mov word [ebp + 0xc], ax
mov al, byte [edi]
cmp al, 0x35
je 0x4d438f
cmp al, 0x2d
jne 0x4d4559
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0xb0
jne 0x4d439b
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4d43a4
mov ecx, dword [ecx + 0x14]
jmp 0x4d43b2
cmp al, 0x8a
jne 0x4d4559
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx]
mov dword [esp + 0x50], ecx
cmp ecx, 1
jle 0x4d4559
mov edx, dword [edi + 0x10]
mov al, byte [edx]
cmp al, 0xb0
jne 0x4d43cd
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x4d43d6
mov eax, dword [edx + 0x14]
jmp 0x4d43e4
cmp al, 0x8a
jne 0x4d4559
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], ecx
jne 0x4d4559
mov eax, dword [edi + 0xc]
test dword [eax + 4], 0x1000
je 0x4d4405
test dword [edx + 4], 0x1000
jne 0x4d4559
cmp byte [esi + 8], 0x2c
jne 0x4d4559
xor ebp, ebp
mov dword [esp + 0x58], ebp
push ecx
push ebp
push dword [edi + 0xc]
push ebx
call fcn.00508c90
push dword [esp + 0x60]
mov dword [esp + 0x70], eax
push ebp
push dword [edi + 0x10]
push ebx
call fcn.00508c90
push 0
mov ebp, eax
mov al, byte [edi]
push 0x34
push dword [ebx]
mov byte [esp + 0x3f], al
call fcn.00503030
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x4d44e1
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esi], al
mov eax, 0xffffffff
mov word [esi + 0x22], ax
test ebp, ebp
je 0x4d4486
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 0x4d448b
mov ecx, 1
mov edx, dword [esp + 0x5c]
mov ebp, ecx
mov dword [esi + 0x18], ecx
test edx, edx
je 0x4d44b3
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [edx + 0x18]
cmp eax, ecx
jl 0x4d44b3
lea ebp, [eax + 1]
mov dword [esi + 0x18], ebp
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp ebp, eax
jle 0x4d44ce
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00505000
add esp, 0xc
mov eax, dword [edi + 4]
and eax, 3
je 0x4d4503
or dword [esi + 4], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
jmp 0x4d4503
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4d44f4
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
test ebp, ebp
je 0x4d4503
push ebp
push dword [ebx]
call fcn.00508c00
add esp, 8
push 0x8001
push esi
mov esi, dword [esp + 0x78]
push esi
call fcn.0054e060
push eax
push esi
push dword [esp + 0x80]
call fcn.004d3630
mov ebp, dword [esp + 0x70]
add esp, 0x18
mov ecx, dword [esp + 0x50]
inc ebp
mov dword [esp + 0x58], ebp
cmp ebp, ecx
jl 0x4d4415
mov eax, dword [esp + 0x74]
mov ecx, 0x2000
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x18]
or word [eax + 0xa], 6
mov word [eax + 0xc], cx
jmp 0x4d4a0b
mov cl, byte [edi]
cmp cl, 0x31
jne 0x4d464b
cmp dword [ebp + 0x1c], 0
jne 0x4d464b
mov eax, dword [edi + 0xc]
cmp byte [eax], 0xb1
jne 0x4d464b
test dword [edi + 4], 0x1000
je 0x4d464b
mov eax, dword [edi + 0x14]
cmp dword [eax + 0x34], 0
je 0x4d459d
test dword [eax + 4], 0x200
je 0x4d464b
cmp dword [eax + 0x44], 0
jne 0x4d464b
cmp byte [esi + 8], 0x2c
jne 0x4d4a0b
mov eax, dword [esp + 0x74]
xor ebp, ebp
lea eax, [eax + eax*2]
shl eax, 4
mov dword [esp + 0x64], eax
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0xb0
jne 0x4d45cd
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4d45d8
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x4d45eb
cmp al, 0x8a
jne 0x4d45e6
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
jmp 0x4d45eb
mov eax, 1
cmp ebp, eax
jge 0x4d4a0b
push 0x8002
push edi
push esi
call fcn.0054e060
mov ebx, dword [esp + 0x7c]
inc ebp
push eax
push ebx
push dword [esp + 0x80]
mov ecx, dword [ebx + 0x18]
lea esi, [eax + eax*2]
add esi, esi
mov dword [ecx + esi*8 + 0x1c], ebp
call fcn.004d3630
mov eax, dword [ebx + 0x18]
add esp, 0x18
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
mov dword [eax + esi*8 + 0x10], ecx
mov ecx, dword [ebx + 0x18]
mov ax, word [ecx + edx + 8]
mov word [ecx + esi*8 + 8], ax
mov esi, ebx
mov eax, dword [esi + 0x18]
inc byte [eax + edx + 0xe]
jmp 0x4d45c1
cmp byte [esi + 8], 0x2c
jne 0x4d4a0b
cmp cl, 0xac
jne 0x4d4748
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x4d4a0b
cmp dword [ecx], 2
jne 0x4d4a0b
mov ebp, dword [ecx + 0x1c]
cmp byte [ebp], 0xa7
jne 0x4d46b8
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4d46b8
xor eax, eax
mov dword [esp + 0x50], eax
nop
push dword [eax*8 + 0x6e9140]
push dword [edi + 8]
call fcn.00526840
add esp, 8
test eax, eax
mov eax, dword [esp + 0x50]
je 0x4d4728
inc eax
mov dword [esp + 0x50], eax
cmp eax, 4
jl 0x4d4690
mov ecx, dword [esp + 0x4c]
mov ebp, dword [ecx + 8]
cmp byte [ebp], 0xa7
jne 0x4d4a0b
mov eax, dword [ebp + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4d4a0b
push eax
push dword [esp + 0x20]
call fcn.00511a50
add esp, 8
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4d4a0b
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x34]
push edx
push dword [edi + 8]
push 2
push ecx
call eax
add esp, 0x14
mov dword [esp + 0x3c], eax
cmp eax, 0x96
jl 0x4d4a0b
mov esi, dword [esp + 0x4c]
mov ecx, 1
mov esi, dword [esi + 0x1c]
mov dword [esp + 0x24], esi
jmp 0x4d47cf
mov esi, dword [esp + 0x4c]
mov ecx, 1
mov al, byte [eax*8 + 0x6e9144]
mov dword [esp + 0x3c], eax
mov esi, dword [esi + 8]
mov dword [esp + 0x24], esi
jmp 0x4d47cf
cmp cl, 0x34
je 0x4d475b
cmp cl, 0xab
je 0x4d475b
cmp cl, 0x33
jne 0x4d4a0b
mov ebp, dword [edi + 0xc]
xor ecx, ecx
mov esi, dword [edi + 0x10]
mov dword [esp + 0x24], esi
cmp byte [ebp], 0xa7
jne 0x4d477b
mov eax, dword [ebp + 0x2c]
mov edx, 1
cmp byte [eax + 0x2b], dl
cmove ecx, edx
test esi, esi
je 0x4d4798
cmp byte [esi], 0xa7
jne 0x4d4798
mov eax, dword [esi + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x4d4798
mov eax, ebp
inc ecx
mov ebp, esi
mov dword [esp + 0x24], eax
mov esi, eax
mov dl, byte [edi]
cmp dl, 0x34
setne al
dec al
and al, 0x44
cmp dl, 0xab
jne 0x4d47b0
mov byte [esp + 0x3c], 0x45
jmp 0x4d47c7
cmp dl, 0x33
movzx eax, al
mov dword [esp + 0x64], 0x46
cmove eax, dword [esp + 0x64]
mov byte [esp + 0x3c], al
test ecx, ecx
je 0x4d4a07
mov eax, dword [esp + 0x74]
lea eax, [eax + eax*2]
shl eax, 4
mov dword [esp + 0x5c], eax
nop dword [eax]
dec ecx
mov dword [esp + 0x64], ecx
test esi, esi
je 0x4d4838
cmp byte [esi], 0xa7
jne 0x4d4809
test byte [esi + 4], 0x20
jne 0x4d4809
push dword [esi + 0x1c]
push dword [esp + 0x1c]
call fcn.0053ec90
add esp, 8
mov dword [esp + 0x28], edx
jmp 0x4d484d
test dword [esi + 4], 0x810000
je 0x4d4825
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x28], ecx
jmp 0x4d4849
push esi
push dword [esp + 0x1c]
call fcn.0053ea90
add esp, 8
mov dword [esp + 0x28], edx
jmp 0x4d484d
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], eax
test ebp, ebp
je 0x4d488a
cmp byte [ebp], 0xa7
jne 0x4d4872
test byte [ebp + 4], 0x20
jne 0x4d4872
push dword [ebp + 0x1c]
push dword [esp + 0x1c]
call fcn.0053ec90
add esp, 8
jmp 0x4d489b
test dword [ebp + 4], 0x810000
jne 0x4d488a
push ebp
push dword [esp + 0x1c]
call fcn.0053ea90
add esp, 8
jmp 0x4d489b
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
and eax, dword [esp + 0x2c]
and edx, dword [esp + 0x28]
or eax, edx
jne 0x4d49f1
test esi, esi
je 0x4d48c0
push eax
push eax
push esi
push dword [esp + 0x28]
call fcn.004d5ac0
add esp, 0x10
jmp 0x4d48c2
xor eax, eax
push 0
push 0x34
push dword [ebx]
mov dword [esp + 0x5c], eax
call fcn.00503030
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4d4937
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x5c]
or eax, 0xffffffff
add esp, 0xc
mov byte [esi], 0x2e
mov word [esi + 0x22], ax
lea edx, [eax + 0x19]
test ecx, ecx
je 0x4d4910
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 0x4d4915
mov ecx, 1
mov eax, esi
mov dword [eax + edx], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4d494a
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00505000
add esp, 0xc
jmp 0x4d494a
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4d494a
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
test byte [edi + 4], 1
je 0x4d495e
test esi, esi
je 0x4d495e
or dword [esi + 4], 1
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x70]
push 3
push esi
push eax
call fcn.0054e060
mov ecx, dword [esp + 0x7c]
add esp, 0xc
mov ebx, dword [esp + 0x74]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x2c]
mov esi, dword [ecx + 0x18]
shl edx, 4
add esi, edx
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x28]
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 + 0x3c]
mov byte [esi + 0xf], al
mov eax, dword [ecx + 0x18]
mov dword [eax + edx + 0x10], ebx
mov ecx, dword [ecx + 0x18]
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
mov ax, word [ecx + eax + 8]
mov word [ecx + edx + 8], ax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x18]
inc byte [eax + edx + 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 esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
mov eax, ebp
mov ebp, esi
mov esi, eax
mov dword [esp + 0x24], esi
test ecx, ecx
jg 0x4d47e0
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x18]
or dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x48]
or dword [eax + 0x24], ecx
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x58
ret