Function at 0x10078ad0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x10125170]
xor eax, esp
mov dword [esp + 0x144], eax
lea eax, [ecx + 0x50]
mov dword [esp + 0x7c], eax
push esi
mov esi, dword [ecx]
mov dword [esp + 0x24], edx
mov eax, dword [esi]
mov dword [esp + 0x60], eax
lea eax, [edx + edx*4]
shl eax, 4
lea edx, [ecx + 0x2f0]
add edx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [edx + 0x40]
mov dword [esp + 0x54], eax
movzx eax, byte [edx + 0x2c]
push edi
mov edi, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x54]
shl ecx, 4
mov eax, dword [eax + 4]
add eax, 8
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0x30]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x60], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x18], edx
cmp dword [ecx + 0x1ec], eax
jle 0x10078b88
add ecx, 0x1f0
mov edx, dword [esp + 0x38]
cmp dword [ecx], edx
mov edx, dword [esp + 0x18]
je 0x10078d55
mov edi, dword [esp + 0x54]
inc eax
add ecx, 4
cmp eax, dword [edi + 0x1ec]
mov edi, dword [esp + 0x40]
jl 0x10078b64
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
not ecx
and ecx, dword [ebp + 8]
not eax
and eax, dword [ebp + 0xc]
mov dword [edx + 0x48], ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + 0x4c], eax
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ecx, dword [esp + 0x28]
call fcn.1000aac0
and eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
test byte [eax + 0x24], 0x40
je 0x10078be8
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], 1
test byte [eax + 0x2c], 0x20
je 0x10078bf0
mov dword [esp + 0x1c], 0
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x7c], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x10078c30
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
push eax
call fcn.100ec600
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add esp, 8
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x10078c3e
mov dword [eax + edx*4], 0xffffffff
mov esi, dword [esp + 0x60]
or eax, 0xffffffff
sub eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x10], eax
inc eax
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x10]
dec eax
test dword [esp + 0x10], eax
jne 0x10078c98
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
lea eax, [eax*8 + 4]
push 0
push eax
call fcn.100ec600
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 8
mov dword [ecx + 0x48], eax
mov ecx, dword [ecx + 0x48]
mov eax, dword [esp + 0x10]
test ecx, ecx
je 0x10078caa
mov dword [ecx + eax*4], 0xffffffff
or ecx, 0xffffffff
sub ecx, eax
cmp byte [edx + 0x2c], 0
mov dword [esp + 0x94], ecx
mov dword [edx + 0x18], ecx
jbe 0x10078ce8
mov eax, dword [esp + 0xc]
test byte [eax + 0x24], 8
je 0x10078ce8
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
push eax
mov dword [edx], eax
push 0
mov edx, 0x43
mov ecx, edi
call fcn.100c8eb0
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x28]
mov eax, ecx
test ecx, ecx
jle 0x10078d01
mov ecx, edx
cmp dword [ecx], 0
jne 0x10078d01
dec eax
sub ecx, 0x50
test eax, eax
jg 0x10078cf4
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x88], ecx
test cl, 0x10
je 0x10078e84
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x10078d75
push edx
push 0
push esi
mov edx, 0xf
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x10078da7
xor ecx, ecx
bts ecx, eax
xor esi, esi
cmp eax, 0x20
cmovae esi, ecx
xor ecx, esi
cmp eax, 0x40
mov eax, esi
mov dword [esp + 0x14], esi
cmovae eax, ecx
jmp 0x10078ba2
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
mov edi, dword [esp + 0x40]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x10078dcf
push 0
push dword [esp + 0x34]
mov edx, 0x10
push esi
mov ecx, edi
call fcn.100c9070
add esp, 0xc
mov edx, eax
jmp 0x10078e05
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
mov edi, dword [esp + 0x40]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x18]
mov dword [esi + 0x34], edx
mov byte [esi + 0x2d], 0xd
xor eax, eax
mov esi, eax
neg esi
sbb esi, esi
add esi, 2
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x84]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
test eax, eax
jle 0x1007ab33
movzx eax, word [edx + 0xa]
xor esi, esi
mov dword [esp + 0x88], eax
test al, 6
jne 0x1007ab14
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 0x28]
and ecx, dword [eax + 0x48]
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 0x2c]
and eax, dword [edi + 0x4c]
mov edi, dword [esp + 0x40]
or ecx, eax
je 0x1007a973
mov eax, dword [esp + 0x54]
mov byte [eax + 0x32], 1
jmp 0x1007ab10
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x24]
test ecx, 0x400
je 0x100793a8
movzx eax, word [eax + 0x28]
inc dword [esi + 0x3c]
lea ecx, [eax + 2]
mov dword [esp + 0x10], eax
cmp ecx, 1
jne 0x10078ed2
mov al, byte [esi + 0x13]
test al, al
jne 0x10078ebd
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
jmp 0x10078eff
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x15c]
mov dword [esp + 0x20], eax
jmp 0x10078eff
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x20], eax
cmp ecx, dword [esi + 0x1c]
jg 0x10078eec
add eax, ecx
sub dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
jmp 0x10078eff
mov eax, dword [esi + 0x2c]
lea edi, [eax + 1]
add eax, ecx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x40]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0xc]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x10], ecx
jle 0x10078f72
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10078f63
mov eax, dword [esp + 0x20]
add eax, 2
add eax, ecx
test byte [edx + 0xc], 1
je 0x10078f4d
push eax
push dword [esp + 0x54]
push ecx
push edi
mov ecx, esi
call fcn.1007b5a0
mov edx, dword [edi + 0x10]
add esp, 0x10
mov dword [esp + 0x28], edx
jmp 0x10078f5f
mov edx, dword [edx]
push 1
mov edx, dword [edx + 0x10]
push eax
mov ecx, esi
call fcn.1007afa0
add esp, 8
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x10]
jl 0x10078f16
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x10078f9f
push 0
push dword [esp + 0x24]
mov ecx, edi
push edx
mov edx, 0x43
call fcn.100c9070
add esp, 0xc
jmp 0x10078fd1
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
inc edx
mov dword [esp + 0x14], edx
cmp dword [eax + 0x30], ecx
jg 0x10079000
push 0
push edx
push dword [esp + 0x18]
mov edx, 0x43
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x10079036
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
or eax, 0xffffffff
cmp byte [ecx + 0x1c], 0
mov edx, 0xfffffff9
cmovne eax, edx
mov edx, dword [edi + 0x88]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x10079081
push dword [esp + 0x20]
mov edx, 0xb
push dword [esp + 0x2c]
mov ecx, edi
push dword [esp + 0x40]
call fcn.100c9070
add esp, 0xc
mov edx, eax
jmp 0x100790bb
mov esi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x49], 0
je 0x100790db
mov edx, dword [esp + 0x1c]
cmp edx, 0xfffffff4
je 0x10079137
mov eax, dword [esp + 0x3c]
push eax
call fcn.100c8350
add esp, 4
jmp 0x10079137
test edx, edx
jns 0x100790e6
mov edx, dword [edi + 0x88]
dec edx
mov eax, dword [edi + 0x58]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x1c]
test eax, eax
jns 0x10079127
cmp byte [edx + 1], 0
jne 0x10079127
cmp eax, 0xfffffffd
jne 0x1007910f
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x10], eax
mov byte [edx + 1], 0xfd
jmp 0x10079137
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x10079137
mov dword [edx + 0x10], ecx
mov byte [edx + 1], al
cmp eax, 0xfffffff4
jne 0x10079137
inc dword [ecx + 0xc]
jmp 0x10079137
push eax
mov eax, dword [esp + 0x40]
push eax
mov ecx, edi
call fcn.100c8130
add esp, 8
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x30], eax
cmp byte [edx + 0x31], 0
mov edx, 0xa6
mov eax, 0x3d
cmovne eax, edx
mov edx, dword [esp + 0x10]
mov byte [ecx + 0x2d], al
mov eax, dword [edi + 0x88]
dec edx
mov dword [ecx + 0x34], eax
mov dword [esp + 0x30], edx
js 0x1007939c
mov eax, dword [ecx + 0x38]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp + 0x1c], eax
jmp 0x10079194
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edx*4]
mov dword [esp + 0xc], eax
cmp edx, 0x10
jge 0x100791cf
mov eax, dword [esp + 0x58]
mov cx, dx
mov ax, word [eax + 0x1e]
shr ax, cl
mov ecx, dword [esp + 0x18]
test al, 1
je 0x100791cb
mov edx, dword [esp + 0xc]
call fcn.1007bdf0
jmp 0x1007938d
mov eax, dword [esp + 0xc]
test byte [eax + 0xc], 1
je 0x10079391
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x49], 0
jne 0x10079297
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x3c]
sub edx, 0xc
mov dword [esp + 0x1c], edx
mov ecx, dword [eax + edx + 4]
test ecx, ecx
jns 0x10079204
mov ecx, dword [edi + 0x88]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x10079213
mov eax, 0x1012875c
jmp 0x1007921c
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 4]
movzx eax, byte [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x74], ecx
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1007925d
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x10079297
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
mov ecx, dword [esi]
push 0
push 0x30
call fcn.100ec7e0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x1007938d
push 0x30
push 0
push eax
call fcn.10003750
mov eax, dword [esp + 0x1c]
or ecx, 0xffffffff
mov word [eax + 0x22], cx
add esp, 0xc
mov ecx, eax
mov byte [eax], 0x35
call fcn.100b3df0
mov eax, dword [esi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x18], ecx
jle 0x100792f0
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.100e99e0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
push 0
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x68]
push 0x31
call fcn.100ec7e0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x10079345
push 0x30
push 0
push edx
call fcn.10003750
mov edx, dword [esp + 0x20]
add esp, 0xc
or eax, 0xffffffff
mov word [edx + 0x22], ax
lea eax, [edx + 0x30]
mov byte [edx], 0x96
mov dword [edx + 8], eax
mov byte [eax], 0
mov dword [edx + 0x18], 1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x10], edx
test edx, edx
je 0x1007937b
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
add edi, 2
add eax, edi
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x18]
push 0
push dword [eax + 0x18]
push ecx
push esi
call fcn.100ad3e0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [ecx + 0xc], 0
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.100b3630
mov edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x30], edx
jns 0x10079190
mov ecx, esi
call fcn.100af500
jmp 0x10078e10
mov dword [esp + 0x70], ecx
and dword [esp + 0x70], 0x100
je 0x10079448
test cl, 5
je 0x10079448
mov eax, dword [eax + 0x30]
mov ecx, esi
mov edx, dword [eax]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push eax
push dword [esp + 0x54]
mov dword [esp + 0x1c], eax
push 0
push dword [esp + 0x24]
call fcn.1007b5a0
mov edx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0xc], eax
cmp eax, edx
je 0x100793fe
mov ecx, esi
call fcn.100ac8b0
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esp + 0x1c]
mov edx, 0x1f
push dword [eax + 0x10]
mov ecx, edi
push dword [esp + 0x40]
call fcn.100c9000
mov edx, dword [esp + 0x18]
add esp, 0xc
mov ecx, esi
push 1
call fcn.100af590
mov edx, dword [esp + 0x3c]
add esp, 4
push dword [esp + 0xc]
push 0xffffffffffffffff
call fcn.100af620
mov eax, dword [esp + 0x20]
add esp, 8
mov byte [eax + 0x2d], 0xa6
jmp 0x10078e10
cmp dword [esp + 0x70], 0
je 0x100796d6
test cl, 2
je 0x100796d6
xor edx, edx
mov dword [esp + 0x4c], 0xa6
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], edx
test cl, 0x20
je 0x1007949c
mov eax, dword [eax + 0x30]
mov dword [esp + 0x1c], 1
mov edx, dword [eax]
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], edx
test cl, 0x10
je 0x100794b1
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
jmp 0x100794b3
xor ecx, ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x100794c5
mov dword [esp + 0x3c], edx
mov edx, ecx
mov dword [esp + 0xc], edx
test edx, edx
je 0x10079599
mov edx, dword [edx]
mov dword [esp + 0x10], 0x1a18191b
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x1c], edx
call fcn.100b45a0
test eax, eax
je 0x10079531
mov al, byte [esi + 0x13]
test al, al
jne 0x100794f6
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
jmp 0x10079505
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x15c]
mov edx, dword [edx + 0x10]
push 1
push eax
mov ecx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
call fcn.1007afa0
mov ecx, dword [esp + 0x24]
add esp, 8
movzx eax, byte [ecx]
sub eax, 0x36
or eax, 1
movzx edx, byte [esp + eax + 0x10]
jmp 0x10079568
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call fcn.100adf90
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x28], eax
call fcn.1007bdf0
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx]
movzx edx, byte [esp + eax - 0x26]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x34]
push dword [esp + 0x40]
call fcn.100c9000
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, esi
push 1
call fcn.100af590
mov edx, dword [esp + 0x10]
add esp, 4
call fcn.100ac8b0
jmp 0x100795b9
push dword [esp + 0x14]
xor edx, edx
push dword [esp + 0x3c]
test eax, eax
sete dl
mov ecx, edi
lea edx, [edx*4 + 0x21]
call fcn.100c8eb0
add esp, 8
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x10079649
mov eax, dword [eax]
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
mov edx, dword [eax + 0x10]
push 1
mov dword [esp + 0x30], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.1007afa0
mov edx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [edx + 0x10]
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.100b45a0
test eax, eax
jne 0x1007961b
mov al, byte [edx]
cmp al, 0x38
je 0x10079605
cmp al, 0x36
jne 0x1007961b
xor edx, edx
cmp dword [esp + 0x50], edx
sete dl
lea edx, [edx*2 + 0x37]
mov dword [esp + 0x4c], edx
jmp 0x1007962f
xor eax, eax
cmp dword [esp + 0x50], eax
setne al
lea eax, [eax*2 + 0x36]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x14]
call fcn.100b45a0
test eax, eax
jne 0x10079649
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
call fcn.1007bdf0
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x88]
sete al
add al, 6
cmp dword [esp + 0x4c], 0xa6
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x38]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
je 0x10078e10
inc dword [esi + 0x2c]
mov esi, dword [esi + 0x2c]
push esi
push eax
mov edx, 0x7b
mov ecx, edi
call fcn.100c8eb0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push esi
push 0xffffffffffffffff
call fcn.100af620
mov edx, dword [esp + 0x5c]
push esi
push dword [esp + 0x44]
mov ecx, edi
push dword [esp + 0x44]
call fcn.100c9000
mov eax, dword [edi + 0x88]
add esp, 0x1c
test eax, eax
jle 0x10078e10
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov edx, 0x53
mov word [eax + ecx*4 - 0x12], dx
jmp 0x10078e10
test ecx, 0x200
je 0x10079f95
movzx esi, word [eax + 0x18]
mov dword [esp + 0x10], esi
movzx esi, word [eax + 0x1a]
mov dword [esp + 0x14], esi
movzx esi, si
mov dword [esp + 0x3c], esi
movzx esi, word [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x7c], esi
movzx esi, si
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], esi
test byte [eax + 0x2c], 1
mov esi, dword [esp + 0x60]
mov dword [esp + 0x78], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x27], 0
mov byte [esp + 0x4b], 0
je 0x10079775
cmp byte [eax + 0x2f], 0
mov eax, dword [esp + 0x10]
jle 0x10079779
mov edx, dword [esp + 0x68]
cmp word [edx + 0x32], ax
mov edx, dword [esp + 0x18]
jbe 0x10079779
mov byte [esp + 0x27], 1
mov dword [esp + 0x34], 1
jmp 0x10079779
mov eax, dword [esp + 0x10]
movzx eax, ax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
test cl, 0x20
je 0x100797bf
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
inc edi
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
movzx eax, ax
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x34]
cmp edi, eax
cmovle edi, eax
mov eax, edi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x34], eax
test cl, 0x10
je 0x10079887
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x7c]
movzx eax, ax
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov ecx, 0x100
test word [eax + 0xa], cx
je 0x10079848
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
push eax
mov dword [edx + 0x24], eax
push 1
mov edx, 0x43
mov ecx, edi
call fcn.100c8eb0
mov eax, dword [edi + 0x88]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
shl dword [edx + 0x24], 1
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x70]
xor ecx, ecx
mov eax, dword [eax + 0x1c]
add esp, 8
cmp byte [edi + eax], 1
mov edi, dword [esp + 0x40]
sete cl
xor ecx, dword [esp + 0x50]
or dword [edx + 0x24], ecx
cmp dword [esp + 0x78], 0
jne 0x10079887
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x14], ecx
test ecx, ecx
js 0x1007987d
mov eax, dword [esp + 0x68]
add ecx, ecx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x10079882
mov ecx, dword [esp + 0x14]
cmp ecx, 0xfffffffe
jne 0x10079887
mov byte [esp + 0x27], 1
mov eax, dword [esp + 0x68]
movzx ecx, word [eax + 0x32]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
cmp ax, cx
jae 0x100798c1
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
xor ecx, ecx
cmp byte [edi + eax], cl
mov edi, dword [esp + 0x40]
sete cl
cmp dword [esp + 0x50], ecx
je 0x100798cd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x50], 0
je 0x10079904
cmp cx, ax
jne 0x10079904
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov al, byte [esp + 0x27]
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
movzx ecx, di
mov edi, dword [esp + 0x40]
movzx eax, al
mov byte [esp + 0x27], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x38]
mov ecx, esi
push dword [esp + 0x58]
call fcn.1007b1d0
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x10079949
cmp word [esp + 0x4c], 0
je 0x10079949
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx]
mov ecx, dword [esp + 0x64]
call fcn.100ec590
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x1007996a
test byte [eax + 0xc], 0x28
mov dword [esp + 0x6c], 0
je 0x10079972
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x10079988
test byte [ecx + 0xc], 0x28
mov dword [esp + 0xc], 0
je 0x10079990
mov dword [esp + 0xc], 1
test eax, eax
jne 0x1007999f
mov dword [esp + 0x2c], eax
cmp word [esp + 0x10], ax
jbe 0x100799a7
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 0x34], edx
test eax, eax
je 0x10079ae7
mov edx, dword [esp + 0x3c]
add ecx, dword [esp + 0x30]
mov eax, dword [eax]
movzx edx, dx
mov eax, dword [eax + 0x10]
push edx
mov dword [esp + 0x18], ecx
push ecx
mov edx, eax
mov ecx, esi
mov dword [esp + 0x7c], eax
call fcn.1007afa0
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x48]
mov eax, 0x100
add esp, 8
test word [edx + 0xa], ax
je 0x10079a3d
mov ecx, dword [edi + 0x88]
mov eax, dword [edi]
dec ecx
cmp byte [eax + 0x49], 0
je 0x10079a0e
mov dword [esp + 0x10], 0x1012875c
jmp 0x10079a1b
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x24]
shr eax, 1
mov dword [esi + 0xc], eax
mov al, byte [ecx + 0x24]
and al, 1
movzx eax, al
mov ecx, esi
mov esi, dword [esp + 0x60]
mov word [ecx + 2], ax
test byte [edx + 0xa], 0x80
jne 0x10079a67
mov ecx, dword [esp + 0x74]
call fcn.100b2020
test eax, eax
je 0x10079a67
push dword [esp + 0x28]
mov edx, 0x32
push dword [esp + 0x18]
mov ecx, edi
call fcn.100c8eb0
add esp, 8
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x10079a8c
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x40]
movzx edx, ax
call fcn.1007bcb0
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
movzx eax, cx
add edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x34], edx
mov cl, byte [eax]
cmp cl, 0x96
jne 0x10079aab
mov cl, byte [eax + 0x26]
cmp cl, 0x97
jne 0x10079ab5
mov eax, dword [eax + 0x14]
jmp 0x10079abf
cmp cl, 0x77
jne 0x10079ad2
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
jle 0x10079ad2
mov dword [esp + 0x6c], 1
xor al, al
jmp 0x10079b24
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x18]
call fcn.1007bdf0
mov edx, dword [esp + 0x34]
xor al, al
jmp 0x10079b24
mov al, byte [esp + 0x27]
test al, al
je 0x10079b24
mov eax, dword [esp + 0x30]
add eax, ecx
push eax
push 0
mov edx, 0x46
mov ecx, edi
call fcn.100c8eb0
mov edx, dword [esp + 0x3c]
mov al, byte [esp + 0x2f]
add esp, 8
inc edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x2c], 1
push dword [esp + 0x80]
movzx eax, al
sub edx, eax
push edx
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.1007bd80
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
movzx eax, word [eax + 0x2a]
add esp, 8
test ax, ax
je 0x10079b54
cmp ecx, eax
je 0x10079b82
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x30]
push dword [esp + 0x34]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x58]
push dword [esp + 0x30]
movzx edx, byte [ecx + eax*2 + 0x10104db0]
push dword [esp + 0x68]
mov ecx, edi
call fcn.100c8a80
add esp, 0x10
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10079cc0
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x34]
mov ecx, esi
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.100af590
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x70]
movzx eax, ax
add esp, 4
push eax
push dword [esp + 0x30]
call fcn.1007afa0
mov eax, dword [esp + 0x4c]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x10079c13
mov ecx, dword [edi + 0x88]
mov eax, dword [edi]
dec ecx
cmp byte [eax + 0x49], 0
je 0x10079bee
mov edx, 0x1012875c
jmp 0x10079bf7
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
shr eax, 1
mov dword [edx + 0xc], eax
mov al, byte [ecx + 0x24]
and al, 1
movzx eax, al
mov word [edx + 2], ax
mov eax, dword [esp + 0x44]
test byte [eax + 0xa], 0x80
jne 0x10079c3d
mov ecx, dword [esp + 0x6c]
call fcn.100b2020
test eax, eax
je 0x10079c3d
push dword [esp + 0x28]
mov edx, 0x32
push dword [esp + 0x30]
mov ecx, edi
call fcn.100c8eb0
add esp, 8
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10079c73
mov ecx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x50]
movzx edx, ax
call fcn.1007bcb0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
add esp, 4
movzx eax, cx
push dword [esp + 0x70]
mov ecx, esi
push eax
call fcn.1007bd80
add esp, 8
mov ecx, dword [esp + 0x4c]
movzx eax, cx
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov cl, byte [eax]
cmp cl, 0x96
jne 0x10079c8c
mov cl, byte [eax + 0x26]
cmp cl, 0x97
jne 0x10079c96
mov eax, dword [eax + 0x14]
jmp 0x10079ca0
cmp cl, 0x77
jne 0x10079cb1
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
jle 0x10079cb1
mov dword [esp + 0xc], 1
jmp 0x10079ced
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
call fcn.1007bdf0
jmp 0x10079ced
cmp byte [esp + 0x4b], 0
je 0x10079ced
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
mov edx, 0x46
push eax
push 0
mov ecx, edi
call fcn.100c8eb0
add esp, 8
inc dword [esp + 0x20]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x64]
test ecx, ecx
je 0x10079d43
test edx, edx
je 0x10079d36
cmp dword [edx + 0x1d8], 0
je 0x10079d16
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.100ecc10
jmp 0x10079d3f
cmp ecx, dword [edx + 0x130]
jb 0x10079d36
cmp ecx, dword [edx + 0x134]
jae 0x10079d36
mov eax, dword [edx + 0x12c]
mov dword [ecx], eax
mov dword [edx + 0x12c], ecx
jmp 0x10079d43
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x10079d8e
test edx, edx
je 0x10079d85
cmp dword [edx + 0x1d8], 0
je 0x10079d65
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.100ecc10
jmp 0x10079d8e
cmp ecx, dword [edx + 0x130]
jb 0x10079d85
cmp ecx, dword [edx + 0x134]
jae 0x10079d85
mov eax, dword [edx + 0x12c]
mov dword [ecx], eax
mov dword [edx + 0x12c], ecx
jmp 0x10079d8e
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
mov eax, dword [edi + 0x88]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10079dca
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x58]
push dword [esp + 0x30]
movzx edx, byte [ecx + eax*2 + str.__P_]
push dword [esp + 0x68]
mov ecx, edi
call fcn.100c8a80
add esp, 0x10
cmp dword [esp + 0x1c], 0
jne 0x10079f1e
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 0xc]
test byte [ecx + 0x24], 0x20
jne 0x10079e55
mov ecx, dword [esp + 0x54]
movzx eax, word [ecx + 0x2c]
test eax, 0x400
jne 0x10079e13
test eax, 0x1000
je 0x10079dfe
cmp byte [ecx + 0x31], 1
je 0x10079e13
push dword [esp + 0x5c]
push dword [esp + 0x3c]
call fcn.1007b040
add esp, 8
jmp 0x10079f1e
inc dword [esi + 0x2c]
mov esi, dword [esi + 0x2c]
push esi
push dword [esp + 0x60]
mov edx, 0x82
mov ecx, edi
call fcn.100c8eb0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push esi
push 0xffffffffffffffff
call fcn.100af620
push esi
push 0
push dword [esp + 0x50]
mov edx, 0x20
mov ecx, edi
call fcn.100c9000
add esp, 0x1c
jmp 0x10079f1e
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x5c]
je 0x10079f1e
call fcn.100a5960
movzx edx, word [eax + 0x32]
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.100ac850
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x2c], esi
cmp cx, word [eax + 0x32]
jae 0x10079efb
lea ecx, [ecx]
mov edx, dword [esp + 0x68]
xor ecx, ecx
movzx edx, word [edx + 0x34]
test edx, edx
jle 0x10079ec5
mov eax, dword [eax + 4]
movzx esi, word [eax + esi*2]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
lea esp, [esp]
cmp si, word [eax]
je 0x10079f4d
inc ecx
add eax, 2
cmp ecx, edx
jl 0x10079eb0
mov esi, dword [esp + 0x2c]
or ecx, 0xffffffff
mov eax, dword [esp + 0x74]
add eax, esi
push eax
movsx eax, cx
push eax
push dword [esp + 0x64]
mov edx, 0x60
mov ecx, edi
call fcn.100c9000
mov eax, dword [esp + 0x18]
inc esi
movzx eax, word [eax + 0x32]
add esp, 0xc
cmp esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], esi
jl 0x10079e90
movzx eax, word [eax + 0x32]
push eax
push dword [esp + 0x78]
mov edx, 0x1d
push dword [esp + 0x9c]
mov ecx, edi
push dword [esp + 0x44]
call fcn.100c8a80
add esp, 0x10
push dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
push dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
call fcn.1007ae50
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
add esp, 8
test dword [ecx + 0x24], 0x1000
je 0x10079f59
mov byte [edx + 0x2d], 0xa6
jmp 0x10079f66
mov esi, dword [esp + 0x2c]
movzx ecx, cx
jmp 0x10079ec8
cmp dword [esp + 0x50], 0
sete al
add al, 6
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x5c]
mov dword [edx + 0x30], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edx + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x10079f7f
mov byte [edx + 0x2f], 1
cmp dword [esp + 0x1c], 0
je 0x1007a96a
xor eax, eax
mov dword [esp + 0x68], eax
jmp 0x10078e12
test ecx, 0x2000
je 0x1007a91c
mov eax, dword [esi + 0x28]
inc dword [esi + 0x2c]
mov dword [esp + 0x50], eax
inc eax
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x2c]
mov ecx, edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
call fcn.100c89b0
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], 0
mov eax, dword [eax + 0x30]
mov dword [esp + 0x78], ecx
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mov byte [eax + 0x2d], 0x3f
mov dword [eax + 0x30], edx
mov eax, dword [esp + 0x54]
mov al, byte [eax + 0x2e]
cmp al, 1
jbe 0x1007a12d
movzx eax, al
sub eax, dword [esp + 0x28]
push 0
dec eax
mov dword [esp + 0x80], eax
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, 0x58
push ecx
mov ecx, dword [esp + 0x6c]
call fcn.100ec880
mov ecx, eax
add esp, 8
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x1007a071
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.10001186
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
lea edi, [ecx + 8]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 4]
add ecx, 8
mov dword [esp + 0x7c], ecx
cmp edx, 1
jl 0x1007a0ef
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
add edi, 0x58
add eax, 0x7c
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], eax
jmp 0x1007a0c0
movzx eax, byte [eax]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
shl esi, 4
add esi, ecx
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x7c]
add eax, 0x50
add edi, 0x50
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edi
dec edx
jne 0x1007a0c0
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
test byte [edx + 0x2c], 0x10
jne 0x1007a190
test byte [ecx + 0x24], 0x20
jne 0x1007a13a
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push eax
push 0
mov edx, 0x46
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.100c8eb0
add esp, 8
jmp 0x1007a186
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
jmp 0x1007a0fb
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x1007a159
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x1007a155
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x1007a145
mov dword [esp + 0x1c], ecx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
movzx eax, word [ecx + 0x32]
push eax
push edx
mov edx, 0x6c
mov ecx, edi
call fcn.100c8eb0
mov edx, dword [esp + 0x24]
add esp, 8
mov ecx, esi
call fcn.100c8020
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x3c], eax
mov edx, dword [edi + 0x88]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x7c], edx
cmp dword [eax + 0x30], edx
jg 0x1007a1bf
push 0
push dword [esp + 0x50]
mov edx, 0x43
push 0
mov ecx, edi
call fcn.100c9070
add esp, 0xc
mov dword [esp + 0x7c], eax
jmp 0x1007a1f5
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x84]
xor edx, edx
mov eax, dword [eax + 0xc]
cmp eax, 1
jle 0x1007a335
mov dword [esp + 0x1c], edx
test eax, eax
jle 0x1007a333
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x84]
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0x14]
add eax, ecx
mov edi, dword [eax]
mov dword [esp + 0x80], edi
cmp eax, dword [esp + 0x14]
je 0x1007a27f
test byte [edi + 4], 1
jne 0x1007a27f
test byte [eax + 0xa], 6
jne 0x1007a27f
mov edi, 0x1fff
test word [eax + 0xc], di
je 0x1007a27f
mov edx, dword [esp + 0x80]
push 0
push 0
mov ecx, esi
call fcn.100b3270
mov edx, dword [esp + 0x64]
push eax
mov ecx, esi
call fcn.100b3920
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
inc edx
add ecx, 0x30
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], ecx
cmp edx, dword [eax + 0xc]
jl 0x1007a227
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
test edx, edx
je 0x1007a335
mov ecx, dword [esi]
push 0
push 0x30
call fcn.100ec7e0
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
je 0x1007a31c
push 0x30
push 0
push eax
call fcn.10003750
mov ecx, dword [esp + 0x18]
or eax, 0xffffffff
mov word [ecx + 0x22], ax
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov byte [ecx], 0x2c
mov eax, dword [eax + 4]
and eax, 0x200100
or dword [ecx + 4], eax
add esp, 0xc
call fcn.100b3df0
mov eax, dword [esi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x18], ecx
jle 0x1007a32b
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.100e99e0
mov eax, dword [esp + 0x18]
mov edx, eax
add esp, 0xc
mov dword [esp + 0x5c], edx
jmp 0x1007a335
mov edx, dword [esp + 0x5c]
mov ecx, dword [esi]
call fcn.100b3630
mov eax, dword [esp + 0xc]
mov edx, eax
mov dword [esp + 0x5c], edx
jmp 0x1007a335
xor edx, edx
mov eax, dword [esp + 0x54]
mov ecx, 0x400
mov ax, word [eax + 0x2c]
and ax, cx
mov ecx, dword [esp + 0x70]
or ax, 0x20
movzx eax, ax
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x80], eax
cmp dword [ecx + 0xc], eax
jle 0x1007a7da
mov dword [esp + 0x98], 0x10
mov dword [esp + 0x88], 1
nop
mov edi, dword [esp + 0x38]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], edi
mov edi, dword [esp + 0x40]
je 0x1007a3a9
mov edi, 0x400
test word [eax + 0xc], di
mov edi, dword [esp + 0x40]
je 0x1007a7be
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x1007a3c0
test byte [eax + 4], 1
jne 0x1007a3c0
mov dword [edx + 0xc], eax
mov eax, edx
push dword [esp + 0x50]
mov edx, dword [esp + 0x38]
push dword [esp + 0xa4]
mov ecx, esi
push 0
push 0
push eax
call fcn.1006f570
mov edx, eax
add esp, 0x14
mov dword [esp + 0x90], edx
test edx, edx
je 0x1007a7ba
mov eax, dword [esp + 0x18]
push 0
movzx ecx, byte [eax + 0x2c]
push ecx
push dword [esp + 0x30]
lea ecx, [edx + 0x2f0]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, esi
call fcn.1007be60
mov eax, dword [esp + 0x64]
add esp, 0x10
test byte [eax + 0x2c], 0x10
jne 0x1007a6c2
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], ecx
test byte [eax + 0x24], 0x20
jne 0x1007a480
push 0
push dword [esp + 0x40]
mov edx, eax
push dword [esp + 0x40]
mov ecx, esi
push 0xffffffffffffffff
call fcn.100af250
push dword [esp + 0x1c]
mov edx, 0x2d
push eax
push 0
push dword [esp + 0x4c]
mov ecx, edi
call fcn.100c8a80
add esp, 0x20
mov dword [esp + 0x1c], eax
jmp 0x1007a6c2
mov ecx, eax
call fcn.100a5960
movzx edx, word [eax + 0x32]
mov ecx, esi
mov dword [esp + 0xa4], eax
mov dword [esp + 0x10], edx
call fcn.100ac850
xor ecx, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], ecx
test edx, edx
jle 0x1007a56b
mov edi, eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x78]
mov eax, dword [eax + 4]
push 0
movsx eax, word [eax + ecx*2]
push edi
push dword [esp + 0x40]
mov ecx, esi
push eax
call fcn.100af250
add esp, 0x10
mov dword [esp + 0x20], eax
cmp eax, edi
je 0x1007a54d
mov ecx, dword [esi + 8]
mov dword [esp + 0xa8], ecx
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x88]
cmp dword [edx + 0x30], eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0xac], eax
jg 0x1007a513
push 0
push edi
push edx
mov edx, 0x4c
call fcn.100c9070
add esp, 0xc
jmp 0x1007a54d
inc eax
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0xac]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 0x58]
mov dword [eax + ecx*4], 0x4c
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
inc ecx
inc edi
mov dword [esp + 0x58], ecx
cmp ecx, edx
jl 0x1007a4b1
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0xc], 0
je 0x1007a598
push edx
push eax
push 0
push dword [esp + 0x3c]
mov edx, 0x1e
mov ecx, edi
call fcn.100c8a80
add esp, 0x10
cmp dword [esp + 0xc], 0
mov dword [esp + 0x1c], eax
jl 0x1007a63c
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1007a5c4
push dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push edx
push dword [esp + 0x4c]
mov edx, 0x63
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x1007a5fa
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x10]
mov edx, 0x7f
push dword [esp + 0x48]
mov ecx, edi
push dword [esp + 0x44]
push dword [esp + 0x3c]
call fcn.100c8a80
add esp, 0x10
cmp dword [esp + 0xc], 0
je 0x1007a63c
mov eax, dword [edi + 0x88]
test eax, eax
jle 0x1007a63c
mov edx, dword [esp + 0x98]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x10]
cmp eax, 1
jne 0x1007a6a0
cmp dword [esp + 0x44], 0
je 0x1007a6c2
mov al, byte [esi + 0x13]
mov byte [esp + 0x4b], al
cmp al, 8
jae 0x1007a6c2
movzx edx, byte [esi + 0x19]
xor ecx, ecx
lea eax, [esi + 0x94]
test edx, edx
jle 0x1007a685
jmp 0x1007a670
mov edi, dword [esp + 0x44]
cmp dword [eax + 0xc], edi
mov edi, dword [esp + 0x40]
je 0x1007a69a
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x1007a670
movzx eax, byte [esp + 0x4b]
mov ecx, dword [esp + 0x44]
mov dword [esi + eax*4 + 0x15c], ecx
inc byte [esi + 0x13]
jmp 0x1007a6c2
mov byte [eax + 6], 1
jmp 0x1007a6c2
mov edx, dword [esp + 0x44]
push eax
mov ecx, esi
call fcn.100af590
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, dword [esi + 0x1c]
jle 0x1007a6c2
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x20], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1007a6eb
push 0
push dword [esp + 0x30]
mov edx, 0xe
push dword [esp + 0x54]
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x1007a721
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1007a74f
mov edx, dword [edi + 0x88]
jns 0x1007a734
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1007a743
mov eax, 0x1012875c
jmp 0x1007a74c
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x74]
cmp byte [edx + 0x32], 0
mov ecx, dword [edx + 0x330]
cmovne eax, dword [esp + 0x88]
test dword [ecx + 0x24], 0x200
mov dword [esp + 0x74], eax
je 0x1007a7ab
cmp dword [esp + 0x80], 0
je 0x1007a78c
mov eax, dword [esp + 0x6c]
cmp dword [ecx + 0x20], eax
jne 0x1007a7ab
mov eax, dword [esp + 0x78]
test byte [eax + 0x24], 0x20
je 0x1007a7a2
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x1007a7ab
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x6c], eax
jmp 0x1007a7b3
mov dword [esp + 0x6c], 0
mov ecx, edx
call fcn.1006ebc0
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x80], eax
cmp eax, dword [ecx + 0xc]
jl 0x1007a380
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x38], eax
test eax, eax
je 0x1007a7f0
mov eax, dword [esp + 0x50]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1007a80a
mov ecx, dword [esp + 0x64]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.100b3630
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi + 0x88]
test ecx, ecx
jns 0x1007a81b
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1007a82a
mov eax, 0x1012875c
jmp 0x1007a833
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x1007a85d
push 0
push edx
push 0
mov edx, 0xd
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x1007a88f
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x1007a8ae
mov eax, dword [esp + 0x2c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x2e], 1
jbe 0x1007a901
mov edx, dword [esp + 0x34]
test edx, edx
je 0x1007a901
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x1007a8f8
cmp dword [ecx + 0x1d8], 0
je 0x1007a8d8
call fcn.100ecc10
jmp 0x1007a901
cmp edx, dword [ecx + 0x130]
jb 0x1007a8f8
cmp edx, dword [ecx + 0x134]
jae 0x1007a8f8
mov eax, dword [ecx + 0x12c]
mov dword [edx], eax
mov dword [ecx + 0x12c], edx
jmp 0x1007a901
push edx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
cmp dword [esp + 0x74], 0
jne 0x10078e10
mov edx, dword [esp + 0x14]
mov ecx, esi
call fcn.1007bdf0
jmp 0x10078e10
test byte [esp + 0x88], 0x20
je 0x1007a92f
mov byte [edx + 0x2d], 0xa6
jmp 0x10078e10
mov ecx, dword [esp + 0x50]
push dword [esp + 0x14]
mov al, byte [ecx + 0x101072dc]
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x30], eax
movzx edx, byte [ecx + 0x10108e44]
push eax
mov ecx, edi
call fcn.100c8eb0
mov ecx, dword [esp + 0x20]
add esp, 8
inc eax
mov dword [ecx + 0x34], eax
mov byte [ecx + 0x2f], 1
jmp 0x10078e10
mov eax, dword [esp + 0x68]
jmp 0x10078e12
mov eax, dword [esp + 0x18]
mov ecx, dword [edx]
mov dword [esp + 0x90], ecx
cmp dword [eax], esi
je 0x1007a98e
test byte [ecx + 4], 1
je 0x1007ab10
cmp dword [esp + 0x2c], 1
jne 0x1007aa0d
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x68]
xorps xmm0, xmm0
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
movdqa xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc8], esi
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xb4], 0x100ace90
mov dword [esp + 0xc8], eax
test ecx, ecx
je 0x1007a9f5
mov edx, ecx
lea ecx, [esp + 0xb0]
call fcn.100b6e00
mov edx, dword [esp + 0x1c]
cmp byte [esp + 0xc4], 0
je 0x1007aa14
mov ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x1007ab14
cmp dword [esp + 0x2c], 3
jge 0x1007aa39
movzx eax, word [edx + 0xa]
test eax, 0x1000
je 0x1007aa40
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x1007ab14
mov ecx, 3
mov dword [esp + 0x10], ecx
jmp 0x1007ab14
mov eax, dword [esp + 0x88]
test eax, 0x200
je 0x1007aac1
mov eax, dword [esp + 0x18]
mov edx, esi
mov eax, dword [eax + 0x24]
mov esi, dword [edi + 0x88]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [edi + 0xc]
setne dl
mov dword [esp + 0x88], ecx
add edx, 0x15
cmp dword [eax + 0x30], esi
jg 0x1007aa84
push 0
push 0
push ecx
mov ecx, edi
call fcn.100c9070
add esp, 0xc
mov esi, eax
jmp 0x1007aac1
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x88]
mov byte [eax], dl
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
push 0x10
push dword [esp + 0x98]
push dword [esp + 0x98]
push dword [esp + 0x6c]
call fcn.100ad3e0
add esp, 0x10
test esi, esi
je 0x1007ab07
mov edx, dword [edi + 0x88]
jns 0x1007aaec
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1007aafb
mov eax, 0x1012875c
jmp 0x1007ab04
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1c]
or word [edx + 0xa], 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
dec eax
add edx, 0x30
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
test eax, eax
jg 0x10078e42
mov esi, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jg 0x10078e26
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], edx
test edx, edx
jle 0x1007ad09
mov edi, dword [esp + 0x60]
lea esp, [esp]
test byte [ecx + 0xa], 6
jne 0x1007acf1
movzx eax, word [ecx + 0xc]
test al, 0x82
je 0x1007acf1
test eax, 0x800
je 0x1007acf1
mov eax, dword [esp + 0x38]
cmp dword [ecx + 0x14], eax
jne 0x1007acf1
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x1007acf1
mov eax, dword [ecx]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf4], esi
mov byte [esp + 0xf8], 0
mov dword [esp + 0xf0], esi
cmp eax, 0xfffffffe
je 0x1007ac55
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x104], ecx
lea ecx, [esp + 0xe8]
mov dword [esp + 0xfc], 0x83
mov dword [esp + 0x100], esi
mov word [esp + 0x130], ax
mov word [esp + 0xf9], 0x101
call fcn.10075fd0
mov edx, eax
test edx, edx
je 0x1007ac55
lea ebx, [ebx]
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x1007ac43
mov eax, dword [edx + 0x20]
or eax, dword [edx + 0x24]
jne 0x1007ac3e
test byte [edx + 0xc], 0x82
jne 0x1007ac57
test esi, esi
cmove esi, edx
lea ecx, [esp + 0xe8]
call fcn.10075fd0
mov edx, eax
test edx, edx
jne 0x1007ac20
mov edx, esi
test edx, edx
je 0x1007ace9
test byte [edx + 0xa], 4
jne 0x1007ace9
mov eax, dword [edx]
push 0x10
movq xmm0, qword [eax]
push dword [esp + 0x98]
movq qword [esp + 0xb8], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xc0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xc8], xmm0
movq xmm0, qword [eax + 0x18]
movq qword [esp + 0xd0], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0xd8], xmm0
movq xmm0, qword [eax + 0x28]
mov eax, dword [esp + 0x98]
movq qword [esp + 0xe0], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xb8]
push eax
push edi
call fcn.100ad3e0
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
dec edx
add ecx, 0x30
mov dword [esp + 0xc], edx
mov dword [esp + 0x28], ecx
test edx, edx
jg 0x1007ab60
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov edx, dword [esi]
test edx, edx
je 0x1007ae2b
mov eax, dword [edi + 0x88]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1007ad44
push 0
push edx
push 1
mov edx, 0x43
mov ecx, edi
call fcn.100c9070
add esp, 0xc
jmp 0x1007ad76
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x60]
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp byte [edx + 0x19], cl
jbe 0x1007adc0
lea edi, [edx + 0xa0]
jmp 0x1007ad90
cmp byte [edi - 6], 0
je 0x1007adb0
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x1007adb0
movzx ecx, al
mov eax, dword [edi]
mov dword [edx + ecx*4 + 0x15c], eax
inc byte [edx + 0x13]
mov ecx, dword [esp + 0x14]
movzx eax, byte [edx + 0x19]
inc ecx
add edi, 0x14
mov dword [esp + 0x14], ecx
cmp ecx, eax
jl 0x1007ad90
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
mov byte [edx + 0x19], 0
mov edi, dword [eax + 0x14]
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [ecx + 0xc], eax
jle 0x1007ae2b
test byte [edi + 0xa], 6
jne 0x1007ae1e
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
and ecx, dword [esi + 0x48]
and eax, dword [esi + 0x4c]
or ecx, eax
jne 0x1007ae13
push 0x10
push dword [esp + 0x98]
push dword [edi]
push edx
call fcn.100ad3e0
mov edx, dword [esp + 0x70]
add esp, 0x10
or word [edi + 0xa], 4
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x1c]
inc eax
add edi, 0x30
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx + 0xc]
jl 0x1007ade0
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
xor ecx, esp
call fcn.10001186
mov esp, ebp
pop ebp
ret