Function at 0x100c3b10
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x101e42fc]
xor eax, esp
mov dword [esp + 0x144], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, edx
mov dword [esp + 8], eax
mov edx, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], esi
lea ecx, [edx + 0x50]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x80], ecx
mov ecx, dword [edi]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0x40]
movzx eax, byte [eax + 0x2c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x68], 0
lea ecx, [eax + eax*8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x1ec]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x84], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x20], eax
xor eax, eax
test edx, edx
jle 0x100c3bb8
mov ecx, dword [esp + 0x38]
add ecx, 0x1f0
nop dword [eax]
mov esi, dword [esp + 0x20]
cmp dword [ecx], esi
mov esi, dword [esp + 0x48]
je 0x100c3c5f
inc eax
add ecx, 4
cmp eax, edx
jl 0x100c3ba0
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0xc]
not ecx
and ecx, dword [ebp + 0x14]
not edx
and edx, dword [ebp + 0x18]
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x4c], edx
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ecx, dword [ebp + 0xc]
call fcn.1017b2d0
mov ecx, dword [esp + 0xc]
and eax, 1
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
cmp byte [ecx + 0x2c], 0
mov dword [esp + 0x88], eax
mov dword [ecx + 0x18], eax
jbe 0x100c3ca8
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 8
je 0x100c3ca8
mov edx, dword [edi + 0x2c]
inc edx
mov dword [edi + 0x2c], edx
mov dword [ecx], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c3c79
push 0
push edx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c3ca8
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x100c3bd2
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x46
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 [ebp + 0xc]
mov ecx, eax
test eax, eax
jle 0x100c3cd0
mov edx, dword [esp + 0x38]
lea eax, [eax + eax*4]
shl eax, 4
add edx, 0x2f0
add eax, edx
cmp dword [eax], 0
jne 0x100c3cd0
dec ecx
sub eax, 0x50
test ecx, ecx
jg 0x100c3cc3
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x38]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x84]
test byte [eax + 0x28], 0x10
je 0x100c3dba
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x100c3d18
push edx
push 0
push edi
mov edx, 0xd
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c3d47
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x100c3d77
push 0
push dword [esp + 0x2c]
mov edx, 0xe
mov ecx, esi
push edi
call fcn.1006dd00
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [eax + 0x34], edx
mov byte [eax + 0x2d], 0xb
jmp 0x100c6171
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x34], edx
mov byte [eax + 0x2d], 0xb
jmp 0x100c6171
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x24]
test edx, 0x400
je 0x100c421f
movzx edx, word [eax + 0x28]
mov dword [esp + 0x30], edx
lea eax, [edx + 2]
cmp eax, 1
jne 0x100c3e05
mov al, byte [edi + 0x13]
test al, al
jne 0x100c3df0
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x14], ecx
jmp 0x100c3e3e
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov ecx, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x14], ecx
jmp 0x100c3e3e
mov esi, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, esi
jg 0x100c3e28
add eax, ecx
mov ecx, esi
mov dword [edi + 0x20], eax
lea eax, [edx + 2]
sub ecx, eax
mov dword [edi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x100c3e3a
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
add eax, 2
add eax, edx
mov dword [esp + 0x14], ecx
mov dword [edi + 0x2c], eax
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
xor edi, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
test edx, edx
je 0x100c3eb7
mov esi, dword [esp + 0x3c]
add ecx, 2
mov dword [esp + 0x18], ecx
nop word [eax + eax]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x100c3eac
test byte [edx + 0xc], 1
lea eax, [edi + ecx]
mov ecx, esi
je 0x100c3e98
push eax
push dword [esp + 0x64]
push edi
push dword [esp + 0x18]
call fcn.100c2d70
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], eax
jmp 0x100c3ea8
mov edx, dword [edx]
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.100c3950
add esp, 8
mov ecx, dword [esp + 0x18]
inc edi
cmp edi, dword [esp + 0x30]
jl 0x100c3e60
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x14]
mov edx, dword [eax + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x100c3edf
push 0
push edi
push edx
mov edx, 0x46
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c3f0a
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x46
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 [esi + 0x6c]
lea eax, [edi + 1]
cmp dword [esi + 0x70], ecx
jg 0x100c3f2d
push 0
push eax
push dword [esp + 0x38]
mov edx, 0x46
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c3f5f
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
lea edx, [edi + 1]
mov dword [eax + ecx*4], 0x46
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 + 0x40]
or eax, 0xffffffff
mov edx, 0xfffffff9
cmp byte [ecx + 0x1c], 0
cmovne eax, edx
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x2c], eax
cmp dword [esi + 0x70], edx
jg 0x100c3fa1
push edi
push dword [esp + 0x14]
mov edx, 9
mov ecx, esi
push dword [esp + 0x28]
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c3fd4
mov edi, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x5c]
mov ecx, esi
push dword [esp + 0x30]
call fcn.1006e770
mov ecx, dword [esp + 0x14]
add esp, 8
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x30], eax
mov eax, 0x3c
cmp byte [edx + 0x31], 0
mov edx, 0xaa
cmovne eax, edx
mov edx, dword [ecx + 0x38]
mov byte [ecx + 0x2d], al
mov eax, dword [esi + 0x6c]
mov dword [ecx + 0x34], eax
mov ecx, dword [esp + 0x30]
sub ecx, 1
mov dword [esp + 0x24], ecx
js 0x100c6171
lea eax, [edx + edx*4]
shl eax, 2
mov dword [esp + 0x18], eax
lea eax, [ecx + 2]
add eax, edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x5c], edx
cmp ecx, 0x10
jge 0x100c406e
mov ax, word [edi + 0x1e]
shr ax, cl
test al, 1
je 0x100c406a
mov ecx, dword [esp + 0xc]
call fcn.100c2a00
jmp 0x100c4205
mov ecx, dword [esp + 0x24]
test byte [edx + 0xc], 1
je 0x100c4209
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x51], 0
jne 0x100c4123
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
sub ecx, 0x14
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jns 0x100c40a4
mov ecx, dword [esi + 0x6c]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
je 0x100c40b3
mov eax, 0x101ea7fc
jmp 0x100c40bc
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov al, byte [eax]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0x6c]
mov byte [esp + 0x1f], al
cmp dword [esi + 0x70], ecx
jg 0x100c40ed
mov ecx, dword [esp + 0x74]
push edx
push edi
push ecx
movzx edx, al
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4123
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x1f]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x3c]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.1004c780
mov edi, eax
add esp, 8
test edi, edi
je 0x100c4201
push 0x34
push 0
push edi
call fcn.10150b00
add esp, 0xc
mov byte [edi], 0x35
or eax, 0xffffffff
mov ecx, edi
mov word [edi + 0x22], ax
call fcn.100832f0
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x78]
cmp dword [edi + 0x18], eax
jle 0x100c417a
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.1004fb10
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
push 0
push 0x35
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
call fcn.1004c780
mov ecx, eax
add esp, 8
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x100c41cb
push 0x34
push 0
push ecx
call fcn.10150b00
mov ecx, dword [esp + 0x68]
add esp, 0xc
or eax, 0xffffffff
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x34]
mov byte [ecx], 0xa8
mov dword [ecx + 8], eax
mov byte [eax], 0
mov dword [ecx + 0x18], 1
mov dword [edi + 0x10], ecx
test ecx, ecx
je 0x100c41ef
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0xc]
push 0
push dword [eax + 0x18]
push edi
push dword [esp + 0x48]
call fcn.1008a3c0
add esp, 0x10
mov ecx, dword [esp + 0x64]
mov edx, edi
mov dword [edi + 0xc], 0
call fcn.10083ab0
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
dec dword [esp + 0x10]
dec ecx
mov dword [esp + 0x24], ecx
test ecx, ecx
jns 0x100c4042
jmp 0x100c6171
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x100c4301
mov eax, dword [esp + 0x40]
mov ecx, edi
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push dword [esp + 0x64]
mov dword [esp + 0x34], edx
push 0
push dword [esp + 0x18]
mov dword [esp + 0x6c], eax
call fcn.100c2d70
mov ecx, dword [esp + 0x6c]
mov edx, eax
add esp, 0x10
cmp edx, ecx
je 0x100c4282
test ecx, ecx
je 0x100c4282
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x100c4282
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x10]
cmp dword [esi + 0x70], ecx
jg 0x100c42a8
push edx
push edi
push dword [esp + 0x28]
mov edx, 0x1e
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c42d7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
mov byte [edi + 0x2d], 0xaa
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x2c]
and ecx, dword [edi + 0x48]
and eax, dword [edi + 0x4c]
or ecx, eax
jne 0x100c6171
or word [edx + 0xa], 4
jmp 0x100c6171
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x100c46bd
mov eax, 0xaa
mov dword [esp + 0x6c], 0
mov dword [esp + 0x58], eax
xor ecx, ecx
xor eax, eax
test dl, 0x20
je 0x100c4342
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], 4
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
xor eax, eax
jmp 0x100c4346
mov dword [esp + 0x18], eax
test dl, 0x10
je 0x100c4359
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [edx + eax]
cmp dword [esp + 0x60], 0
mov edx, ecx
cmove edx, eax
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x60]
test edx, edx
cmove eax, ecx
mov dword [esp + 0x5c], eax
test eax, eax
je 0x100c44b4
mov ecx, dword [eax]
mov dword [esp + 0x24], 0x18161719
mov dword [esp + 0x18], ecx
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
cmp al, 0xa8
jne 0x100c4396
mov al, byte [edx + 0x26]
cmp al, 0xa9
jne 0x100c439f
lea eax, [edx + 0x14]
jmp 0x100c43a6
cmp al, 0x83
jne 0x100c43fb
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x100c43fb
mov al, byte [edi + 0x13]
test al, al
jne 0x100c43bc
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
jmp 0x100c43cb
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov edx, dword [ecx + 0x10]
mov ecx, edi
push 1
push eax
mov dword [esp + 0x38], eax
call fcn.100c3950
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x30]
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x24]
mov byte [esp + 0xb], al
jmp 0x100c4438
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
call fcn.10089980
mov edx, dword [esp + 0x60]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
call fcn.100c2a00
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
movzx eax, byte [ecx]
mov cl, byte [esp + eax - 0x12]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov al, cl
mov byte [esp + 0xb], cl
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c4458
push edx
push dword [esp + 0x2c]
movzx edx, al
mov ecx, esi
push dword [esp + 0x28]
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4492
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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 cl, byte [esp + 0xb]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x100c4517
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x100c4517
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
jmp 0x100c4517
mov ecx, dword [esi + 0x6c]
xor edx, 1
lea edx, [edx*4 + 0x20]
cmp dword [esi + 0x70], ecx
jg 0x100c44dd
mov ecx, dword [esp + 0x10]
push 0
push ecx
push dword [esp + 0x28]
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4517
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x74]
test eax, eax
je 0x100c45c7
mov eax, dword [eax]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
push 1
mov edx, dword [eax + 0x10]
mov dword [esp + 0x70], ecx
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.100c3950
mov ecx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [ecx + 0x10]
mov dl, byte [ecx]
mov al, dl
cmp al, 0xa8
jne 0x100c4555
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x100c455e
lea eax, [ecx + 0x14]
jmp 0x100c4565
cmp al, 0x83
jne 0x100c456c
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x100c457a
mov eax, dword [esp + 0x18]
mov al, byte [eax]
cmp al, 0x38
je 0x100c4587
cmp al, 0x36
je 0x100c4587
mov eax, dword [esp + 0x60]
lea eax, [eax*2 + 0x36]
jmp 0x100c4595
mov eax, dword [esp + 0x60]
xor eax, 1
lea eax, [eax*2 + 0x37]
mov dword [esp + 0x58], eax
cmp dl, 0xa8
jne 0x100c45a1
mov dl, byte [ecx + 0x26]
cmp dl, 0xa9
jne 0x100c45ab
lea eax, [ecx + 0x14]
jmp 0x100c45b3
cmp dl, 0x83
jne 0x100c45ba
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x100c45c7
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0xc]
call fcn.100c2a00
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + 0x6c]
sete al
add al, 4
cmp dword [esp + 0x58], 0xaa
mov byte [edx + 0x2d], al
mov eax, dword [esp + 0x20]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
je 0x100c6171
inc dword [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
mov edi, dword [edi + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x100c4616
push 0
push edi
push eax
mov edx, 0x80
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4645
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x80
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 [esi + 0x6c]
mov edx, dword [esp + 0x58]
cmp dword [esi + 0x70], ecx
jg 0x100c4667
mov ecx, dword [esp + 0x6c]
push edi
push dword [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c469d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x100c6171
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x100c6171
test edx, 0x200
je 0x100c5596
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x70], 0
mov dword [esp + 0x28], 0
movzx eax, word [ecx + 0x18]
mov dword [esp + 0x50], eax
movzx eax, word [ecx + 0x1a]
mov dword [esp + 0x30], eax
movzx eax, word [ecx + 0x1c]
xor ecx, ecx
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
test byte [eax + 0x2c], 1
je 0x100c4750
cmp byte [eax + 0x2f], cl
mov eax, dword [esp + 0x50]
jle 0x100c4754
mov edi, dword [esp + 0x44]
cmp word [edi + 0x32], ax
mov edi, dword [esp + 0x3c]
jbe 0x100c4754
mov ecx, 1
mov byte [esp + 0xb], 1
mov dword [esp + 0x10], ecx
jmp 0x100c4754
mov eax, dword [esp + 0x50]
movzx eax, ax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
test dl, 0x20
je 0x100c478f
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
inc dword [esp + 0x14]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x70], eax
movzx eax, word [esi + 0x1a]
mov esi, dword [esp + 0x48]
cmp ecx, eax
cmovbe ecx, eax
mov dword [esp + 0x10], ecx
test dl, 0x10
je 0x100c48b5
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edx*4]
movzx eax, word [edi + 0x1c]
mov edi, dword [esp + 0x3c]
cmp ecx, eax
mov dword [esp + 0x28], edx
cmova eax, ecx
mov ecx, 0x100
mov dword [esp + 0x10], eax
test word [edx + 0xa], cx
je 0x100c4863
inc dword [edi + 0x2c]
mov eax, dword [esp + 0xc]
mov edx, dword [edi + 0x2c]
mov dword [eax + 0x24], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c47f9
push 0
push edx
push 1
mov edx, 0x46
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4828
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x46
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 ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x6c]
mov esi, dword [esp + 0x4c]
mov edx, dword [ecx + 0x24]
mov dword [ecx + 0x28], eax
add edx, edx
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x24], edx
xor ecx, ecx
mov eax, dword [eax + 0x1c]
cmp byte [esi + eax], 1
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x48]
sete cl
xor ecx, dword [esp + 0x60]
or ecx, edx
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x70], 0
mov edx, eax
jne 0x100c48b9
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x68], ecx
test ecx, ecx
js 0x100c4896
mov eax, dword [edx + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x100c48a8
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x10]
mov edx, eax
cmp ecx, 0xfffffffe
jne 0x100c48b9
mov byte [esp + 0xb], 1
jmp 0x100c48b9
mov eax, dword [esp + 0x10]
mov edx, eax
mov byte [esp + 0xb], 1
jmp 0x100c48b9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
movzx eax, word [eax + 0x32]
mov dword [esp + 0x68], eax
cmp cx, ax
jae 0x100c48f3
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov esi, dword [esp + 0x4c]
mov eax, dword [eax + 0x1c]
cmp byte [esi + eax], cl
mov esi, dword [esp + 0x48]
sete cl
cmp dword [esp + 0x60], ecx
je 0x100c48ff
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x60], 0
je 0x100c4936
cmp ax, cx
jne 0x100c4936
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov al, byte [esp + 0xb]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
movzx ecx, si
mov esi, dword [esp + 0x48]
movzx eax, al
mov byte [esp + 0xb], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x6c]
mov ecx, edi
push eax
push edx
push dword [esp + 0x68]
mov edx, dword [esp + 0x18]
call fcn.100c32f0
mov ecx, dword [esp + 0x58]
add esp, 0xc
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100c49cf
cmp word [esp + 0x58], 0
je 0x100c49cf
add eax, ecx
mov dword [esp + 0x5c], eax
jne 0x100c4976
xor edx, edx
mov dword [esp + 0x24], edx
jmp 0x100c49cf
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c4980
sub ecx, edx
push 0
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
push eax
test ecx, ecx
je 0x100c49a8
call fcn.1004c780
mov edx, eax
mov dword [esp + 0x2c], edx
jmp 0x100c49b3
call fcn.1004c100
mov edx, eax
mov dword [esp + 0x2c], eax
add esp, 8
test edx, edx
je 0x100c49cb
push dword [esp + 0x68]
push dword [esp + 0x60]
push edx
call fcn.1014ffa0
add esp, 0xc
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x100c49f0
test byte [eax + 0xc], 0x28
mov dword [esp + 0x7c], 0
je 0x100c49f8
mov dword [esp + 0x7c], 1
mov edx, dword [esp + 0x28]
test edx, edx
je 0x100c4a0e
test byte [edx + 0xc], 0x28
mov dword [esp + 0x10], 0
je 0x100c4a16
mov dword [esp + 0x10], 1
test eax, eax
jne 0x100c4a60
cmp word [esp + 0x50], ax
ja 0x100c4a60
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xb]
mov dword [esp + 0x50], ecx
test al, al
je 0x100c4c09
mov edx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c4bb9
push 0
push edx
push 0
mov edx, 0x49
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4bec
mov dword [esp + 0x18], 1
mov dword [esp + 0x50], ecx
test eax, eax
je 0x100c4a25
mov eax, dword [eax]
mov edx, dword [esp + 0x30]
add ecx, dword [esp + 0x54]
movzx edx, dx
mov eax, dword [eax + 0x10]
push edx
mov dword [esp + 0x30], ecx
mov edx, eax
push ecx
mov ecx, edi
mov dword [esp + 0x7c], eax
call fcn.100c3950
mov eax, dword [esp + 0x78]
mov ecx, 0x100
mov esi, dword [esp + 0x50]
add esp, 8
test word [eax + 0xa], cx
je 0x100c4aeb
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x51], 0
je 0x100c4ac6
mov ecx, 0x101ea808
mov edx, 0x101ea7fe
jmp 0x100c4ad1
mov eax, dword [esi + 0x68]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x24]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x24]
and al, 1
movzx eax, al
mov word [edx], ax
mov ecx, dword [esp + 0x74]
call fcn.100850d0
test eax, eax
je 0x100c4b4b
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x100c4b1c
push 0
push dword [esp + 0x18]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4b4b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x32
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 + 0x6c]
test ecx, ecx
je 0x100c4b6d
mov eax, dword [esp + 0x4c]
add eax, ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x34]
movzx edx, ax
call fcn.100c2b20
add esp, 4
mov ecx, dword [esp + 0x30]
movzx eax, cx
mov ecx, dword [esp + 0x74]
add dword [esp + 0x50], eax
mov al, byte [ecx]
cmp al, 0xa8
jne 0x100c4b85
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x100c4b8e
lea eax, [ecx + 0x14]
jmp 0x100c4b95
cmp al, 0x83
jne 0x100c4ba8
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x100c4ba8
mov dword [esp + 0x7c], 1
xor al, al
jmp 0x100c4c09
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
call fcn.100c2a00
xor al, al
jmp 0x100c4c09
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x49
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 + 0x4c]
inc eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x50], eax
mov al, byte [esp + 0xb]
mov dword [esp + 0x18], 1
mov ecx, dword [esp + 0x50]
push dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
movzx eax, al
sub ecx, eax
push ecx
mov ecx, edi
call fcn.100c2a70
mov ecx, dword [esp + 0x48]
add esp, 8
movzx eax, word [ecx + 0x2a]
test ax, ax
je 0x100c4c3c
cmp dword [esp + 0x50], eax
je 0x100c4d30
test dword [ecx + 0x24], 0x40000
je 0x100c4c99
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c4c66
push 0
push 0
push dword [esp + 0x3c]
mov edx, 0x77
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4c99
mov edx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x77
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x6c]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x60]
mov al, byte [ecx + eax*2 + 0x101a7458]
mov byte [esp + 0xb], al
cmp dword [esi + 0x70], edx
jg 0x100c4cd8
push dword [esp + 0x54]
movzx edx, al
mov ecx, esi
push dword [esp + 0x18]
push dword [esp + 0x3c]
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c4d15
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0xb]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100c4d30
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x50]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x100c4e9d
mov eax, dword [eax]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
add edx, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
mov edi, dword [esp + 0x3c]
movzx ecx, cx
push ecx
mov dword [esp + 0x1c], edx
mov ecx, edi
push edx
mov edx, eax
mov dword [esp + 0x7c], eax
call fcn.100c3950
mov eax, dword [esp + 0x30]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x100c4dbb
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x51], 0
je 0x100c4d96
mov ecx, 0x101ea808
mov edx, 0x101ea7fe
jmp 0x100c4da1
mov eax, dword [esi + 0x68]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x24]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x24]
and al, 1
movzx eax, al
mov word [edx], ax
mov ecx, dword [esp + 0x74]
call fcn.100850d0
test eax, eax
je 0x100c4e1b
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x100c4dec
push 0
push dword [esp + 0x18]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4e1b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x32
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 + 0x24]
test eax, eax
je 0x100c4e52
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x5c]
movzx edx, ax
call fcn.100c2b20
mov eax, dword [esp + 0x28]
add esp, 4
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
push eax
movzx eax, cx
mov ecx, edi
push eax
call fcn.100c2a70
add esp, 8
mov ecx, dword [esp + 0x58]
movzx eax, cx
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0x74]
mov cl, byte [eax]
cmp cl, 0xa8
jne 0x100c4e6b
mov cl, byte [eax + 0x26]
cmp cl, 0xa9
jne 0x100c4e75
add eax, 0x14
jmp 0x100c4e7d
cmp cl, 0x83
jne 0x100c4e8e
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x100c4e8e
mov dword [esp + 0x10], 1
jmp 0x100c4f09
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
call fcn.100c2a00
jmp 0x100c4f09
cmp byte [esp + 0x1f], 0
je 0x100c4f09
mov edx, dword [esp + 0x4c]
add edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c4eca
push 0
push edx
push 0
mov edx, 0x49
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c4efd
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x49
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
inc dword [esp + 0x4c]
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
test ecx, ecx
je 0x100c4f5c
test edx, edx
je 0x100c4f4f
cmp dword [edx + 0x1e8], 0
je 0x100c4f2f
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.1004c3d0
jmp 0x100c4f58
cmp ecx, dword [edx + 0x138]
jb 0x100c4f4f
cmp ecx, dword [edx + 0x13c]
jae 0x100c4f4f
mov eax, dword [edx + 0x134]
mov dword [ecx], eax
mov dword [edx + 0x134], ecx
jmp 0x100c4f5c
push ecx
call fcn.1004c320
add esp, 4
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x100c4fa7
test edx, edx
je 0x100c4f9e
cmp dword [edx + 0x1e8], 0
je 0x100c4f7e
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.1004c3d0
jmp 0x100c4fa7
cmp ecx, dword [edx + 0x138]
jb 0x100c4f9e
cmp ecx, dword [edx + 0x13c]
jae 0x100c4f9e
mov eax, dword [edx + 0x134]
mov dword [ecx], eax
mov dword [edx + 0x134], ecx
jmp 0x100c4fa7
push ecx
call fcn.1004c320
add esp, 4
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x6c]
mov dword [ecx + 0x34], eax
je 0x100c504c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
mov edx, dword [esi + 0x6c]
mov al, byte [eax + ecx*2 + 0x101abc10]
mov byte [esp + 0x1f], al
cmp dword [esi + 0x70], edx
jg 0x100c4ff4
push dword [esp + 0x54]
movzx edx, al
mov ecx, esi
push dword [esp + 0x18]
push dword [esp + 0x3c]
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c5031
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x1f]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100c504c
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x4c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x40]
test dword [edx + 0x24], 0x40000
je 0x100c5078
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c509d
push 0
push 1
push dword [esp + 0x3c]
mov edx, 0x77
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
test byte [eax + 0x24], 0x40
je 0x100c50d2
mov eax, dword [esp + 0x38]
test byte [eax + 0x2c], 0x20
jne 0x100c50d2
mov dword [esp + 0x2c], 1
jmp 0x100c5128
mov edx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x77
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100c507c
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], 0
mov eax, dword [ecx + 0xc]
test byte [eax + 0x24], 0x20
jne 0x100c5371
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x2c]
test eax, 0x400
jne 0x100c52c2
test eax, 0x1000
mov eax, dword [esp + 0x38]
je 0x100c5113
cmp byte [eax + 0x31], 1
je 0x100c52c2
push edx
push dword [esp + 0x24]
mov edx, ecx
mov ecx, eax
call fcn.100c37e0
add esp, 8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
cmp dword [edi], 0
jne 0x100c5286
test byte [eax + 0x2c], 0x20
jne 0x100c5286
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x68], eax
test eax, eax
je 0x100c5286
lea edi, [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x34]
xorps xmm0, xmm0
mov dword [esp + 0xb8], edi
xor edi, edi
mov dword [esp + 0xa0], 0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov dword [esp + 0xa4], 0x100c3a40
mov dword [esp + 0x98], ecx
mov dword [esp + 0x30], edi
cmp dword [eax], edi
jle 0x100c5282
lea ecx, [eax + 4]
mov dword [esp + 0x18], ecx
nop word [eax + eax]
mov eax, dword [edx + 4]
cmp word [eax + edi*2], 0xfffe
jne 0x100c5264
mov esi, dword [esp + 0x38]
mov dword [esp + 0x9c], edi
mov eax, dword [ecx]
mov dword [esp + 0x90], eax
mov edx, dword [esi + 0x10]
test edx, edx
je 0x100c51f5
lea ecx, [esp + 0xa0]
call fcn.10080080
mov esi, dword [esi + 8]
test esi, esi
je 0x100c522e
mov edi, dword [esi]
add esi, 4
test edi, edi
jle 0x100c522a
nop word [eax + eax]
mov edx, dword [esi]
lea ecx, [esp + 0xa0]
call fcn.10080170
test eax, eax
jne 0x100c522a
dec edi
add esi, 0x18
test edi, edi
jg 0x100c5210
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x100c5260
mov edi, dword [esi]
add esi, 4
test edi, edi
jle 0x100c525c
mov edx, dword [esi]
lea ecx, [esp + 0xa0]
call fcn.10080170
test eax, eax
jne 0x100c525c
dec edi
add esi, 0x18
test edi, edi
jg 0x100c5242
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
inc edi
add dword [esp + 0x18], 0x18
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], edi
cmp edi, dword [eax]
jl 0x100c51c0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x100c52a8
push dword [esp + 0x80]
mov edx, dword [esp + 0x24]
call fcn.100c3a90
mov edx, dword [esp + 0x48]
add esp, 4
mov ecx, dword [esp + 0x40]
test dword [ecx + 0x24], 0x1000
je 0x100c555e
mov byte [edi + 0x2d], 0xaa
jmp 0x100c556b
inc dword [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
mov edi, dword [edi + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x100c52e5
push 0
push edi
push edx
mov edx, 0x87
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c5314
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x87
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 [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c5337
push edi
push 0
push dword [esp + 0x28]
mov edx, 0x1f
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c5124
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edx
mov eax, dword [esp + 0x38]
jmp 0x100c512c
mov ecx, dword [esp + 0x20]
cmp ecx, edx
je 0x100c5555
mov edi, dword [eax + 8]
test edi, edi
je 0x100c5394
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x100c5394
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x100c5384
movzx edx, word [edi + 0x32]
mov ecx, dword [esp + 0x3c]
cmp edx, 1
jne 0x100c53c9
mov al, byte [ecx + 0x13]
test al, al
jne 0x100c53b4
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x100c53f2
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x28], eax
jmp 0x100c53f2
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x28], eax
cmp edx, dword [ecx + 0x1c]
jg 0x100c53df
add eax, edx
sub dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], eax
jmp 0x100c53f2
mov eax, dword [ecx + 0x2c]
lea esi, [eax + 1]
add eax, edx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x48]
mov dword [ecx + 0x2c], eax
movzx eax, word [edi + 0x32]
xor edx, edx
mov dword [esp + 0x18], 0
mov ecx, eax
cmp dx, ax
jae 0x100c54ce
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
xor ecx, ecx
movzx edx, word [eax + 0x34]
test edx, edx
je 0x100c5455
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x18]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
nop word [eax + eax]
mov esi, dword [esp + 0x68]
cmp si, word [eax]
mov esi, dword [esp + 0x48]
je 0x100c547d
inc ecx
add eax, 2
cmp ecx, edx
jl 0x100c5440
or eax, 0xffffffff
mov ecx, dword [esi + 0x6c]
movsx edx, ax
cmp dword [esi + 0x70], ecx
jg 0x100c5482
push dword [esp + 0x10]
mov ecx, esi
push edx
push dword [esp + 0x3c]
mov edx, 0x5a
call fcn.1006dd00
add esp, 0xc
jmp 0x100c54b5
movzx eax, cx
jmp 0x100c5458
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x18]
movzx ecx, word [edi + 0x32]
inc edx
inc dword [esp + 0x10]
mov dword [esp + 0x18], edx
cmp edx, ecx
jl 0x100c5413
mov edx, dword [esi + 0x6c]
movzx edi, cx
cmp dword [esi + 0x70], edx
jg 0x100c54fb
push dword [esp + 0x28]
mov edx, 0x1c
mov ecx, esi
push dword [esp + 0x8c]
push dword [esp + 0x28]
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c5535
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x88]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100c5124
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x100c5124
mov eax, dword [esp + 0x38]
jmp 0x100c512c
cmp dword [esp + 0x60], 0
sete al
add al, 4
mov byte [edi + 0x2d], al
mov eax, dword [esp + 0x34]
mov dword [edi + 0x30], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edi + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x100c5584
mov byte [edi + 0x2f], 1
xor eax, eax
cmp dword [esp + 0x2c], eax
cmove eax, edx
mov dword [esp + 0x68], eax
jmp 0x100c6173
test edx, 0x2000
je 0x100c60c8
mov eax, dword [edi + 0x28]
dec dword [edi + 0x38]
inc dword [edi + 0x2c]
mov dword [esp + 0x4c], eax
inc eax
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x18], eax
xor eax, eax
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], 0
mov dword [esp + 0x44], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x30], edx
mov edx, dword [esp + 0x38]
mov byte [eax + 0x2d], 0x42
mov al, byte [edx + 0x2e]
cmp al, 1
jbe 0x100c5760
mov ecx, dword [esp + 0x64]
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x2c], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x100c5650
call fcn.1004c780
mov ecx, eax
mov dword [esp + 0x58], ecx
jmp 0x100c565b
call fcn.1004c100
mov ecx, eax
mov dword [esp + 0x58], eax
add esp, 8
test ecx, ecx
jne 0x100c567c
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.1014d1d5
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x2c]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x84]
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 + 0x38]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
cmp edx, 1
jl 0x100c571d
mov esi, dword [esp + 0xc]
add ecx, 0x50
add esi, 0x7c
mov edi, eax
movzx eax, byte [esi]
lea esi, [esi + 0x50]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movups xmm0, xmmword [edi + eax*8]
movups xmmword [ecx - 0x48], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x10]
movups xmmword [ecx - 0x38], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x20]
movups xmmword [ecx - 0x28], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x30]
movups xmmword [ecx - 0x18], xmm0
movq xmm0, qword [edi + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
sub edx, 1
jne 0x100c56d6
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
test byte [eax + 0x2c], 0x10
jne 0x100c587a
test byte [ecx + 0x24], 0x20
jne 0x100c57a1
inc dword [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x44], edx
cmp dword [esi + 0x70], ecx
jg 0x100c5769
push 0
push edx
push 0
mov edx, 0x49
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c5870
mov eax, dword [edx + 4]
mov dword [esp + 0x50], eax
jmp 0x100c5721
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x49
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
jmp 0x100c5870
mov edi, dword [ecx + 8]
test edi, edi
je 0x100c57b8
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x100c57b8
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x100c57a8
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x44], eax
inc eax
mov dword [ecx + 0x28], eax
mov ecx, dword [esi + 0x6c]
movzx edx, word [edi + 0x32]
cmp dword [esi + 0x70], ecx
jg 0x100c57eb
push 0
push edx
push dword [esp + 0x4c]
mov edx, 0x71
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c581e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x71
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 + 0x3c]
mov edx, edi
mov edi, dword [esp + 0x3c]
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
call fcn.10099860
mov dword [esp + 0x10], eax
test eax, eax
je 0x100c5870
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx]
cmp byte [ecx + 0x51], 0
je 0x100c585a
push eax
mov edx, 0xfffffff7
call fcn.1006e520
add esp, 4
jmp 0x100c5870
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x40], edx
cmp dword [esi + 0x70], edx
jg 0x100c58a3
push 0
push dword [esp + 0x70]
mov edx, 0x46
mov ecx, esi
push 0
call fcn.1006dd00
add esp, 0xc
mov dword [esp + 0x40], eax
jmp 0x100c58d6
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0x46
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 + 0x80]
cmp dword [eax + 0xc], 1
jle 0x100c59e8
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x2c], edx
xor esi, esi
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x14]
add eax, ecx
cmp eax, dword [esp + 0x5c]
je 0x100c5946
test byte [eax + 0xa], 6
jne 0x100c5946
mov edi, 0x1fff
test word [eax + 0xc], di
mov edi, dword [esp + 0x3c]
je 0x100c5946
mov edx, dword [eax]
test edx, edx
je 0x100c592d
mov ecx, dword [esp + 0x64]
push 0
push 0
call fcn.10083cb0
add esp, 8
jmp 0x100c592f
xor eax, eax
push eax
mov edx, esi
mov ecx, edi
call fcn.10083680
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x80]
inc edx
add ecx, 0x30
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], ecx
cmp edx, dword [eax + 0xc]
jl 0x100c58f5
mov dword [esp + 0x24], esi
test esi, esi
mov esi, dword [esp + 0x48]
je 0x100c59e8
mov ecx, dword [edi]
push 0
push 0x34
call fcn.1004c780
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x100c59d5
push 0x34
push 0
push eax
call fcn.10150b00
mov ecx, dword [esp + 0x1c]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov byte [ecx], 0x2c
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [ecx + 4], eax
call fcn.100832f0
mov eax, dword [edi]
mov ecx, dword [eax + 0x78]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x18], ecx
jle 0x100c59e4
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.1004fb10
add esp, 0xc
jmp 0x100c59e0
mov edx, dword [esp + 0x24]
mov ecx, dword [edi]
call fcn.10083ab0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov ecx, 0x400
push str.MULTI_INDEX_OR
push 1
push edi
mov ax, word [eax + 0x2c]
and ax, cx
or ax, 0x20
movzx eax, ax
mov dword [esp + 0x98], eax
call fcn.1006dff0
mov ecx, dword [esp + 0x88]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x58], eax
cmp dword [ecx + 0xc], eax
jle 0x100c5f47
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], edx
je 0x100c5a51
mov esi, 0x400
test word [eax + 0xc], si
mov esi, dword [esp + 0x48]
je 0x100c5f35
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0
test ecx, ecx
je 0x100c5a6e
mov dword [ecx + 0xc], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x58]
inc eax
push eax
push str.INDEX__d
push 1
push edi
call fcn.1006dff0
push dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
mov ecx, edi
push dword [esp + 0xa0]
push 0
push 0
push dword [esp + 0x4c]
call fcn.100ce440
add esp, 0x24
mov dword [esp + 0x90], eax
test eax, eax
je 0x100c5f2d
mov edx, dword [esp + 0x50]
lea ecx, [eax + 0x2f0]
push 0
push ecx
mov ecx, edi
call fcn.100c26a0
mov eax, dword [esp + 0x40]
add esp, 8
test byte [eax + 0x2c], 0x10
jne 0x100c5e07
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
test byte [eax + 0x24], 0x20
jne 0x100c5b9c
push dword [esp + 0x14]
mov edx, eax
mov ecx, esi
push 0xffffffffffffffff
push dword [esp + 0x28]
call fcn.10087c20
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov dword [esp + 0x30], edx
cmp dword [esi + 0x70], edx
jg 0x100c5b41
push dword [esp + 0x14]
mov edx, 0x2a
mov ecx, esi
push 0
push dword [esp + 0x4c]
call fcn.1006dd00
mov edx, eax
add esp, 0xc
mov dword [esp + 0x30], edx
jmp 0x100c5b78
mov edi, dword [esp + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x2a
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100c5e07
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x100c5e07
mov ecx, eax
call fcn.100927c0
mov edx, eax
mov dword [esp + 0x2c], edx
movzx ecx, word [edx + 0x32]
mov eax, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], eax
cmp eax, 1
jne 0x100c5be4
mov cl, byte [edi + 0x13]
test cl, cl
jne 0x100c5bcf
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x34], eax
jmp 0x100c5c15
dec cl
movzx eax, cl
mov byte [edi + 0x13], cl
mov eax, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x34], eax
jmp 0x100c5c15
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x34], edx
cmp eax, ecx
jg 0x100c5c00
add eax, edx
sub ecx, dword [esp + 0x54]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x100c5c11
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
add eax, dword [esp + 0x54]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x2c], eax
mov edx, dword [esp + 0x2c]
xor eax, eax
xor edi, edi
cmp ax, word [esp + 0x60]
jae 0x100c5c4c
mov eax, dword [esp + 0x34]
mov ecx, esi
add eax, edi
push eax
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x2c]
movsx eax, word [eax + edi*2]
push eax
push dword [esp + 0x28]
call fcn.10087c20
mov edx, dword [esp + 0x38]
inc edi
add esp, 0xc
cmp edi, dword [esp + 0x54]
jl 0x100c5c20
mov eax, dword [esp + 0x10]
test eax, eax
je 0x100c5cd9
mov edi, dword [esi + 0x6c]
mov dword [esp + 0x30], edi
cmp dword [esi + 0x70], edi
jg 0x100c5c85
push dword [esp + 0x34]
mov edx, 0x1d
mov ecx, esi
push 0
push dword [esp + 0x4c]
call fcn.1006dd00
mov edi, eax
add esp, 0xc
mov dword [esp + 0x30], edi
jmp 0x100c5cb8
mov edx, dword [esp + 0x44]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esp + 0x54]
cmp byte [eax + 0x51], 0
jne 0x100c5cd3
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x10]
jmp 0x100c5cdd
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
test eax, eax
js 0x100c5dc6
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c5d0b
push dword [esp + 0x14]
mov edx, 0x5c
mov ecx, esi
push dword [esp + 0x58]
push edi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c5d36
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x100c5d5a
push edi
push dword [esp + 0x18]
mov edx, 0x84
mov ecx, esi
push dword [esp + 0x4c]
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c5d8d
mov edi, dword [esp + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x84
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100c5da8
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x54]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x10], 0
je 0x100c5dc6
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x100c5dc6
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
cmp word [esp + 0x60], 1
jne 0x100c5df0
test edi, edi
mov edi, dword [esp + 0x3c]
je 0x100c5e07
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x100c5e07
mov edx, dword [esp + 0x34]
movzx eax, al
mov dword [edi + eax*4 + 0x94], edx
inc byte [edi + 0x13]
jmp 0x100c5e07
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x54]
cmp eax, dword [edi + 0x1c]
jle 0x100c5e07
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 0x20], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c5e2a
push 0
push dword [esp + 0x1c]
mov edx, 0xc
mov ecx, esi
push dword [esp + 0x74]
call fcn.1006dd00
add esp, 0xc
jmp 0x100c5e5d
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xc
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 + 0x30]
test ecx, ecx
je 0x100c5e8b
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x100c5e77
mov eax, 0x101ea7fc
jmp 0x100c5e88
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x90]
mov ecx, 1
mov eax, dword [esp + 0x74]
cmp byte [edx + 0x32], 0
cmovne eax, ecx
mov ecx, dword [edx + 0x330]
mov dword [esp + 0x74], eax
test dword [ecx + 0x24], 0x200
je 0x100c5ee4
cmp dword [esp + 0x58], 0
je 0x100c5ec5
mov eax, dword [esp + 0x70]
cmp dword [ecx + 0x20], eax
jne 0x100c5ee4
mov eax, dword [esp + 0x28]
test byte [eax + 0x24], 0x20
je 0x100c5edb
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x100c5ee4
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x70], eax
jmp 0x100c5eec
mov dword [esp + 0x70], 0
mov ecx, edx
call fcn.100cf080
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x100c5f01
xor eax, eax
jmp 0x100c5f27
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x100c5f0c
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x100c5f1b
mov eax, 0x101ea7fc
jmp 0x100c5f24
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [ecx + 0xc]
jl 0x100c5a30
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x100c5f55
xor eax, eax
jmp 0x100c5f7b
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x100c5f60
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x100c5f6f
mov eax, 0x101ea7fc
jmp 0x100c5f78
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x70]
mov dword [edi + 0x38], eax
test eax, eax
je 0x100c5f97
mov eax, dword [esp + 0x4c]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100c5fb1
mov ecx, dword [esp + 0x64]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.10083ab0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x100c5fc3
mov eax, 0x101ea7fc
jmp 0x100c5fd8
mov ecx, dword [esp + 0x40]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x6c]
mov edx, dword [edi + 0xc]
cmp dword [esi + 0x70], ecx
jg 0x100c5ffc
push 0
push edx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
jmp 0x100c602b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
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 ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x100c6049
push edx
mov edx, esi
call fcn.1006e160
add esp, 4
jmp 0x100c6052
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x2e], 1
jbe 0x100c60ad
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x100c60ad
mov eax, dword [esp + 0x64]
test eax, eax
je 0x100c60a4
cmp dword [eax + 0x1e8], 0
je 0x100c6080
mov edx, ecx
mov ecx, eax
call fcn.1004c3d0
jmp 0x100c60ad
cmp ecx, dword [eax + 0x138]
jb 0x100c60a4
cmp ecx, dword [eax + 0x13c]
jae 0x100c60a4
mov eax, dword [eax + 0x134]
mov dword [ecx], eax
mov eax, dword [esp + 0x64]
mov dword [eax + 0x134], ecx
jmp 0x100c60ad
push ecx
call fcn.1004c320
add esp, 4
cmp dword [esp + 0x74], 0
jne 0x100c6171
mov edx, dword [esp + 0x5c]
mov ecx, edi
call fcn.100c2a00
jmp 0x100c6171
mov eax, dword [esp + 0x84]
test byte [eax + 0x28], 0x20
je 0x100c60e2
mov eax, dword [esp + 0xc]
mov byte [eax + 0x2d], 0xaa
jmp 0x100c6171
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xc]
movzx eax, byte [ecx + 0x101aa3bc]
mov byte [edi + 0x2d], al
mov eax, dword [esp + 0x20]
mov dword [edi + 0x30], eax
mov al, byte [ecx + 0x101abd8c]
mov edx, dword [esi + 0x6c]
mov byte [esp + 0x1f], al
cmp dword [esi + 0x70], edx
jg 0x100c6129
mov ecx, dword [esp + 0x10]
push 0
push ecx
push dword [esp + 0x28]
movzx edx, al
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
mov edx, eax
jmp 0x100c6167
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x1f]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
lea eax, [edx + 1]
mov byte [edi + 0x2f], 1
mov dword [edi + 0x34], eax
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x5c], eax
nop
mov eax, dword [esp + 0x80]
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
mov dword [esp + 0x14], edx
test edx, edx
jle 0x100c63b7
nop
movzx edx, word [edi + 0xa]
xor eax, eax
mov dword [esp + 0x18], eax
test dl, 6
jne 0x100c6392
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + 0x28]
and ecx, dword [eax + 0x48]
mov eax, dword [edi + 0x2c]
and eax, dword [esi + 0x4c]
or ecx, eax
mov esi, dword [esp + 0x48]
je 0x100c61dc
mov eax, dword [esp + 0x38]
mov byte [eax + 0x32], 1
jmp 0x100c638e
mov eax, dword [esp + 0x84]
mov ecx, dword [edi]
mov dword [esp + 0x2c], ecx
test byte [eax + 0x24], 8
je 0x100c61f9
test byte [ecx + 4], 1
je 0x100c638e
mov eax, dword [esp + 0x5c]
cmp eax, 1
jne 0x100c6279
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
mov dword [esp + 0xa0], 0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov eax, dword [eax + 4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x74]
mov dword [esp + 0xa4], 0x1008b090
mov dword [esp + 0xb8], eax
test ecx, ecx
je 0x100c6261
mov edx, ecx
lea ecx, [esp + 0xa0]
call fcn.10080080
cmp byte [esp + 0xb4], 0
je 0x100c627e
mov ecx, 2
mov dword [esp + 0x24], ecx
jmp 0x100c6392
cmp eax, 3
jge 0x100c62a4
movzx edx, word [edi + 0xa]
test edx, 0x1000
je 0x100c62a4
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x100c6392
mov ecx, 3
mov dword [esp + 0x24], ecx
jmp 0x100c6392
test edx, 0x200
je 0x100c6342
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x100c6342
mov edx, dword [esi + 0x6c]
mov ecx, eax
and eax, 1
shr ecx, 1
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x18], edx
lea eax, [eax*2 + 0x12]
mov dword [esp + 0x90], eax
cmp dword [esi + 0x70], edx
jg 0x100c62fe
push 0
push 0
push ecx
mov edx, eax
mov ecx, esi
call fcn.1006dd00
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x100c6342
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x90]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], ecx
push 0x10
push dword [esp + 0x8c]
push dword [esp + 0x34]
push dword [esp + 0x48]
call fcn.1008a3c0
mov ecx, dword [esp + 0x28]
add esp, 0x10
test ecx, ecx
je 0x100c6389
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x100c6375
mov eax, 0x101ea7fc
jmp 0x100c6386
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [edi + 0xa], 4
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add edi, 0x30
dec eax
mov dword [esp + 0x14], eax
test eax, eax
jg 0x100c61a0
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x5c], ecx
test ecx, ecx
jg 0x100c6180
test edx, edx
jle 0x100c651b
lea esi, [edi + 0xc]
nop
test byte [esi - 2], 6
jne 0x100c6507
movzx eax, word [esi]
mov edi, 0xb
test al, 0x82
setne cl
bt ax, di
setb al
test al, cl
je 0x100c6507
mov ecx, dword [esp + 0x20]
cmp dword [esi + 8], ecx
jne 0x100c6507
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x100c6507
mov eax, dword [esi - 0xc]
xor edi, edi
mov edx, dword [esp + 0x80]
push edi
push 0x83
push dword [esi + 0x10]
mov dword [esp + 0x98], eax
push ecx
lea ecx, [esp + 0xf8]
call fcn.100c90e0
mov edx, eax
add esp, 0x10
test edx, edx
je 0x100c6477
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 0x14]
and eax, dword [ebp + 0x18]
or ecx, eax
jne 0x100c6465
mov eax, dword [edx + 0x20]
or eax, dword [edx + 0x24]
jne 0x100c6460
test byte [edx + 0xc], 0x82
jne 0x100c6479
test edi, edi
cmove edi, edx
lea ecx, [esp + 0xe8]
call fcn.100c8e40
mov edx, eax
test edx, edx
jne 0x100c6442
mov edx, edi
test edx, edx
je 0x100c6503
test byte [edx + 0xa], 4
jne 0x100c6503
test byte [edx + 0xc], 1
je 0x100c64a6
mov eax, dword [edx]
test dword [eax + 4], 0x800
je 0x100c64a6
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x100c6503
mov eax, dword [edx]
push 0x10
push dword [esp + 0x8c]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xa8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xb8], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esp + 0xc8], xmm0
mov eax, dword [eax + 0x30]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x48]
call fcn.1008a3c0
add esp, 0x10
mov edx, dword [esp + 0x14]
dec edx
add esi, 0x30
mov dword [esp + 0x14], edx
test edx, edx
jg 0x100c63d0
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
mov edi, dword [edx]
test edi, edi
je 0x100c65d7
mov eax, dword [esi + 0x6c]
mov dword [edx + 0x1c], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100c6551
push 0
push edi
push 1
mov edx, 0x46
mov ecx, esi
call fcn.1006dd00
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x100c6580
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x80]
xor edi, edi
mov esi, dword [eax + 0x14]
cmp dword [eax + 0xc], edi
jle 0x100c65d7
test byte [esi + 0xa], 6
jne 0x100c65c3
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x48]
and eax, dword [edx + 0x4c]
or ecx, eax
jne 0x100c65c3
push 0x10
push dword [esp + 0x8c]
push dword [esi]
push dword [esp + 0x48]
call fcn.1008a3c0
add esp, 0x10
or word [esi + 0xa], 4
mov edx, dword [esp + 0x80]
inc edi
add esi, 0x30
cmp edi, dword [edx + 0xc]
mov edx, dword [esp + 0xc]
jl 0x100c6591
mov ecx, dword [esp + 0xc]
pop edi
pop esi
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.1014d1d5
mov esp, ebp
pop ebp
ret