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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x100ff008]
xor eax, esp
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0xc]
test edx, edx
push ebx
push esi
setne al
mov dword [esp + 0x38], edx
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
mov dword [esp + 0x4c], ecx
mov dl, byte [ecx + eax + 0x19]
add eax, 7
mov edi, dword [esi]
lea eax, [ecx + eax*4]
mov ebx, dword [eax]
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], dl
mov dword [esp + 0x68], eax
test dl, dl
je 0x100518f2
test ebx, ebx
jne 0x100518f2
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x2c], ebx
mov ebx, ecx
push eax
push ebx
mov ecx, esi
call fcn.1004ee30
add esp, 0xc
test eax, eax
jne 0x1005188d
xor ecx, ecx
mov dword [esp + 0x40], ecx
cmp dword [ebx + 0x14], ecx
jle 0x1005153e
mov dword [esp + 0x6c], 0x100f19a8
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], 0x100f19a4
mov dword [esp + 0x78], 3
nop word [eax + eax]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10050d7d
mov edx, dword [eax + ecx*4]
jmp 0x10050d80
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10050d9e
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*8]
jmp 0x10050da3
mov ecx, 0x100f3204
mov eax, dword [ebx]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x44], edx
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x7c], edx
test eax, eax
je 0x10050ddd
cmp byte [ecx], 0
je 0x10050dd6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10050dd0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x5c], eax
mov eax, edx
test eax, eax
je 0x10050dfd
cmp byte [edx], 0
je 0x10050df6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10050df0
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [esi]
mov edx, 0x1b
mov dword [esp + 0x1c], eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x7c]
push 1
push eax
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x10050e3e
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x10050e5e
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10050e5e
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x10050e94
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x10050eb4
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10050eb4
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10050ee6
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x10050f06
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10050f06
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x7a
push 1
push 0
call fcn.100362a0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test edi, edi
jne 0x10050f3d
mov edx, ebx
mov ecx, eax
call fcn.10036bf0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
call fcn.10036bf0
jmp 0x10050f85
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10050f53
mov dword [edi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [edi + 4], eax
test ebx, ebx
je 0x10050f65
mov dword [edi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x100
or dword [edi + 4], eax
mov ecx, edi
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x10050f85
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x4f
push 1
push 0
call fcn.100362a0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x10050fbc
mov edx, edi
mov ecx, eax
call fcn.10036bf0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
call fcn.10036bf0
jmp 0x10051004
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10050fd2
mov dword [ebx + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
test edi, edi
je 0x10050fe4
mov dword [ebx + 0xc], edi
mov eax, dword [edi + 4]
and eax, 0x100
or dword [ebx + 4], eax
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10051004
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov edx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.100366b0
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x10051311
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10051059
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x10051079
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10051079
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test edi, edi
jne 0x100510b1
xor edx, edx
mov ecx, eax
call fcn.10036bf0
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.10036bf0
jmp 0x100510d1
mov ecx, edi
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x100510d1
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x7a
push 1
push 0
call fcn.100362a0
mov ecx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], eax
test ecx, ecx
jne 0x1005110a
mov edx, edi
mov ecx, eax
call fcn.10036bf0
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.10036bf0
jmp 0x10051150
test ebx, ebx
je 0x1005111c
mov dword [ecx + 0x10], ebx
mov eax, dword [ebx + 4]
and eax, 0x100
or dword [ecx + 4], eax
test edi, edi
je 0x1005112e
mov dword [ecx + 0xc], edi
mov eax, dword [edi + 4]
and eax, 0x100
or dword [ecx + 4], eax
call fcn.100361a0
mov eax, dword [esi]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x18], ecx
jle 0x10051150
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x10051186
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x100511a6
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x100511a6
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100511d8
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x100511f8
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x100511f8
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x7a
push 1
push 0
call fcn.100362a0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test edi, edi
jne 0x1005122f
mov edx, ebx
mov ecx, eax
call fcn.10036bf0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
call fcn.10036bf0
jmp 0x10051277
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10051245
mov dword [edi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [edi + 4], eax
test ebx, ebx
je 0x10051257
mov dword [edi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x100
or dword [edi + 4], eax
mov ecx, edi
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x10051277
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x49
push 1
push 0
call fcn.100362a0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x100512ae
mov edx, edi
mov ecx, eax
call fcn.10036bf0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
call fcn.10036bf0
jmp 0x100512f6
mov eax, dword [esp + 0x38]
test eax, eax
je 0x100512c4
mov dword [ebx + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
test edi, edi
je 0x100512d6
mov dword [ebx + 0xc], edi
mov eax, dword [edi + 4]
and eax, 0x100
or dword [ebx + 4], eax
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x100512f6
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov edx, dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.100366b0
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x13]
cmp al, 6
je 0x10051524
cmp al, 9
jne 0x1005148a
test ecx, ecx
je 0x10051524
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x10051363
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x10051383
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x10051383
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.100362a0
mov edi, dword [esi]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100513b5
xor edx, edx
mov ecx, edi
call fcn.10036bf0
xor edx, edx
mov ecx, edi
call fcn.10036bf0
jmp 0x100513d5
mov ecx, ebx
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x100513d5
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov ecx, dword [esi]
mov edx, 0x7a
push 1
push 0
call fcn.100362a0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test edi, edi
jne 0x1005140c
mov edx, ebx
mov ecx, eax
call fcn.10036bf0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
call fcn.10036bf0
jmp 0x10051454
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10051422
mov dword [edi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [edi + 4], eax
test ebx, ebx
je 0x10051434
mov dword [edi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x100
or dword [edi + 4], eax
mov ecx, edi
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x10051454
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, esi
push edi
call fcn.10037850
mov edx, eax
add esp, 4
mov dword [esp + 0x48], edx
test edx, edx
je 0x10051524
cmp dword [esp + 0x64], 0
mov eax, dword [edx]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
lea ebx, [eax + ecx*8]
jne 0x100514eb
xor edi, edi
jmp 0x10051521
cmp al, 8
jne 0x100514b5
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x100514b5
push 0
push 0
mov ecx, ebx
call fcn.10036db0
add esp, 8
mov edi, eax
jmp 0x10051454
mov ecx, dword [esi]
mov edx, 0x65
push 1
push 0
call fcn.100362a0
mov ebx, dword [esi]
mov edi, eax
add esp, 8
test edi, edi
jne 0x10051434
xor edx, edx
mov ecx, ebx
call fcn.10036bf0
xor edx, edx
mov ecx, ebx
call fcn.10036bf0
jmp 0x10051454
mov edx, dword [esp + 0x1c]
xor eax, eax
mov ecx, dword [esi]
add edx, 1
adc eax, eax
push eax
push edx
call fcn.10005190
mov edi, eax
add esp, 8
test edi, edi
je 0x10051521
push dword [esp + 0x1c]
push dword [esp + 0x68]
push edi
call fcn.100bfbc0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov byte [edi + eax], 0
mov dword [ebx - 0x14], edi
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x40], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x10050d70
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x1005158d
test edi, edi
je 0x10051584
cmp dword [edi + 0x208], 0
je 0x1005155e
mov edx, ecx
mov ecx, edi
call fcn.10004ee0
jmp 0x1005158d
cmp ecx, dword [edi + 0x114]
jb 0x10051584
cmp ecx, dword [edi + 0x118]
jae 0x10051584
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x1005158d
push ecx
call fcn.10004e40
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x44], eax
test eax, eax
je 0x100515ae
cmp byte [eax], 0
je 0x100515a6
inc ebx
cmp byte [ebx], 0
jne 0x100515a0
sub ebx, eax
and ebx, 0x3fffffff
cmp byte [esp + 0x13], 6
jne 0x100516fe
mov dword [esp + 0x7c], eax
mov edi, str.FOREIGN_KEY_constraint_failed
mov dword [esp + 0x80], ebx
nop dword [eax]
inc edi
cmp byte [edi], 0
jne 0x100515d0
mov ecx, dword [esp + 0x18]
sub edi, str.FOREIGN_KEY_constraint_failed
and edi, 0x3fffffff
push 0
lea eax, [edi + 0x31]
push eax
call fcn.10005190
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10051648
lea ecx, [edi + 0x31]
push ecx
push 0
push eax
call fcn.100bfa00
mov eax, dword [esp + 0x28]
or ecx, 0xffffffff
add esp, 0xc
mov word [eax + 0x22], cx
lea ecx, [eax + 0x30]
mov byte [eax], 0x39
mov dword [eax + 8], ecx
test edi, edi
je 0x10051639
push edi
push str.FOREIGN_KEY_constraint_failed
push ecx
call fcn.100bfbc0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [eax + 8]
mov byte [ecx + edi], 0
mov dword [eax + 0x18], 1
mov byte [eax + 1], 2
mov eax, dword [esi]
mov ecx, eax
push 0
push 8
mov dword [esp + 0x38], eax
call fcn.10005190
mov edi, eax
add esp, 8
test edi, edi
je 0x100516a2
mov ecx, dword [esp + 0x30]
xorps xmm0, xmm0
push 0
push 0x18
movq qword [edi], xmm0
call fcn.10005190
mov edx, eax
add esp, 8
mov dword [edi + 4], edx
test edx, edx
je 0x100516a2
mov ecx, dword [edi]
xorps xmm0, xmm0
lea eax, [ecx + ecx*2]
lea edx, [edx + eax*8]
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
movups xmmword [edx], xmm0
movq qword [edx + 0x10], xmm0
mov dword [edx], eax
jmp 0x100516bc
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
call fcn.10036bf0
mov ecx, dword [esp + 0x30]
mov edx, edi
call fcn.10037900
xor edi, edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x4c]
lea eax, [esp + 0x98]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x38]
push 0
push eax
call fcn.10047a70
add esp, 0xc
mov edx, edi
mov ecx, esi
push eax
call fcn.1005ee50
add esp, 0x20
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x18]
push 0
mov al, byte [ecx + 0xfa]
mov byte [esp + 0x2b], al
lea eax, [ebx + 0x4d]
push eax
mov byte [ecx + 0xfa], 0
call fcn.10005190
mov edi, eax
add esp, 8
mov dword [esp + 0x40], edi
test edi, edi
je 0x10051838
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call fcn.100bfa00
add esp, 0xc
mov dword [edi + 0x34], ebx
lea ecx, [edi + 0x24]
lea eax, [ecx + 0x28]
mov dword [esp + 0x2c], ecx
mov dword [edi + 0x1c], ecx
push ebx
push dword [esp + 0x48]
mov dword [ecx + 0xc], eax
push eax
call fcn.100bfbc0
mov ebx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, ebx
push 0
push 1
call fcn.10036db0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.10037060
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.100375e0
mov ecx, dword [esp + 0x30]
add esp, 4
cmp dword [esp + 0x28], 0
mov dword [ecx + 8], eax
je 0x10051840
mov ecx, dword [esi]
mov edx, 0x13
push 1
push 0
call fcn.100362a0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x44], eax
test ebx, ebx
jne 0x100517e9
mov edx, dword [esp + 0x28]
mov ecx, eax
call fcn.10036bf0
mov ecx, dword [esp + 0x44]
xor edx, edx
call fcn.10036bf0
jmp 0x1005181b
mov eax, dword [esp + 0x28]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
call fcn.100361a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x1005181b
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10007bb0
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edx, ebx
push 0
push 1
mov ecx, esi
mov dword [esp + 0x30], ebx
call fcn.10036db0
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x10051844
mov esi, dword [esp + 0x18]
mov ebx, edi
jmp 0x10051848
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x40]
mov al, byte [esp + 0x27]
mov ecx, esi
mov edx, dword [esp + 0x34]
mov byte [esi + 0xfa], al
call fcn.10036bf0
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.10036bf0
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.10037900
mov edx, dword [esp + 0x50]
mov ecx, esi
call fcn.1005f0c0
cmp byte [esi + 0x40], 1
jne 0x100518a1
mov edx, edi
mov ecx, esi
call fcn.10050100
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.100bd09a
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x13]
mov edx, dword [esp + 0x3c]
cmp al, 6
je 0x100518c7
cmp al, 9
jne 0x100518be
test edx, edx
jne 0x100518be
mov ecx, dword [esp + 0x2c]
mov byte [ecx], 0x6d
jmp 0x100518ce
mov ecx, dword [esp + 0x2c]
mov byte [ecx], 0x6e
jmp 0x100518ce
mov ecx, dword [esp + 0x2c]
mov byte [ecx], 0x77
mov dword [ecx + 4], edi
test edx, edx
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x44]
mov dword [edi + 0x14], eax
mov ecx, dword [ecx + 0x44]
mov eax, dword [esp + 0x68]
mov dword [edi + 0x18], ecx
setne cl
add cl, 0x6d
mov dword [eax], edi
mov byte [edi + 8], cl
mov ecx, dword [esp + 0x84]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100bd09a
mov esp, ebp
pop ebp
ret