Function at 0x1009b2a0
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 [0x1013d070]
xor eax, esp
mov dword [esp + 0x144], eax
mov eax, edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x2c], eax
mov edx, ecx
mov dword [esp + 0x54], edx
push esi
lea eax, [eax + eax*4]
mov esi, dword [edx]
lea ecx, [edx + 0x50]
shl eax, 4
add edx, 0x2f0
add edx, eax
mov dword [esp + 0x84], ecx
push edi
mov ecx, dword [esi]
mov edi, dword [esi + 8]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x44], eax
movzx eax, byte [edx + 0x2c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x50], edi
lea ecx, [eax + eax*8]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x5c]
add eax, 8
mov dword [esp + 0x74], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x30], eax
xor eax, eax
cmp dword [ecx + 0x1ec], eax
jle 0x1009b364
add ecx, 0x1f0
nop dword [eax]
mov edx, dword [esp + 0x30]
cmp dword [ecx], edx
mov edx, dword [esp + 0x18]
je 0x1009b539
mov edi, dword [esp + 0x5c]
inc eax
add ecx, 4
cmp eax, dword [edi + 0x1ec]
mov edi, dword [esp + 0x50]
jl 0x1009b340
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
not ecx
not eax
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
mov dword [edx + 0x48], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x4c], eax
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ecx, dword [esp + 0x34]
call fcn.10108760
and eax, 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x44]
test byte [eax + 0x24], 0x40
je 0x1009b3c4
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], 1
test byte [eax + 0x2c], 0x20
je 0x1009b3cc
mov dword [esp + 0x24], 0
mov edx, dword [edi + 0xc]
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 0x44]
mov dword [esp + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x1009b40d
mov edx, dword [edx + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x10]
push 0
push eax
mov ecx, dword [ecx]
call fcn.1002fd70
mov edx, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov dword [edx + 0x48], eax
mov eax, dword [edx + 0x48]
test eax, eax
je 0x1009b41b
mov dword [eax + ecx*4], 0xffffffff
mov edx, dword [esp + 0x18]
not ecx
mov esi, dword [esp + 0x64]
mov dword [esp + 0x2c], ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 0xc], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x84], eax
inc eax
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x84]
dec eax
test dword [esp + 0x84], eax
jne 0x1009b47e
mov eax, dword [esp + 0x84]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
lea eax, [eax*8 + 4]
push eax
call fcn.1002fd70
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x1009b493
mov ecx, dword [esp + 0x84]
mov dword [eax + ecx*4], 0xffffffff
cmp byte [edx + 0x2c], 0
mov eax, dword [esp + 0x84]
not eax
mov dword [esp + 0x84], eax
mov dword [edx + 0x18], eax
jbe 0x1009b4d5
mov eax, dword [esp + 0x74]
test byte [eax + 0x24], 8
je 0x1009b4d5
mov eax, dword [esi + 0x2c]
mov ecx, edi
inc eax
mov dword [esi + 0x2c], eax
push eax
mov dword [edx], eax
mov edx, 0x43
push 0
call fcn.1004f8f0
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x34]
mov eax, ecx
test ecx, ecx
jle 0x1009b4ee
mov ecx, edx
cmp dword [ecx], 0
jne 0x1009b4ee
dec eax
sub ecx, 0x50
test eax, eax
jg 0x1009b4e1
mov ecx, dword [esp + 0x5c]
lea eax, [eax + eax*4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
test byte [eax + 0x28], 0x10
je 0x1009b672
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 0x1009b559
push edx
push 0
push esi
mov edx, 0xf
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009b58b
xor ecx, ecx
xor esi, esi
bts ecx, eax
cmp eax, 0x20
cmovae esi, ecx
xor ecx, esi
mov dword [esp + 0x1c], esi
cmp eax, 0x40
mov eax, esi
cmovae eax, ecx
jmp 0x1009b37e
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov edi, dword [esp + 0x50]
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 ecx, dword [edi + 0x88]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x30], ecx
jg 0x1009b5b6
push 0
push edx
push esi
mov edx, 0x10
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009b5e8
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 4], esi
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 + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x34], eax
mov byte [esi + 0x2d], 0xd
xor eax, eax
mov esi, dword [esp + 0x88]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x80], eax
nop word [eax + eax]
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x1009d3a8
nop dword [eax]
movzx eax, word [edx + 0xa]
xor esi, esi
mov dword [esp + 0x90], eax
test al, 6
jne 0x1009d389
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [edx + 0x28]
and ecx, dword [eax + 0x48]
mov eax, dword [edx + 0x2c]
and eax, dword [edi + 0x4c]
or ecx, eax
mov edi, dword [esp + 0x50]
je 0x1009d1e0
mov eax, dword [esp + 0x5c]
mov byte [eax + 0x32], 1
jmp 0x1009d385
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x24]
test eax, 0x400
je 0x1009bb1f
movzx eax, word [ecx + 0x28]
inc dword [esi + 0x3c]
mov dword [esp + 0x14], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x1009b6bf
mov al, byte [esi + 0x13]
test al, al
jne 0x1009b6aa
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
jmp 0x1009b6ec
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x15c]
mov dword [esp + 0x20], eax
jmp 0x1009b6ec
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x20], eax
cmp ecx, dword [esi + 0x1c]
jg 0x1009b6d9
add eax, ecx
sub dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
jmp 0x1009b6ec
mov eax, dword [esi + 0x2c]
lea edi, [eax + 1]
add eax, ecx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x50]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0xc]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x14], ecx
jle 0x1009b75f
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1009b750
mov eax, dword [esp + 0x20]
add eax, 2
add eax, ecx
test byte [edx + 0xc], 1
je 0x1009b73a
push eax
push dword [esp + 0x58]
push ecx
push edi
mov ecx, esi
call fcn.1009a540
mov edx, dword [edi + 0x10]
add esp, 0x10
mov dword [esp + 0x38], edx
jmp 0x1009b74c
mov edx, dword [edx]
mov ecx, esi
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.1009b0a0
add esp, 8
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x14]
jl 0x1009b703
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x1009b78c
push 0
push dword [esp + 0x24]
mov ecx, edi
push edx
mov edx, 0x43
call fcn.1004f760
add esp, 0xc
jmp 0x1009b7be
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
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 eax, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 0x88]
inc edx
mov dword [esp + 0x1c], edx
cmp dword [eax + 0x30], ecx
jg 0x1009b7ed
push 0
push edx
push dword [esp + 0x1c]
mov edx, 0x43
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009b823
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
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 eax, dword [esp + 0x44]
or ecx, 0xffffffff
mov edx, 0xfffffff9
cmp byte [eax + 0x1c], 0
mov eax, dword [eax + 0x20]
mov dword [esp + 0x80], eax
cmovne ecx, edx
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x88]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x30], edx
jg 0x1009b871
push dword [esp + 0x20]
mov edx, 0xb
mov ecx, edi
push dword [esp + 0x3c]
push dword [esp + 0x38]
call fcn.1004f760
add esp, 0xc
mov edx, eax
jmp 0x1009b8ab
mov esi, dword [esp + 0x30]
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x64]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x84]
call fcn.100506e0
mov eax, dword [esp + 0x4c]
add esp, 8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x30], eax
mov eax, 0x3d
cmp byte [edx + 0x31], 0
mov edx, 0xa9
cmovne eax, edx
mov edx, dword [esp + 0x14]
mov byte [ecx + 0x2d], al
sub edx, 1
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x34], eax
mov dword [esp + 0x2c], edx
js 0x1009bb13
mov eax, dword [ecx + 0x38]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp + 0x24], eax
jmp 0x1009b918
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x10], eax
cmp edx, 0x10
jge 0x1009b953
mov eax, dword [esp + 0x44]
mov cx, dx
mov ax, word [eax + 0x1e]
shr ax, cl
mov ecx, dword [esp + 0x18]
test al, 1
je 0x1009b94f
mov edx, dword [esp + 0x10]
call fcn.1009a210
jmp 0x1009bb02
mov eax, dword [esp + 0x10]
test byte [eax + 0xc], 1
je 0x1009bb06
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x49], 0
jne 0x1009ba1e
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + 0x3c]
sub edx, 0xc
mov dword [esp + 0x24], edx
mov ecx, dword [eax + edx + 4]
test ecx, ecx
jns 0x1009b988
mov ecx, dword [edi + 0x88]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1009b997
mov eax, 0x10142c24
jmp 0x1009b9a0
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 + 0x78], ecx
mov ecx, dword [eax + 4]
movzx eax, byte [eax]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1009b9e1
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009ba1e
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov ecx, dword [esi]
push 0
push 0x30
call fcn.1002fbc0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x1009bb02
push 0x30
push 0
push eax
call fcn.100e5e30
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
add esp, 0xc
mov word [eax + 0x22], cx
mov ecx, eax
mov byte [eax], 0x35
call fcn.10064fd0
mov eax, dword [esi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x18], ecx
jle 0x1009ba77
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10032d30
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, 0x9a
mov ecx, dword [esp + 0x14]
push 0
mov dword [esp + 0x94], 0
mov eax, dword [eax]
mov dword [esp + 0x98], 0
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x64]
push eax
call fcn.100650e0
mov ecx, dword [esp + 0x1c]
mov edx, eax
add esp, 8
mov dword [ecx + 0x10], edx
test edx, edx
je 0x1009baf0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
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.1006b460
mov edi, dword [esp + 0x60]
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0xc], 0
mov edx, ecx
mov ecx, dword [esp + 0x60]
call fcn.100657b0
mov edx, dword [esp + 0x2c]
sub edx, 1
mov dword [esp + 0x2c], edx
jns 0x1009b914
mov ecx, esi
call fcn.10069620
jmp 0x1009b5f3
test al, 5
setne cl
bt eax, 8
setb al
test al, cl
mov eax, dword [esp + 0x44]
je 0x1009bc0e
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 + 0x58]
mov dword [esp + 0x24], eax
push 0
push dword [esp + 0x24]
call fcn.1009a540
mov edx, eax
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
cmp edx, eax
je 0x1009bb76
mov edx, eax
mov ecx, esi
call fcn.1006c260
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x88]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x1009bbad
push edx
push dword [esp + 0x28]
mov edx, 0x1f
mov ecx, edi
push dword [esp + 0x38]
call fcn.1004f760
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x1009bbe3
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 1
mov ecx, esi
call fcn.100695a0
mov edx, dword [esp + 0x34]
add esp, 4
push dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.10069490
mov eax, dword [esp + 0x20]
add esp, 8
mov byte [eax + 0x2d], 0xa9
jmp 0x1009b5f3
mov ecx, dword [eax + 0x24]
mov eax, ecx
and eax, 0x102
cmp eax, 0x102
jne 0x1009beaa
xor edx, edx
mov dword [esp + 0x58], 0xa9
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], edx
test cl, 0x20
je 0x1009bc63
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], 1
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
test cl, 0x10
je 0x1009bc7c
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x40], ecx
jmp 0x1009bc7e
xor ecx, ecx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1009bc90
mov dword [esp + 0x40], edx
mov edx, ecx
mov dword [esp + 0x10], edx
test edx, edx
je 0x1009bd6d
mov edx, dword [edx]
mov dword [esp + 0x14], 0x1a18191b
mov dword [esp + 0x24], edx
mov ecx, dword [edx + 0x10]
call fcn.10064990
test eax, eax
je 0x1009bcfc
mov al, byte [esi + 0x13]
test al, al
jne 0x1009bcc1
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
jmp 0x1009bcd0
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x15c]
mov edx, dword [edx + 0x10]
mov ecx, esi
push 1
push eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], eax
call fcn.1009b0a0
mov ecx, dword [esp + 0x2c]
add esp, 8
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov cl, byte [esp + eax + 0x14]
jmp 0x1009bd38
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x80]
push eax
mov ecx, esi
call fcn.1006ab00
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
call fcn.1009a210
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx]
mov cl, byte [esp + eax - 0x22]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
push dword [esp + 0x38]
mov edx, dword [esp + 0x30]
push edx
push dword [esp + 0x38]
movzx edx, cl
mov ecx, edi
call fcn.1004f7a0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, esi
push 1
call fcn.100695a0
mov edx, dword [esp + 0x14]
add esp, 4
call fcn.1006c260
jmp 0x1009bd8d
push dword [esp + 0x1c]
xor edx, edx
mov ecx, edi
push dword [esp + 0x34]
test eax, eax
sete dl
lea edx, [edx*4 + 0x21]
call fcn.1004f8f0
add esp, 8
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1009be1d
mov eax, dword [eax]
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
push 1
mov edx, dword [eax + 0x10]
mov dword [esp + 0x38], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.1009b0a0
mov edx, dword [esp + 0x24]
add esp, 8
mov eax, dword [edx + 0x10]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.10064990
test eax, eax
jne 0x1009bdef
mov al, byte [edx]
cmp al, 0x38
je 0x1009bdd9
cmp al, 0x36
jne 0x1009bdef
xor edx, edx
cmp dword [esp + 0x54], edx
sete dl
lea edx, [edx*2 + 0x37]
mov dword [esp + 0x58], edx
jmp 0x1009be03
xor eax, eax
cmp dword [esp + 0x54], eax
setne al
lea eax, [eax*2 + 0x36]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x1c]
call fcn.10064990
test eax, eax
jne 0x1009be1d
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
call fcn.1009a210
cmp dword [esp + 0x54], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x88]
sete al
add al, 6
cmp dword [esp + 0x58], 0xa9
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x30]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
je 0x1009b5f3
inc dword [esi + 0x2c]
mov edx, 0x7d
mov esi, dword [esi + 0x2c]
mov ecx, edi
push esi
push eax
call fcn.1004f8f0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
push esi
push 0xffffffffffffffff
call fcn.10069490
mov edx, dword [esp + 0x68]
mov ecx, edi
push esi
push dword [esp + 0x40]
push dword [esp + 0x4c]
call fcn.1004f7a0
mov eax, dword [edi + 0x88]
add esp, 0x1c
test eax, eax
jle 0x1009b5f3
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x1009b5f3
test ecx, 0x200
je 0x1009c78d
mov eax, dword [esp + 0x44]
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x3c], 0
movzx esi, word [eax + 0x18]
mov dword [esp + 0x14], esi
movzx esi, word [eax + 0x1a]
mov dword [esp + 0x1c], esi
movzx esi, si
mov dword [esp + 0x40], esi
movzx esi, word [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x80], esi
movzx esi, si
mov dword [esp + 0x58], esi
test byte [eax + 0x2c], 1
mov esi, dword [esp + 0x64]
mov dword [esp + 0x78], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x7f], 0
je 0x1009bf50
cmp byte [eax + 0x2f], 0
mov eax, dword [esp + 0x14]
jle 0x1009bf54
mov edx, dword [esp + 0x4c]
cmp word [edx + 0x32], ax
mov edx, dword [esp + 0x18]
jbe 0x1009bf54
mov byte [esp + 0x2b], 1
mov dword [esp + 0x3c], 1
jmp 0x1009bf54
mov eax, dword [esp + 0x14]
movzx eax, ax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
test cl, 0x20
je 0x1009bf99
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edi*4]
inc edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x3c]
movzx eax, ax
cmp edi, eax
cmovbe edi, eax
mov eax, edi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
test cl, 0x10
je 0x1009c064
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
movzx eax, ax
cmp ecx, eax
cmovbe ecx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], ecx
mov ecx, 0x100
test word [eax + 0xa], cx
je 0x1009c025
mov eax, dword [esi + 0x2c]
mov ecx, edi
inc eax
mov dword [esi + 0x2c], eax
push eax
mov dword [edx + 0x24], eax
mov edx, 0x43
push 1
call fcn.1004f8f0
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [edi + 0x88]
add esp, 8
mov edi, dword [esp + 0x20]
shl dword [edx + 0x24], 1
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x1c]
cmp byte [edi + eax], 1
mov edi, dword [esp + 0x50]
sete cl
xor ecx, dword [esp + 0x54]
or dword [edx + 0x24], ecx
cmp dword [esp + 0x70], 0
jne 0x1009c064
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x1009c05a
mov eax, dword [esp + 0x4c]
add ecx, ecx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x1009c05f
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xfffffffe
jne 0x1009c064
mov byte [esp + 0x2b], 1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 0x32]
mov dword [esp + 0x1c], eax
cmp cx, ax
jae 0x1009c09e
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
cmp byte [edi + eax], cl
mov edi, dword [esp + 0x50]
sete cl
cmp dword [esp + 0x54], ecx
je 0x1009c0aa
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x54], 0
je 0x1009c0e1
cmp ax, cx
jne 0x1009c0e1
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x2b]
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x68], ecx
movzx ecx, di
mov edi, dword [esp + 0x50]
movzx eax, al
mov byte [esp + 0x2b], 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x8c]
mov ecx, esi
push eax
push dword [esp + 0x40]
push dword [esp + 0x5c]
call fcn.1009aaa0
mov ecx, dword [esp + 0x98]
add esp, 0xc
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x1009c126
cmp word [esp + 0x58], 0
je 0x1009c126
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx]
mov ecx, dword [esp + 0x60]
call fcn.1002fe30
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1009c147
test byte [eax + 0xc], 0x28
mov dword [esp + 0x6c], 0
je 0x1009c14f
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1009c165
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x10], 0
je 0x1009c16d
mov dword [esp + 0x10], 1
test eax, eax
jne 0x1009c2a0
cmp word [esp + 0x14], ax
ja 0x1009c2a0
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], edx
mov al, byte [esp + 0x2b]
test al, al
je 0x1009c1cb
mov eax, dword [esp + 0x2c]
mov edx, 0x46
add eax, ecx
mov ecx, edi
push eax
push 0
call fcn.1004f8f0
mov edx, dword [esp + 0x44]
add esp, 8
mov al, byte [esp + 0x2b]
inc edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x34], 1
push dword [esp + 0x8c]
movzx eax, al
mov ecx, esi
sub edx, eax
push edx
mov edx, dword [esp + 0x34]
call fcn.1009a280
mov eax, dword [esp + 0x4c]
add esp, 8
mov ecx, dword [esp + 0x3c]
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x1009c1fb
cmp ecx, eax
je 0x1009c229
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x38]
push dword [esp + 0x30]
push dword [esp + 0x40]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x60]
push dword [esp + 0x54]
movzx edx, byte [ecx + eax*2 + 0x1012e994]
mov ecx, edi
call fcn.1004fe10
add esp, 0x10
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1009c49c
mov eax, dword [eax]
mov ecx, esi
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x30]
mov edx, eax
mov dword [esp + 0x38], eax
call fcn.100695a0
mov eax, dword [esp + 0x5c]
add esp, 4
mov edx, dword [esp + 0x6c]
movzx eax, ax
push eax
push dword [esp + 0x38]
call fcn.1009b0a0
mov eax, dword [esp + 0x70]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x1009c3f5
mov eax, dword [edi]
mov ecx, dword [edi + 0x88]
dec ecx
cmp byte [eax + 0x49], 0
je 0x1009c3d4
mov edx, 0x10142c24
jmp 0x1009c3dd
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x3c], edx
test eax, eax
je 0x1009c18e
mov eax, dword [eax]
mov edx, dword [esp + 0x40]
add ecx, dword [esp + 0x2c]
movzx edx, dx
mov eax, dword [eax + 0x10]
push edx
mov dword [esp + 0x20], ecx
mov edx, eax
push ecx
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.1009b0a0
mov eax, dword [esp + 0x78]
mov ecx, 0x100
mov edi, dword [esp + 0x58]
add esp, 8
test word [eax + 0xa], cx
je 0x1009c32a
mov eax, dword [edi]
mov ecx, dword [edi + 0x88]
dec ecx
cmp byte [eax + 0x49], 0
je 0x1009c309
mov edx, 0x10142c24
jmp 0x1009c312
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 ecx, dword [esp + 0x14]
call fcn.10066cc0
test eax, eax
je 0x1009c34e
push dword [esp + 0x38]
mov edx, 0x32
mov ecx, edi
push dword [esp + 0x20]
call fcn.1004f8f0
add esp, 8
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x1009c373
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x44]
movzx edx, ax
call fcn.1009a2f0
add esp, 4
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
movzx eax, cx
add edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov cl, byte [eax]
cmp cl, 0x9a
jne 0x1009c392
mov cl, byte [eax + 0x26]
cmp cl, 0x9b
jne 0x1009c39c
mov eax, dword [eax + 0x14]
jmp 0x1009c3a6
cmp cl, 0x78
jne 0x1009c3bc
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
jle 0x1009c3bc
mov dword [esp + 0x6c], 1
xor al, al
jmp 0x1009c1cb
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
call fcn.1009a210
mov edx, dword [esp + 0x3c]
xor al, al
jmp 0x1009c1cb
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 ecx, dword [esp + 0x6c]
call fcn.10066cc0
test eax, eax
je 0x1009c419
push dword [esp + 0x38]
mov edx, 0x32
mov ecx, edi
push dword [esp + 0x38]
call fcn.1004f8f0
add esp, 8
mov eax, dword [esp + 0x78]
test eax, eax
je 0x1009c44f
mov ecx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x5c]
movzx edx, ax
call fcn.1009a2f0
mov ecx, dword [esp + 0x5c]
add esp, 4
mov edx, dword [esp + 0x34]
movzx eax, cx
mov ecx, esi
push dword [esp + 0x78]
push eax
call fcn.1009a280
add esp, 8
mov ecx, dword [esp + 0x58]
movzx eax, cx
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov cl, byte [eax]
cmp cl, 0x9a
jne 0x1009c468
mov cl, byte [eax + 0x26]
cmp cl, 0x9b
jne 0x1009c472
mov eax, dword [eax + 0x14]
jmp 0x1009c47c
cmp cl, 0x78
jne 0x1009c48d
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
jle 0x1009c48d
mov dword [esp + 0x10], 1
jmp 0x1009c4d8
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
call fcn.1009a210
jmp 0x1009c4d8
cmp byte [esp + 0x7f], 0
je 0x1009c4d8
mov esi, dword [esp + 0x20]
mov edx, 0x46
add esi, dword [esp + 0x2c]
mov ecx, edi
push esi
push 0
call fcn.1004f8f0
mov edx, esi
mov esi, dword [esp + 0x6c]
push 1
mov ecx, esi
call fcn.100695a0
add esp, 0xc
mov dword [esp + 0x10], 0
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x60]
test ecx, ecx
je 0x1009c52e
test edx, edx
je 0x1009c521
cmp dword [edx + 0x1d8], 0
je 0x1009c501
mov edx, ecx
mov ecx, dword [esp + 0x60]
call fcn.1002f870
jmp 0x1009c52a
cmp ecx, dword [edx + 0x128]
jb 0x1009c521
cmp ecx, dword [edx + 0x12c]
jae 0x1009c521
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x1009c52e
push ecx
call fcn.1002f800
add esp, 4
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x1009c579
test edx, edx
je 0x1009c570
cmp dword [edx + 0x1d8], 0
je 0x1009c550
mov edx, ecx
mov ecx, dword [esp + 0x60]
call fcn.1002f870
jmp 0x1009c579
cmp ecx, dword [edx + 0x128]
jb 0x1009c570
cmp ecx, dword [edx + 0x12c]
jae 0x1009c570
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x1009c579
push ecx
call fcn.1002f800
add esp, 4
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1009c5b5
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x40]
push dword [esp + 0x54]
movzx edx, byte [ecx + eax*2 + str.__]
mov ecx, edi
call fcn.1004fe10
add esp, 0x10
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x4c]
jne 0x1009c712
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x24], 0x20
jne 0x1009c649
mov ecx, dword [esp + 0x5c]
movzx eax, word [ecx + 0x2c]
test eax, 0x400
jne 0x1009c607
test eax, 0x1000
je 0x1009c5e9
cmp byte [ecx + 0x31], 1
je 0x1009c607
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
push esi
push dword [esp + 0x34]
call fcn.1009af20
mov eax, dword [esp + 0x54]
add esp, 8
jmp 0x1009c716
inc dword [esi + 0x2c]
mov edx, 0x84
mov esi, dword [esi + 0x2c]
mov ecx, edi
push esi
push dword [esp + 0x4c]
call fcn.1004f8f0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
push esi
push 0xffffffffffffffff
call fcn.10069490
push esi
push 0
push dword [esp + 0x48]
mov edx, 0x20
mov ecx, edi
call fcn.1004f7a0
add esp, 0x1c
jmp 0x1009c70e
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x48]
je 0x1009c712
call fcn.100710e0
mov ecx, esi
mov dword [esp + 0x10], eax
movzx edx, word [eax + 0x32]
call fcn.1006c2b0
mov dword [esp + 0x38], eax
xor esi, esi
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x34], esi
cmp cx, word [eax + 0x32]
jae 0x1009c6eb
mov edx, dword [esp + 0x4c]
xor ecx, ecx
movzx edx, word [edx + 0x34]
test edx, edx
jle 0x1009c6b5
mov eax, dword [eax + 4]
movzx esi, word [eax + esi*2]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 4]
nop dword [eax]
cmp si, word [eax]
je 0x1009c749
inc ecx
add eax, 2
cmp ecx, edx
jl 0x1009c6a0
mov esi, dword [esp + 0x34]
or ecx, 0xffffffff
mov eax, dword [esp + 0x38]
mov edx, 0x62
add eax, esi
push eax
movsx eax, cx
mov ecx, edi
push eax
push dword [esp + 0x50]
call fcn.1004f7a0
mov eax, dword [esp + 0x1c]
inc esi
add esp, 0xc
mov dword [esp + 0x34], esi
movzx eax, word [eax + 0x32]
cmp esi, eax
mov eax, dword [esp + 0x10]
jl 0x1009c681
movzx eax, word [eax + 0x32]
mov edx, 0x1d
push eax
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x8c]
push dword [esp + 0x3c]
call fcn.1004fe10
add esp, 0x10
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
cmp dword [edx], 0
jne 0x1009c736
push dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
mov ecx, eax
push esi
call fcn.1009b190
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x44]
test dword [ecx + 0x24], 0x1000
je 0x1009c755
mov byte [edx + 0x2d], 0xa9
jmp 0x1009c762
mov esi, dword [esp + 0x34]
movzx ecx, cx
jmp 0x1009c6b8
cmp dword [esp + 0x54], 0
sete al
add al, 6
mov byte [edx + 0x2d], al
mov dword [edx + 0x30], esi
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edx + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x1009c777
mov byte [edx + 0x2f], 1
cmp dword [esp + 0x24], 0
je 0x1009d1d7
xor eax, eax
mov dword [esp + 0x4c], eax
jmp 0x1009b5f5
test ecx, 0x2000
je 0x1009d189
mov eax, dword [esi + 0x28]
inc dword [esi + 0x2c]
mov dword [esp + 0x80], eax
inc eax
mov dword [esi + 0x28], eax
mov ecx, dword [edi + 0xc]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], 0
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], ecx
lea eax, [edx + 1]
mov dword [esp + 0x68], edx
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x1009c809
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
push eax
call fcn.1002fd70
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x68]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x1009c817
mov dword [eax + edx*4], 0xffffffff
mov eax, dword [esp + 0x74]
not edx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x6c], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], 0
mov dword [esp + 0x70], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 0x30], edx
mov edx, dword [esp + 0x5c]
mov byte [eax + 0x2d], 0x3f
mov al, byte [edx + 0x2e]
cmp al, 1
jbe 0x1009c99e
mov ecx, dword [esp + 0x60]
movzx eax, al
sub eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x24], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x1009c898
call fcn.1002fbc0
mov ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x1009c8a3
call fcn.1002f6c0
mov ecx, eax
mov dword [esp + 0x44], eax
add esp, 8
test ecx, ecx
jne 0x1009c8c4
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.100ae9aa
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x24]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [esp + 0x5c]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
cmp edx, 1
jl 0x1009c968
mov edi, dword [esp + 0x18]
add ecx, 0x50
add edi, 0x7c
mov esi, eax
nop dword [eax + eax]
movzx eax, byte [edi]
lea edi, [edi + 0x50]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movups xmm0, xmmword [esi + eax*8 + 8]
movups xmmword [ecx - 0x48], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x18]
movups xmmword [ecx - 0x38], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x28]
movups xmmword [ecx - 0x28], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x38]
movups xmmword [ecx - 0x18], xmm0
movq xmm0, qword [esi + eax*8 + 0x48]
movq qword [ecx - 8], xmm0
sub edx, 1
jne 0x1009c920
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x5c]
test byte [eax + 0x2c], 0x10
jne 0x1009c9fd
test byte [ecx + 0x24], 0x20
jne 0x1009c9a7
inc dword [esi + 0x2c]
mov edx, 0x46
mov eax, dword [esi + 0x2c]
mov ecx, edi
push eax
push 0
mov dword [esp + 0x34], eax
call fcn.1004f8f0
add esp, 8
jmp 0x1009c9f3
mov eax, dword [edx + 4]
mov dword [esp + 0x3c], eax
jmp 0x1009c96c
mov ecx, dword [ecx + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x1009c9c6
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x1009c9c2
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x1009c9b2
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x2c], edx
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
movzx eax, word [ecx + 0x32]
mov ecx, edi
push eax
push edx
mov edx, 0x6e
call fcn.1004f8f0
mov edx, dword [esp + 0x2c]
add esp, 8
mov ecx, esi
call fcn.100507b0
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x88]
mov dword [esp + 0x44], edx
cmp dword [eax + 0x30], edx
jg 0x1009ca2c
push 0
push dword [esp + 0x5c]
mov edx, 0x43
mov ecx, edi
push 0
call fcn.1004f760
add esp, 0xc
mov dword [esp + 0x44], eax
jmp 0x1009ca62
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x58]
mov edx, dword [esp + 0x58]
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 edx, dword [esp + 0x88]
mov eax, dword [edx + 0xc]
cmp eax, 1
jle 0x1009cb75
test eax, eax
jle 0x1009cb75
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 0x14]
mov edx, dword [eax + ecx]
add eax, ecx
cmp eax, dword [esp + 0x1c]
je 0x1009cad7
test byte [eax + 0xa], 6
jne 0x1009cad7
mov esi, 0x1fff
test word [eax + 0xc], si
mov esi, dword [esp + 0x60]
je 0x1009cad7
test edx, edx
je 0x1009cabc
push 0
push 0
mov ecx, esi
call fcn.10065990
add esp, 8
jmp 0x1009cabe
xor eax, eax
mov edx, dword [esp + 0x48]
mov ecx, esi
push eax
call fcn.10065490
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x48], eax
jmp 0x1009cadb
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x88]
inc edi
add ecx, 0x30
mov dword [esp + 0x24], ecx
cmp edi, dword [edx + 0xc]
jl 0x1009ca85
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test eax, eax
je 0x1009cb75
mov ecx, dword [esi]
push 0
push 0x30
call fcn.1002fbc0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x1009cb62
push 0x30
push 0
push eax
call fcn.100e5e30
mov ecx, dword [esp + 0x1c]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x10], eax
mov byte [ecx], 0x2c
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [ecx + 4], eax
call fcn.10064fd0
mov eax, dword [esi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x18], ecx
jle 0x1009cb71
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.10032d30
add esp, 0xc
jmp 0x1009cb6d
mov edx, dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.100657b0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov ecx, 0x400
push str.MULTI_INDEX_OR
push 1
push esi
mov ax, word [eax + 0x2c]
and ax, cx
or ax, 0x20
movzx eax, ax
mov dword [esp + 0xac], eax
call fcn.1004fc90
mov ecx, dword [esp + 0x44]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x78], eax
cmp dword [ecx + 0xc], eax
jle 0x1009d004
mov edx, dword [esp + 0x30]
nop word [eax + eax]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], edx
je 0x1009cbe1
mov edi, 0x400
test word [eax + 0xc], di
mov edi, dword [esp + 0x50]
je 0x1009cff2
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x1009cbf6
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x80]
mov edx, dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0xa4]
push 0
push 0
push eax
call fcn.100a4f20
add esp, 0x14
mov dword [esp + 0x90], eax
test eax, eax
je 0x1009cfea
mov edx, dword [esp + 0x3c]
lea ecx, [eax + 0x2f0]
push 0
push ecx
mov ecx, esi
call fcn.10099f10
mov eax, dword [esp + 0x64]
add esp, 8
test byte [eax + 0x2c], 0x10
jne 0x1009ceec
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
test byte [eax + 0x24], 0x20
jne 0x1009cca7
push 0
push dword [esp + 0x44]
mov edx, eax
mov ecx, esi
push dword [esp + 0x38]
push 0xffffffffffffffff
call fcn.10069790
push dword [esp + 0x20]
mov edx, 0x2d
mov ecx, edi
push eax
push 0
push dword [esp + 0x48]
call fcn.1004fe10
add esp, 0x20
mov dword [esp + 0x24], eax
jmp 0x1009ceec
mov ecx, eax
call fcn.100710e0
mov dword [esp + 0xa4], eax
movzx edx, word [eax + 0x32]
mov dword [esp + 0x14], edx
cmp edx, 1
jne 0x1009ccea
mov cl, byte [esi + 0x13]
test cl, cl
jne 0x1009ccd5
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
jmp 0x1009cd13
dec cl
movzx eax, cl
mov byte [esi + 0x13], cl
mov eax, dword [esi + eax*4 + 0x15c]
mov dword [esp + 0x20], eax
jmp 0x1009cd13
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x20], eax
cmp edx, ecx
jg 0x1009cd04
add eax, edx
sub ecx, edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x1009cd13
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 1]
add eax, edx
mov dword [esp + 0x20], ecx
mov dword [esi + 0x2c], eax
xor ecx, ecx
mov dword [esp + 0x54], ecx
test edx, edx
je 0x1009cde6
mov edi, dword [esp + 0x20]
nop word [eax + eax]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x70]
push 0
push edi
mov eax, dword [eax + 4]
push dword [esp + 0x38]
movsx eax, word [eax + ecx*2]
mov ecx, esi
push eax
call fcn.10069790
add esp, 0x10
mov dword [esp + 0x34], eax
cmp eax, edi
je 0x1009cdcc
mov ecx, dword [esi + 8]
mov dword [esp + 0x9c], ecx
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x88]
mov dword [esp + 0xa8], eax
cmp dword [edx + 0x30], eax
mov edx, dword [esp + 0x34]
jg 0x1009cd92
push 0
push edi
push edx
mov edx, 0x4c
call fcn.1004f760
add esp, 0xc
jmp 0x1009cdcc
inc eax
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0xa8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x9c]
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 + 0x54]
inc edi
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x54], ecx
cmp ecx, edx
jl 0x1009cd30
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1009ce12
push edx
push dword [esp + 0x24]
mov edx, 0x1e
mov ecx, edi
push 0
push dword [esp + 0x38]
call fcn.1004fe10
mov dword [esp + 0x34], eax
add esp, 0x10
mov eax, dword [esp + 0x10]
test eax, eax
js 0x1009ceba
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1009ce44
push dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov ecx, edi
push edx
push dword [esp + 0x28]
mov edx, 0x65
call fcn.1004f760
add esp, 0xc
jmp 0x1009ce7a
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x65
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x14]
mov edx, 0x81
mov ecx, edi
push dword [esp + 0x24]
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.1004fe10
add esp, 0x10
cmp dword [esp + 0x10], 0
je 0x1009ceba
mov eax, dword [edi + 0x88]
test eax, eax
jle 0x1009ceba
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [esp + 0x20]
cmp eax, 1
jne 0x1009ced0
call fcn.1006c260
jmp 0x1009ceec
push eax
call fcn.100695a0
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, dword [esi + 0x1c]
jle 0x1009ceec
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x20], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1009cf15
push 0
push dword [esp + 0x6c]
mov edx, 0xe
mov ecx, edi
push dword [esp + 0x60]
call fcn.1004f760
add esp, 0xc
jmp 0x1009cf4b
mov edx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
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 + 0x24]
test ecx, ecx
je 0x1009cf79
mov edx, dword [edi + 0x88]
jns 0x1009cf5e
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1009cf6d
mov eax, 0x10142c24
jmp 0x1009cf76
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 ecx, 1
mov eax, dword [esp + 0x6c]
cmp byte [edx + 0x32], 0
cmovne eax, ecx
mov ecx, dword [edx + 0x330]
mov dword [esp + 0x6c], eax
test dword [ecx + 0x24], 0x200
je 0x1009cfd8
cmp dword [esp + 0x78], 0
je 0x1009cfb6
mov eax, dword [esp + 0x8c]
cmp dword [ecx + 0x20], eax
jne 0x1009cfd8
mov eax, dword [esp + 0x70]
test byte [eax + 0x24], 0x20
je 0x1009cfcc
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x1009cfd8
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x8c], eax
jmp 0x1009cfe3
mov dword [esp + 0x8c], 0
mov ecx, edx
call fcn.100a5af0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [ecx + 0xc]
jl 0x1009cbc0
mov ecx, dword [esi + 0x19c]
test ecx, ecx
jne 0x1009d012
xor eax, eax
jmp 0x1009d03b
mov edx, dword [esi + 8]
test ecx, ecx
jns 0x1009d020
mov ecx, dword [edx + 0x88]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x49], 0
je 0x1009d02f
mov eax, 0x10142c24
jmp 0x1009d038
mov eax, dword [edx + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0x19c], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x8c]
mov dword [esi + 0x38], eax
test eax, eax
je 0x1009d05d
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1009d077
mov ecx, dword [esp + 0x60]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.100657b0
mov ecx, dword [esp + 0x44]
mov edx, dword [edi + 0x88]
test ecx, ecx
jns 0x1009d088
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1009d097
mov eax, 0x10142c24
jmp 0x1009d0a0
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 0x1009d0ca
push 0
push edx
push 0
mov edx, 0xd
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009d0fc
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
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 0x1009d11b
mov eax, dword [esp + 0x68]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x2e], 1
jbe 0x1009d16e
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x1009d16e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x1009d165
cmp dword [ecx + 0x1d8], 0
je 0x1009d145
call fcn.1002f870
jmp 0x1009d16e
cmp edx, dword [ecx + 0x128]
jb 0x1009d165
cmp edx, dword [ecx + 0x12c]
jae 0x1009d165
mov eax, dword [ecx + 0x124]
mov dword [edx], eax
mov dword [ecx + 0x124], edx
jmp 0x1009d16e
push edx
call fcn.1002f800
add esp, 4
cmp dword [esp + 0x6c], 0
jne 0x1009b5f3
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.1009a210
jmp 0x1009b5f3
mov eax, dword [esp + 0x74]
test byte [eax + 0x28], 0x20
je 0x1009d19c
mov byte [edx + 0x2d], 0xa9
jmp 0x1009b5f3
mov ecx, dword [esp + 0x54]
push dword [esp + 0x1c]
mov al, byte [ecx + 0x1012d6f0]
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x34]
mov dword [edx + 0x30], eax
movzx edx, byte [ecx + 0x1012f5d4]
mov ecx, edi
push eax
call fcn.1004f8f0
mov ecx, dword [esp + 0x20]
add esp, 8
inc eax
mov dword [ecx + 0x34], eax
mov byte [ecx + 0x2f], 1
jmp 0x1009b5f3
mov eax, dword [esp + 0x4c]
jmp 0x1009b5f5
mov eax, dword [esp + 0x74]
mov ecx, dword [edx]
mov dword [esp + 0x9c], ecx
test byte [eax + 0x24], 8
je 0x1009d1fd
test byte [ecx + 4], 1
je 0x1009d385
mov eax, dword [esp + 0x80]
cmp eax, 1
jne 0x1009d27d
mov eax, dword [esp + 0x18]
xorps xmm0, xmm0
movaps xmmword [esp + 0xb0], xmm0
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xb4], 0x1006bdb0
mov eax, dword [eax + 4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xc8], eax
test ecx, ecx
je 0x1009d265
mov edx, ecx
lea ecx, [esp + 0xb0]
call fcn.100621f0
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xc4], 0
je 0x1009d282
mov ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x1009d389
cmp eax, 3
jge 0x1009d2a7
movzx eax, word [edx + 0xa]
test eax, 0x1000
je 0x1009d2ae
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x1009d389
mov ecx, 3
mov dword [esp + 0x14], ecx
jmp 0x1009d389
mov eax, dword [esp + 0x90]
test eax, 0x200
je 0x1009d336
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x1009d336
mov eax, dword [edi + 0xc]
mov ecx, edx
mov esi, dword [edi + 0x88]
and edx, 1
shr ecx, 1
add edx, 0x15
mov dword [esp + 0x90], ecx
cmp dword [eax + 0x30], esi
jg 0x1009d2f6
push 0
push 0
push ecx
mov ecx, edi
call fcn.1004f760
add esp, 0xc
mov esi, eax
jmp 0x1009d336
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x58]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
push 0x10
push dword [esp + 0x88]
push dword [esp + 0xa4]
push dword [esp + 0x70]
call fcn.1006b460
add esp, 0x10
test esi, esi
je 0x1009d37c
mov edx, dword [edi + 0x88]
jns 0x1009d361
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x1009d370
mov eax, 0x10142c24
jmp 0x1009d379
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x24]
or word [edx + 0xa], 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add edx, 0x30
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
test eax, eax
jg 0x1009b630
mov esi, dword [esp + 0x88]
mov dword [esp + 0x80], ecx
test ecx, ecx
jg 0x1009b610
mov edx, dword [esi + 0x14]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x74], edx
mov dword [esp + 0x40], esi
test esi, esi
jle 0x1009d512
nop dword [eax]
test byte [edx + 0xa], 6
jne 0x1009d4fa
movzx eax, word [edx + 0xc]
mov edi, 0xb
test al, 0x82
setne cl
bt ax, di
mov edi, dword [esp + 0x64]
setb al
test al, cl
je 0x1009d4fa
mov ecx, dword [esp + 0x30]
cmp dword [edx + 0x14], ecx
jne 0x1009d4fa
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x1009d4fa
mov eax, dword [edx]
xor esi, esi
push esi
push 0x83
push dword [edx + 0x1c]
mov edx, dword [esp + 0x94]
push ecx
lea ecx, [esp + 0xf8]
mov dword [esp + 0xac], eax
call fcn.1009fe90
mov edx, eax
add esp, 0x10
test edx, edx
je 0x1009d47b
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x1009d469
mov eax, dword [edx + 0x20]
or eax, dword [edx + 0x24]
jne 0x1009d464
test byte [edx + 0xc], 0x82
jne 0x1009d47d
test esi, esi
cmove esi, edx
lea ecx, [esp + 0xe8]
call fcn.1009fb80
mov edx, eax
test edx, edx
jne 0x1009d446
mov edx, esi
test edx, edx
je 0x1009d4f2
test byte [edx + 0xa], 4
jne 0x1009d4f2
test byte [edx + 0xc], 1
je 0x1009d4a2
mov eax, dword [edx]
test dword [eax + 4], 0x800
je 0x1009d4a2
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x1009d4f2
mov eax, dword [edx]
push 0x10
push dword [esp + 0x88]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xb8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xc8], xmm0
movups xmm0, xmmword [eax + 0x20]
mov eax, dword [esp + 0xa4]
movups xmmword [esp + 0xd8], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xb8]
push eax
push edi
call fcn.1006b460
add esp, 0x10
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x74]
dec esi
add edx, 0x30
mov dword [esp + 0x40], esi
mov dword [esp + 0x74], edx
test esi, esi
jg 0x1009d3d0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx]
test esi, esi
je 0x1009d633
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x1009d54d
push 0
push esi
push 1
mov edx, 0x43
mov ecx, edi
call fcn.1004f760
add esp, 0xc
jmp 0x1009d57f
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x64]
xor edi, edi
cmp byte [edx + 0x19], 0
jbe 0x1009d5b9
lea esi, [edx + 0xa0]
cmp byte [esi - 6], 0
je 0x1009d5ad
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x1009d5ad
movzx ecx, al
mov eax, dword [esi]
mov dword [edx + ecx*4 + 0x15c], eax
inc byte [edx + 0x13]
movzx eax, byte [edx + 0x19]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x1009d591
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x88]
mov byte [edx + 0x19], 0
mov esi, dword [eax + 0x14]
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [ecx + 0xc], eax
jle 0x1009d62f
nop dword [eax]
test byte [esi + 0xa], 6
jne 0x1009d622
mov edi, dword [esp + 0x18]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x48]
and eax, dword [edi + 0x4c]
or ecx, eax
jne 0x1009d617
push 0x10
push dword [esp + 0x88]
push dword [esi]
push edx
call fcn.1006b460
mov edx, dword [esp + 0x74]
add esp, 0x10
or word [esi + 0xa], 4
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x24]
inc eax
add esi, 0x30
mov dword [esp + 0x24], eax
cmp eax, dword [ecx + 0xc]
jl 0x1009d5e0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
xor ecx, esp
call fcn.100ae9aa
mov esp, ebp
pop ebp
ret