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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x1011d004]
xor eax, esp
mov dword [esp + 0x144], eax
mov eax, ecx
mov dword [esp + 0x6c], 0
mov dword [esp + 4], eax
push esi
mov esi, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
push edi
mov eax, dword [esi + 0x48]
mov edi, edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0x34]
mov dword [esp + 0x54], edx
lea ecx, [edx + 0x50]
mov dword [esp + 0x78], edi
mov dword [esp + 0x88], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0x10], esi
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x1ec]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x8c], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
xor eax, eax
test edx, edx
jle 0x1008c368
mov ecx, dword [esp + 0x54]
add ecx, 0x1f0
nop dword [eax]
mov edi, dword [esp + 0x38]
cmp dword [ecx], edi
mov edi, dword [esp + 0x78]
je 0x1008c473
inc eax
add ecx, 4
cmp eax, edx
jl 0x1008c350
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
not ecx
not edx
and ecx, dword [ebp + 0x14]
and edx, dword [ebp + 0x18]
mov dword [esi + 0x50], ecx
mov ecx, dword [esp + 0x54]
mov dword [esi + 0x54], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, esi
call fcn.101065d0
mov ecx, dword [esp + 0xc]
and eax, 1
mov edx, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
cmp byte [edx + 0x34], 0
mov dword [esp + 0x98], eax
mov dword [edx + 0x18], eax
jbe 0x1008c405
mov eax, dword [esp + 0x8c]
test byte [eax + 0x24], 8
je 0x1008c405
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, edi
push eax
mov dword [edx], eax
mov edx, 0x46
push 0
call fcn.100293c0
add esp, 8
mov ecx, esi
test esi, esi
jle 0x1008c42d
mov edx, dword [esp + 0x54]
imul eax, esi, 0x58
add edx, 0x2f0
add eax, edx
nop word [eax + eax]
cmp dword [eax], 0
jne 0x1008c42d
dec ecx
sub eax, 0x58
test ecx, ecx
jg 0x1008c420
imul eax, ecx, 0x58
mov ecx, dword [esp + 0x54]
mov esi, dword [eax + ecx + 0x2fc]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x30], esi
test byte [eax + 0x28], 0x10
je 0x1008c52b
mov ecx, dword [edi + 0x74]
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x78], ecx
jg 0x1008c48d
push edx
push 0
push esi
mov edx, 0xd
mov ecx, edi
call fcn.10029250
add esp, 0xc
jmp 0x1008c4bc
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 0x1008c382
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov edi, dword [esp + 0x78]
mov dword [eax + ecx*4], 0xd
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 edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x1008c4ec
push 0
push dword [esp + 0x2c]
mov edx, 0xe
mov ecx, edi
push esi
call fcn.10029250
mov esi, dword [esp + 0x1c]
mov edx, eax
add esp, 0xc
mov dword [esi + 0x3c], edx
mov byte [esi + 0x35], 0xb
jmp 0x1008cbd8
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x3c], edx
mov byte [esi + 0x35], 0xb
jmp 0x1008cbd8
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x24]
test edx, 0x400
je 0x1008cb48
movzx eax, word [eax + 0x28]
mov dword [esp + 0x14], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x1008c578
mov esi, dword [esp + 0xc]
mov al, byte [esi + 0x13]
test al, al
jne 0x1008c567
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x1008c5b2
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov edx, dword [esi + eax*4 + 0x98]
jmp 0x1008c5ae
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 0x20]
mov dword [esp + 0x18], esi
cmp ecx, edx
jg 0x1008c59f
lea eax, [ecx + esi]
sub edx, ecx
mov esi, dword [esp + 0xc]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x18]
mov dword [esi + 0x20], eax
jmp 0x1008c5b2
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x18], edx
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
jbe 0x1008c6f5
mov eax, 0xfffffffe
lea esi, [edx + 2]
xor edi, edi
sub eax, edx
mov dword [esp + 0x24], eax
nop dword [eax + eax]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov ecx, dword [edi + eax]
test ecx, ecx
je 0x1008c6dd
test byte [ecx + 0xc], 1
je 0x1008c626
mov eax, dword [esp + 0x24]
mov edx, ecx
mov ecx, dword [esp + 0xc]
add eax, esi
push esi
push dword [esp + 0x4c]
push eax
push dword [esp + 0x1c]
call fcn.1008aea0
mov eax, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
jmp 0x1008c6dd
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x1008c6d0
mov al, byte [edx]
cmp al, 0xaf
jne 0x1008c63c
mov al, byte [edx + 2]
cmp al, 0xb0
jne 0x1008c647
mov eax, dword [edx + 0x14]
mov ecx, eax
jmp 0x1008c655
cmp al, 0x89
jne 0x1008c6d0
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + 0x1c]
cmp dword [ecx], 1
jle 0x1008c6d0
test dword [edx + 4], 0x800
mov ecx, dword [esp + 0xc]
je 0x1008c6cb
mov eax, dword [ecx + 8]
mov dword [esp + 0x4c], eax
call fcn.100451e0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov edx, dword [ecx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x1008c696
push 0
push esi
push eax
mov edx, 0x4e
call fcn.10029250
add esp, 0xc
jmp 0x1008c6dd
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1008c6dd
mov edx, dword [eax + 8]
jmp 0x1008c6d4
mov ecx, dword [esp + 0xc]
push esi
call fcn.100488c0
add esp, 4
mov eax, dword [esp + 0x24]
inc esi
add eax, esi
add edi, 4
cmp eax, dword [esp + 0x14]
jl 0x1008c5e0
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x74]
mov esi, dword [esp + 0x18]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x78], ecx
jg 0x1008c71d
push 0
push esi
push edx
mov edx, 0x46
mov ecx, edi
call fcn.10029250
add esp, 0xc
jmp 0x1008c748
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x74]
lea edx, [esi + 1]
cmp dword [edi + 0x78], ecx
jg 0x1008c76b
push 0
push edx
push dword [esp + 0x1c]
mov edx, 0x46
mov ecx, edi
call fcn.10029250
add esp, 0xc
jmp 0x1008c79e
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
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 + 0x2c]
or eax, 0xffffffff
mov edx, 0xfffffff9
cmp byte [ecx + 0x1c], 0
cmovne eax, edx
mov edx, 9
push eax
push dword [ecx + 0x20]
mov ecx, edi
push esi
push dword [esp + 0x2c]
push dword [esp + 0x48]
call fcn.100296d0
mov edx, dword [esp + 0x40]
add esp, 0x14
mov eax, dword [esp + 0x64]
mov byte [edx + 0x1c], 0
cmp byte [eax + 0x53], 0
je 0x1008c7e6
mov dword [edx + 0x20], 0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x38], eax
mov eax, 0x3e
cmp byte [esi + 0x2e], 0
mov esi, 0xb3
cmovne eax, esi
mov byte [ecx + 0x35], al
mov eax, dword [edi + 0x74]
mov dword [ecx + 0x3c], eax
test dword [edx + 0x24], 0x800
je 0x1008c825
mov edx, dword [ecx + 0x40]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x2c]
jmp 0x1008c82d
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
sub ecx, 1
mov dword [esp + 0x14], ecx
js 0x1008cbd8
lea eax, [esi + 2]
add eax, ecx
mov dword [esp + 0x20], eax
nop dword [eax + eax]
mov eax, dword [edx + 0x30]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x84], edx
mov si, word [edx + 0xc]
and si, 1
lea eax, [eax - 1]
cmove eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
cmp ecx, 0x10
jae 0x1008c89b
mov eax, dword [esp + 0x2c]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x1008c897
mov ecx, dword [esp + 0x10]
call fcn.1008ab40
jmp 0x1008cb2a
mov ecx, dword [esp + 0x14]
test si, si
je 0x1008cb2e
mov eax, dword [edx]
mov ecx, dword [eax + 0xc]
mov al, byte [ecx]
cmp al, 0xaf
jne 0x1008c8b2
mov al, byte [ecx + 2]
cmp al, 0xb0
jne 0x1008c8bb
mov eax, dword [ecx + 0x14]
jmp 0x1008c8c5
cmp al, 0x89
jne 0x1008c8ce
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jne 0x1008cb2a
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x53], 0
jne 0x1008c975
mov eax, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4 + 4]
test ecx, ecx
jns 0x1008c8f6
mov ecx, dword [edi + 0x74]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
je 0x1008c905
mov eax, 0x1011f1ec
jmp 0x1008c90e
mov eax, dword [edi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov al, byte [eax]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x74]
mov byte [esp + 0x43], al
cmp dword [edi + 0x78], ecx
jg 0x1008c93f
mov ecx, dword [esp + 0x4c]
push edx
push esi
push ecx
movzx edx, al
mov ecx, edi
call fcn.10029250
add esp, 0xc
jmp 0x1008c975
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x43]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0xc]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.10005060
mov esi, eax
add esp, 8
mov dword [esp + 0x80], esi
test esi, esi
je 0x1008cb2a
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x35
mov word [esi + 0x22], ax
xor ecx, ecx
mov eax, dword [esi + 0xc]
add esp, 0xc
xor edx, edx
mov dword [esp + 0x28], ecx
test eax, eax
je 0x1008c9cd
mov eax, dword [eax + 0x18]
test eax, eax
jle 0x1008c9cd
mov ecx, eax
mov edx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1008c9e0
mov eax, dword [eax + 0x18]
cmp eax, edx
cmovg ecx, eax
mov dword [esp + 0x28], ecx
test dword [esi + 4], 0x800
je 0x1008c9fe
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x28]
call fcn.10041390
mov ecx, dword [esp + 0x28]
jmp 0x1008ca7e
mov eax, dword [esi + 0x14]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x1008ca7e
mov edx, dword [eax]
test edx, edx
jle 0x1008ca47
add eax, 8
mov dword [esp + 0x4c], eax
mov edi, dword [eax]
mov dword [esp + 0x30], edi
test edi, edi
je 0x1008ca2e
mov eax, edi
mov eax, dword [eax + 0x18]
cmp eax, ecx
cmovg ecx, eax
mov eax, dword [esp + 0x4c]
add eax, 0x14
mov dword [esp + 0x4c], eax
sub edx, 1
jne 0x1008ca16
mov eax, dword [esi + 0x14]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov edx, dword [eax]
xor eax, eax
test edx, edx
jle 0x1008ca76
mov esi, dword [esp + 0x4c]
mov edi, eax
add esi, 8
mov eax, dword [esi]
lea esi, [esi + 0x14]
or edi, dword [eax + 4]
sub edx, 1
jne 0x1008ca56
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
and eax, 0x200104
or dword [esi + 4], eax
mov edx, dword [esp + 0xc]
inc ecx
mov dword [esi + 0x18], ecx
mov eax, dword [edx]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x1008caa1
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edx
call fcn.10008be0
add esp, 0xc
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x64]
push 0
push 0x35
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
call fcn.10005060
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
je 0x1008cb15
push 0x34
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x3c]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x34]
mov dword [ecx + 8], eax
mov byte [ecx], 0xaf
mov byte [eax], 0
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x18], 1
mov dword [esi + 0x10], ecx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax + 0x18]
push esi
push dword [esp + 0x18]
call fcn.10049090
add esp, 0x10
jmp 0x1008cb18
mov dword [esi + 0x10], eax
mov ecx, dword [esp + 0x64]
mov edx, esi
mov dword [esi + 0xc], 0
call fcn.10042580
mov ecx, dword [esp + 0x14]
dec dword [esp + 0x20]
dec ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
test ecx, ecx
jns 0x1008c850
jmp 0x1008cbd8
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x1008cc7c
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
mov eax, dword [esp + 0xc]
inc dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
push esi
push ecx
push 0
push dword [esp + 0x1c]
mov ecx, eax
call fcn.1008aea0
mov edx, eax
add esp, 0x10
cmp edx, esi
je 0x1008cba8
test esi, esi
je 0x1008cba8
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x1008cba8
movzx eax, al
mov dword [ecx + eax*4 + 0x98], esi
inc byte [ecx + 0x13]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x74]
mov esi, dword [eax + 0x10]
cmp dword [edi + 0x78], ecx
jg 0x1008cc4c
push edx
push esi
push dword [esp + 0x40]
mov edx, 0x20
mov ecx, edi
call fcn.10029250
add esp, 0xc
mov eax, dword [esp + 0x10]
mov byte [eax + 0x35], 0xb3
xor ecx, ecx
mov edi, dword [esp + 0x88]
neg ecx
sbb ecx, ecx
add ecx, 2
mov dword [esp + 0x80], ecx
nop
mov edx, dword [edi + 0xc]
xor eax, eax
mov esi, dword [edi + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
test edx, edx
jle 0x1008e782
nop dword [eax]
movzx edx, word [esi + 0xa]
xor edi, edi
test dl, 6
jne 0x1008e759
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x28]
and ecx, dword [eax + 0x50]
mov eax, dword [esi + 0x2c]
mov esi, dword [esp + 0x10]
and eax, dword [esi + 0x54]
or ecx, eax
mov esi, dword [esp + 0x30]
je 0x1008e5b9
mov eax, dword [esp + 0x54]
or dword [eax + 0x30], 2
jmp 0x1008e755
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1008cbd0
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x1008cee3
xor ecx, ecx
mov dword [esp + 0x5c], 0xb3
xor esi, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ecx
test dl, 0x20
je 0x1008ccbe
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], 4
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
jmp 0x1008ccc2
mov dword [esp + 0x4c], ecx
test dl, 0x10
je 0x1008ccd9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + 0x30]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1008cce7
mov dword [esp + 0x24], esi
mov esi, ecx
test esi, esi
je 0x1008cdbb
mov edx, dword [esi]
mov dword [esp + 0x14], 0x1917181a
mov dword [esp + 0x4c], edx
mov ecx, dword [edx + 0x10]
call fcn.10040ca0
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x1008cd4f
mov al, byte [ecx + 0x13]
test al, al
jne 0x1008cd1c
inc dword [ecx + 0x2c]
mov esi, dword [ecx + 0x2c]
jmp 0x1008cd2b
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov esi, dword [ecx + eax*4 + 0x98]
mov edx, dword [edx + 0x10]
push 1
push esi
call fcn.1008bc10
mov ecx, dword [esp + 0x54]
add esp, 8
mov edx, esi
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x14]
jmp 0x1008cd87
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x80]
push eax
call fcn.100487c0
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, esi
mov dword [esp + 0x30], eax
call fcn.1008ab40
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x30]
movzx eax, byte [ecx]
mov al, byte [esp + eax - 0x22]
push edx
push dword [esp + 0x2c]
movzx edx, al
mov ecx, edi
push dword [esp + 0x40]
call fcn.10029290
mov ecx, dword [esp + 0x18]
add esp, 0xc
test esi, esi
je 0x1008cddb
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x1008cddb
movzx eax, al
mov dword [ecx + eax*4 + 0x98], esi
inc byte [ecx + 0x13]
jmp 0x1008cddb
push dword [esp + 0x30]
xor eax, 1
mov ecx, edi
push dword [esp + 0x3c]
lea edx, [eax*4 + 0x22]
call fcn.100293c0
mov ecx, dword [esp + 0x14]
add esp, 8
mov esi, dword [esp + 0x24]
test esi, esi
je 0x1008ce68
mov eax, dword [esi]
inc dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x2c]
push 1
mov edx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
call fcn.1008bc10
mov edx, dword [esp + 0x38]
add esp, 8
mov eax, dword [edx + 0x10]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.10040ca0
test eax, eax
jne 0x1008ce3d
mov al, byte [edx]
cmp al, 0x38
je 0x1008ce29
cmp al, 0x36
jne 0x1008ce3d
mov eax, dword [esp + 0x48]
xor eax, 1
lea edx, [eax*2 + 0x37]
mov dword [esp + 0x5c], edx
jmp 0x1008ce4c
mov eax, dword [esp + 0x48]
lea eax, [eax*2 + 0x36]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x30]
call fcn.10040ca0
test eax, eax
jne 0x1008ce68
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1008ab40
jmp 0x1008ce6c
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x48], 0
mov ecx, dword [edi + 0x74]
mov edx, dword [esp + 0x38]
sete al
add al, 4
mov dword [esi + 0x38], edx
cmp dword [esp + 0x5c], 0xb3
mov byte [esi + 0x35], al
mov dword [esi + 0x3c], ecx
je 0x1008cbd8
mov eax, dword [esp + 0xc]
mov ecx, edi
inc dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
push esi
push edx
mov edx, 0x85
call fcn.100293c0
mov edx, dword [esp + 0x64]
mov ecx, edi
push esi
push dword [esp + 0x34]
push dword [esp + 0x30]
call fcn.10029290
mov eax, dword [edi + 0x74]
add esp, 0x14
test eax, eax
jle 0x1008cbd8
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x1008cbd8
test edx, 0x200
je 0x1008da25
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
movzx eax, word [esi + 0x1a]
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x7c], eax
movzx eax, word [esi + 0x1c]
xor esi, esi
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov byte [esp + 0x1f], al
mov byte [esp + 0x43], al
mov dword [esp + 0x68], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
movzx eax, cx
mov dword [esp + 0x44], eax
mov ecx, eax
mov dword [esp + 0x84], eax
test dl, 0x20
je 0x1008cf71
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x30]
movzx esi, word [esi + 0x1a]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x70], eax
test dl, 0x10
je 0x1008d05a
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
movzx eax, word [ecx + 0x1c]
mov ecx, edx
mov edx, dword [esp + 0x6c]
cmp esi, eax
cmova eax, esi
mov esi, 0x100
mov dword [esp + 0x24], eax
test word [edx + 0xa], si
je 0x1008d005
mov ecx, dword [esp + 0xc]
mov edx, 0x46
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, edi
push eax
push 1
mov dword [esi + 0x2c], eax
call fcn.100293c0
mov ecx, dword [esp + 0x7c]
add esp, 8
mov eax, dword [edi + 0x74]
shl dword [esi + 0x2c], 1
mov edx, dword [esp + 0x44]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
cmp byte [edx + eax], 1
mov eax, dword [esp + 0x2c]
sete cl
xor ecx, dword [esp + 0x48]
or dword [esi + 0x2c], ecx
mov ecx, dword [eax + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x70], 0
mov edx, ecx
mov esi, eax
jne 0x1008d05a
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x44]
mov eax, dword [esi + 4]
movsx edx, word [eax + edx*2]
mov dword [esp + 0x30], edx
test edx, edx
js 0x1008d03c
mov eax, dword [esi + 0xc]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
mov ecx, dword [esp + 0x20]
je 0x1008d04d
cmp dword [esp + 0x30], 0xfffffffe
mov edx, ecx
mov eax, dword [esp + 0x24]
mov esi, eax
jne 0x1008d05a
jmp 0x1008d051
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1f], 1
mov edx, ecx
mov esi, eax
test dl, 0x30
jne 0x1008d0ac
test edx, 0x80000
je 0x1008d0ac
mov ecx, dword [esp + 0xc]
mov esi, 1
mov edx, dword [esp + 0x10]
mov byte [esp + 0x1f], 1
inc dword [ecx + 0x2c]
cmp dword [edx], 0
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x68], eax
mov dword [edx + 0x24], eax
je 0x1008d0a3
push eax
push 0
lea edx, [esi + 0x45]
mov ecx, edi
call fcn.100293c0
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x10]
dec dword [ecx + 0x38]
mov eax, dword [ecx + 0x38]
mov dword [edx + 0x28], eax
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x60]
cmp ax, word [ecx + 0x34]
jae 0x1008d102
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x44]
cmp byte [edx + eax], cl
sete cl
cmp dword [esp + 0x48], ecx
jne 0x1008d102
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x1f]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], ecx
movzx ecx, dx
movzx eax, al
mov byte [esp + 0x1f], 0
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], eax
cmp dword [ebp + 0xc], 0
jle 0x1008d128
mov eax, dword [esp + 0x2c]
test dword [eax + 0x24], 0x100000
je 0x1008d128
push dword [esp + 0x58]
mov edx, 0x86
mov ecx, edi
call fcn.10029360
add esp, 4
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x28]
push eax
push esi
push dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov edx, esi
call fcn.1008b580
mov edx, dword [esp + 0x50]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1008d1c3
cmp word [esp + 0x3c], 0
je 0x1008d1c3
add eax, edx
jne 0x1008d168
xor ecx, ecx
mov dword [esp + 0x34], ecx
jmp 0x1008d1c3
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008d170
mov eax, dword [esp + 0x64]
sub ecx, edx
push 0
lea esi, [ecx + 1]
push esi
test eax, eax
je 0x1008d196
mov ecx, eax
call fcn.10005060
mov ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x1008d1a1
call fcn.100049e0
mov ecx, eax
mov dword [esp + 0x3c], eax
add esp, 8
test ecx, ecx
je 0x1008d1bb
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x28]
push esi
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x68], 0
je 0x1008d1d3
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x14], ecx
jmp 0x1008d1da
mov eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1008d1f0
test byte [eax + 0xc], 0x28
mov dword [esp + 0x5c], 0
je 0x1008d1f8
mov dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x1008d20e
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x24], 0
je 0x1008d216
mov dword [esp + 0x24], 1
test eax, eax
jne 0x1008d26d
mov ecx, dword [esp + 0x60]
test cx, cx
jne 0x1008d26d
mov dword [esp + 0x20], eax
movzx edx, cx
cmp byte [esp + 0x1f], 0
mov esi, edx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x60], esi
je 0x1008d359
add eax, dword [esp + 0x18]
mov edx, 0x49
push eax
push 0
mov ecx, edi
mov dword [esp + 0x64], 0
call fcn.100293c0
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x4c], ecx
jmp 0x1008d382
mov dword [esp + 0x20], 1
mov dword [esp + 0x60], edx
test eax, eax
je 0x1008d22a
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
add ecx, edx
mov esi, dword [eax + 0x10]
mov edx, esi
mov eax, dword [esp + 0x7c]
movzx eax, ax
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.1008bc10
push dword [esp + 0x78]
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.1008ba40
mov eax, dword [esp + 0x7c]
add esp, 0xc
test byte [eax + 0xa], 0x80
jne 0x1008d2df
mov ecx, esi
call fcn.10043d50
test eax, eax
je 0x1008d2df
mov eax, dword [esp + 0x44]
mov edx, 0x32
push dword [esp + 0x14]
add eax, dword [esp + 0x1c]
mov ecx, edi
push eax
call fcn.100293c0
add esp, 8
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x1008d302
mov eax, dword [esp + 0x44]
add eax, ecx
mov ecx, esi
push eax
mov eax, dword [esp + 0x80]
movzx edx, ax
call fcn.1008abb0
add esp, 4
mov ecx, dword [esp + 0x7c]
movzx eax, cx
add dword [esp + 0x60], eax
mov al, byte [esi]
cmp al, 0xaf
jne 0x1008d316
mov al, byte [esi + 2]
cmp al, 0xb0
jne 0x1008d31f
mov eax, dword [esi + 0x14]
jmp 0x1008d329
cmp al, 0x89
jne 0x1008d341
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x1008d341
mov esi, dword [esp + 0x60]
mov dword [esp + 0x5c], 1
mov byte [esp + 0x1f], 0
jmp 0x1008d392
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
call fcn.1008ab40
mov esi, dword [esp + 0x60]
mov byte [esp + 0x1f], 0
jmp 0x1008d392
cmp dword [esp + 0x68], 0
mov dword [esp + 0x44], eax
je 0x1008d392
add eax, dword [esp + 0x18]
mov edx, 0x49
push eax
push 0
mov ecx, edi
call fcn.100293c0
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x4c], eax
add esp, 8
mov dword [esp + 0x20], 1
inc esi
mov dword [esp + 0x60], esi
movzx ecx, byte [esp + 0x1f]
mov eax, esi
mov edx, dword [esp + 0x28]
sub eax, ecx
mov esi, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
test edx, edx
je 0x1008d3ec
test eax, eax
jle 0x1008d3bc
nop
cmp byte [edx], 0x41
jg 0x1008d3bc
dec eax
inc esi
inc edx
test eax, eax
jg 0x1008d3b0
cmp eax, 1
jle 0x1008d3ce
cmp byte [eax + edx - 1], 0x41
jg 0x1008d3d2
dec eax
cmp eax, 1
jg 0x1008d3c1
test eax, eax
jle 0x1008d3ec
push eax
push edx
push 0
push eax
mov eax, dword [esp + 0x1c]
mov edx, 0x5e
push esi
mov ecx, dword [eax + 8]
call fcn.100296d0
add esp, 0x14
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x1008d403
cmp dword [esp + 0x60], eax
je 0x1008d4e8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1008d41d
push eax
push 1
mov edx, 0x46
mov ecx, edi
call fcn.100293c0
add esp, 8
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x48]
movzx esi, byte [ecx + eax*2 + 0x10118cac]
mov eax, dword [esp + 0x2c]
test dword [eax + 0x24], 0x100000
je 0x1008d476
cmp esi, 0x19
jne 0x1008d476
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
movsx ecx, word [eax]
mov eax, 0x66666667
add ecx, 9
imul ecx
mov ecx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [esi + 0x61]
push eax
call fcn.10029360
add esp, 4
mov dword [esp + 0x4c], eax
push dword [esp + 0x60]
mov edx, esi
mov ecx, edi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x64]
call fcn.10029b70
mov ecx, dword [esp + 0x78]
add esp, 0x10
test ecx, ecx
je 0x1008d4ec
mov eax, dword [edi + 0x74]
mov edx, 0xb
add eax, 2
mov ecx, edi
push eax
push 0
call fcn.100293c0
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
push eax
push dword [esp + 0x24]
mov eax, 1
cmp eax, dword [esp + 0x70]
push dword [esp + 0x24]
sbb eax, eax
push dword [esp + 0x6c]
and eax, 4
movzx edx, byte [eax + ecx + 0x10118cae]
mov ecx, edi
call fcn.10029b70
add esp, 0x18
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x44]
mov esi, edx
test eax, eax
je 0x1008d625
cmp dword [esp + 0x4c], 0
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x20], ecx
je 0x1008d518
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 0x74]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
movzx eax, ax
add esi, edx
push eax
mov edx, ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.1008bc10
push dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.1008ba40
mov eax, dword [esp + 0x78]
add esp, 0xc
test byte [eax + 0xa], 0x80
jne 0x1008d56f
mov ecx, dword [esp + 0x20]
call fcn.10043d50
test eax, eax
je 0x1008d56f
push dword [esp + 0x14]
mov edx, 0x32
mov ecx, edi
push esi
call fcn.100293c0
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1008d5dc
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x40]
movzx edx, ax
call fcn.1008abb0
mov eax, dword [esp + 0x40]
add esp, 4
mov edx, dword [esp + 0x34]
movzx ecx, ax
mov eax, ecx
test ecx, ecx
je 0x1008d5ac
nop dword [eax]
cmp byte [edx], 0x41
jg 0x1008d5ac
dec eax
inc esi
inc edx
test eax, eax
jg 0x1008d5a0
cmp eax, 1
jle 0x1008d5be
cmp byte [eax + edx - 1], 0x41
jg 0x1008d5c2
dec eax
cmp eax, 1
jg 0x1008d5b1
test eax, eax
jle 0x1008d5dc
push eax
push edx
push 0
push eax
mov eax, dword [esp + 0x1c]
mov edx, 0x5e
push esi
mov ecx, dword [eax + 8]
call fcn.100296d0
add esp, 0x14
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
movzx esi, dx
add esi, dword [esp + 0x44]
mov al, byte [ecx]
cmp al, 0xaf
jne 0x1008d5f4
mov al, byte [ecx + 2]
cmp al, 0xb0
jne 0x1008d5fd
mov eax, dword [ecx + 0x14]
jmp 0x1008d607
cmp al, 0x89
jne 0x1008d616
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x1008d616
mov dword [esp + 0x24], 1
jmp 0x1008d64e
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
call fcn.1008ab40
jmp 0x1008d64e
cmp byte [esp + 0x43], 0
je 0x1008d64e
test ecx, ecx
jne 0x1008d64d
mov eax, dword [esp + 0x18]
add eax, edx
lea edx, [ecx + 0x49]
push eax
push ecx
mov ecx, edi
call fcn.100293c0
add esp, 8
mov dword [esp + 0x24], 0
inc esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1008d661
mov ecx, dword [esp + 0x64]
mov edx, eax
call fcn.10004cc0
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1008d726
mov edx, dword [esp + 0x64]
test edx, edx
je 0x1008d6c6
cmp dword [edx + 0x210], 0
je 0x1008d68e
mov edx, ecx
mov ecx, dword [esp + 0x64]
call fcn.10004c70
jmp 0x1008d726
cmp ecx, dword [edx + 0x164]
jae 0x1008d6c6
cmp ecx, dword [edx + 0x15c]
jb 0x1008d6ae
mov eax, dword [edx + 0x158]
mov dword [ecx], eax
mov dword [edx + 0x158], ecx
jmp 0x1008d726
cmp ecx, dword [edx + 0x160]
jb 0x1008d6c6
mov eax, dword [edx + 0x150]
mov dword [ecx], eax
mov dword [edx + 0x150], ecx
jmp 0x1008d726
cmp dword [0x1011d0f8], 0
je 0x1008d71c
mov eax, dword [0x1011f3e8]
test eax, eax
je 0x1008d6e6
push eax
call dword [0x1011d148]
mov ecx, dword [esp + 0x38]
add esp, 4
push ecx
call dword [0x1011d124]
sub dword [0x1011f200], eax
add esp, 4
mov eax, dword [esp + 0x34]
dec dword [0x1011f224]
push eax
call dword [0x1011d11c]
mov eax, dword [0x1011f3e8]
add esp, 4
test eax, eax
je 0x1008d726
push eax
call dword [0x1011d150]
jmp 0x1008d723
push ecx
call dword [0x1011d11c]
add esp, 4
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x3c], 0
jne 0x1008d736
mov eax, dword [edi + 0x74]
mov dword [ecx + 0x3c], eax
test esi, esi
je 0x1008d7ab
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1008d759
mov eax, dword [edi + 0x74]
mov edx, 0x14
add eax, 3
push eax
push ecx
mov ecx, edi
call fcn.100293c0
add esp, 8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
push esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
movzx edx, byte [eax + ecx*2 + str.__A]
mov ecx, edi
push dword [esp + 0x64]
call fcn.10029b70
mov ecx, dword [esp + 0x5c]
add esp, 0x10
test ecx, ecx
je 0x1008d7ab
mov edx, dword [edi + 0x74]
jns 0x1008d790
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
je 0x1008d79f
mov eax, 0x1011f1ec
jmp 0x1008d7a8
mov eax, dword [edi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1008d7f4
mov eax, dword [edi + 0x74]
mov edx, 0x12
add eax, 2
push eax
push ecx
mov ecx, edi
call fcn.100293c0
mov ecx, dword [esp + 0x38]
lea eax, [ecx + esi]
mov esi, dword [esp + 0x60]
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x58]
push dword [esp + 0x24]
push esi
movzx edx, byte [ecx + eax*2 + str.__A]
mov ecx, edi
call fcn.10029b70
add esp, 0x18
jmp 0x1008d7f8
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x24]
test eax, 0x40000
je 0x1008d823
mov eax, dword [esp + 0x44]
mov edx, 0x7b
push eax
push eax
push esi
mov ecx, edi
call fcn.10029290
mov eax, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [eax + 0x24]
test al, 0x40
je 0x1008d83f
mov ecx, dword [esp + 0x54]
test byte [ecx + 0x28], 0x20
jne 0x1008d83f
mov edx, dword [esp + 0x38]
mov esi, 1
jmp 0x1008d99a
mov eax, dword [esp + 0x74]
xor esi, esi
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x1c], 0x80
jne 0x1008d872
mov edi, dword [esp + 0x58]
mov edx, eax
mov ecx, dword [esp + 0x54]
push edi
push dword [esp + 0x3c]
call fcn.1008baa0
mov ecx, dword [esp + 0x5c]
add esp, 8
mov edx, dword [esp + 0x38]
jmp 0x1008d99e
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x58]
je 0x1008d996
call fcn.10053cf0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
movzx edx, word [eax + 0x32]
call fcn.1004a4e0
mov edx, eax
xor esi, esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], esi
movzx eax, word [eax + 0x32]
mov ecx, eax
cmp si, ax
jae 0x1008d971
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x74]
xor ecx, ecx
movzx edx, word [eax + 0x34]
test edx, edx
je 0x1008d8ed
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
movzx esi, word [eax + esi*2]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 4]
cmp si, word [eax]
je 0x1008d916
inc ecx
add eax, 2
cmp ecx, edx
jl 0x1008d8e0
or eax, 0xffffffff
mov ecx, dword [edi + 0x74]
movsx edx, ax
cmp dword [edi + 0x78], ecx
jg 0x1008d91b
mov esi, dword [esp + 0x4c]
mov ecx, edi
push esi
push edx
push dword [esp + 0x60]
mov edx, 0x5c
call fcn.10029250
add esp, 0xc
jmp 0x1008d94a
movzx eax, cx
jmp 0x1008d8f0
mov esi, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
inc esi
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], edx
mov esi, edx
movzx ecx, word [eax + 0x32]
cmp edx, ecx
jl 0x1008d8c0
mov edx, dword [esp + 0x80]
movzx eax, cx
mov ecx, edi
push eax
push edx
push dword [esp + 0xa0]
mov edx, 0x1e
push dword [esp + 0x44]
call fcn.10029b70
mov edx, dword [esp + 0x48]
add esp, 0x10
xor esi, esi
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
cmp dword [eax], 0
jne 0x1008d9d9
test byte [ecx + 0x28], 0x20
jne 0x1008d9bb
push ecx
mov ecx, dword [esp + 0x78]
push edi
call fcn.1008bdf0
add esp, 8
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x1008d9d9
push dword [esp + 0x88]
mov edx, dword [esp + 0x3c]
call fcn.1008bfd0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
test dword [ecx + 0x24], 0x1000
je 0x1008d9f0
mov byte [edx + 0x35], 0xb3
jmp 0x1008d9fd
cmp dword [esp + 0x48], 0
sete al
add al, 4
mov byte [edx + 0x35], al
mov dword [edx + 0x38], edi
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edx + 0x36], al
test byte [ecx + 0x24], 0xf
jne 0x1008da12
mov byte [edx + 0x37], 1
test esi, esi
je 0x1008e5b0
xor ecx, ecx
mov dword [esp + 0x74], ecx
jmp 0x1008cbda
test edx, 0x2000
je 0x1008e563
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x68], 0
mov dword [esp + 0x28], 0
mov eax, dword [ecx + 0x28]
inc dword [ecx + 0x2c]
dec dword [ecx + 0x38]
mov dword [esp + 0x80], eax
inc eax
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x18], 0
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x70], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x54]
mov byte [esi + 0x35], 0x42
mov al, byte [eax + 0x2c]
cmp al, 1
jbe 0x1008dbf1
mov ecx, dword [esp + 0x64]
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x4c], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x1008daef
call fcn.10005060
mov ecx, eax
mov dword [esp + 0x74], ecx
jmp 0x1008dafa
call fcn.100049e0
mov ecx, eax
mov dword [esp + 0x74], eax
add esp, 8
test ecx, ecx
jne 0x1008db1b
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.10105304
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x4c]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x8c]
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 + 0x54]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
cmp edx, 1
jl 0x1008dbb7
add ecx, 0x50
mov edi, eax
add esi, 0x8c
movzx eax, byte [esi]
lea esi, [esi + 0x58]
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 0x1008db74
mov edi, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
test byte [eax + 0x28], 0x10
jne 0x1008dc50
test byte [edx + 0x1c], 0x80
jne 0x1008dbfe
inc dword [ecx + 0x2c]
mov edx, 0x49
mov eax, dword [ecx + 0x2c]
mov ecx, edi
push eax
push 0
mov dword [esp + 0x30], eax
call fcn.100293c0
add esp, 8
jmp 0x1008dc42
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], eax
jmp 0x1008dbbf
mov esi, dword [edx + 8]
test esi, esi
je 0x1008dc15
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x1008dc15
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x1008dc05
mov edx, dword [ecx + 0x28]
mov dword [esp + 0x28], edx
lea eax, [edx + 1]
mov dword [ecx + 0x28], eax
mov ecx, edi
movzx eax, word [esi + 0x32]
push eax
push edx
mov edx, 0x73
call fcn.100293c0
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, esi
call fcn.1002a460
mov eax, dword [esp + 0xc]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x14], eax
mov edx, dword [edi + 0x74]
mov dword [esp + 0x2c], edx
cmp dword [edi + 0x78], edx
jg 0x1008dc7c
push 0
push dword [esp + 0x80]
mov edx, 0x46
mov ecx, edi
push 0
call fcn.10029250
add esp, 0xc
mov dword [esp + 0x2c], eax
jmp 0x1008dcaf
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov edx, dword [esp + 0x7c]
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 edx, dword [esp + 0x88]
cmp dword [edx + 0xc], 1
jle 0x1008de57
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x4c], ecx
mov eax, dword [edx + 0x14]
mov edx, dword [eax + esi]
add eax, esi
cmp eax, dword [esp + 0x30]
je 0x1008dd1c
test byte [eax + 0xa], 6
jne 0x1008dd1c
mov edi, 0x1fff
test word [eax + 0xc], di
mov edi, dword [esp + 0xc]
je 0x1008dd1c
test edx, edx
je 0x1008dd01
mov ecx, dword [esp + 0x64]
push 0
push 0
call fcn.100427c0
add esp, 8
jmp 0x1008dd03
xor eax, eax
mov edx, dword [esp + 0x18]
mov ecx, edi
push eax
call fcn.10042060
mov ecx, dword [esp + 0x50]
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x1008dd20
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x88]
inc ecx
add esi, 0x30
mov dword [esp + 0x4c], ecx
cmp ecx, dword [edx + 0xc]
jl 0x1008dcc8
mov edi, dword [esp + 0x78]
test eax, eax
je 0x1008de57
mov eax, dword [esp + 0xc]
mov edx, 0x34
mov ecx, dword [eax]
cmp dx, word [ecx + 0x134]
jbe 0x1008dd72
cmp dword [ecx + 0x130], 0
jne 0x1008dd65
inc dword [ecx + 0x144]
jmp 0x1008dde0
cmp byte [ecx + 0x53], 0
je 0x1008dde0
xor esi, esi
jmp 0x1008de48
mov esi, dword [ecx + 0x158]
test esi, esi
je 0x1008dd8c
mov eax, dword [esi]
mov dword [ecx + 0x158], eax
inc dword [ecx + 0x140]
jmp 0x1008ddf2
mov esi, dword [ecx + 0x154]
test esi, esi
je 0x1008dda6
mov eax, dword [esi]
mov dword [ecx + 0x154], eax
inc dword [ecx + 0x140]
jmp 0x1008ddf2
mov esi, dword [ecx + 0x150]
test esi, esi
je 0x1008ddc0
mov eax, dword [esi]
mov dword [ecx + 0x150], eax
inc dword [ecx + 0x140]
jmp 0x1008ddf2
mov esi, dword [ecx + 0x14c]
test esi, esi
je 0x1008ddda
mov eax, dword [esi]
inc dword [ecx + 0x140]
mov dword [ecx + 0x14c], eax
jmp 0x1008ddf2
inc dword [ecx + 0x148]
push 0
push 0x34
call fcn.10005000
mov esi, eax
add esp, 8
test esi, esi
je 0x1008de44
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x2c
mov word [esi + 0x22], ax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, esi
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
call fcn.10041460
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp dword [esi + 0x18], eax
jle 0x1008de53
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.10008be0
add esp, 0xc
jmp 0x1008de53
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax]
call fcn.10042580
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xc]
push str.MULTI_INDEX_OR
push 1
push esi
call fcn.10029900
mov edx, dword [esp + 0x30]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x3c], ecx
cmp dword [edx + 0xc], ecx
jle 0x1008df0b
mov dword [esp + 0x9c], 1
nop dword [eax]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x38]
cmp dword [eax + 0x14], edx
je 0x1008dead
mov edx, 0x400
test word [eax + 0xc], dx
je 0x1008defb
mov edx, dword [eax]
xor eax, eax
mov dword [esp + 0x20], eax
test edx, edx
je 0x1008decf
mov ecx, dword [esp + 0x64]
push eax
push eax
call fcn.100427c0
mov ecx, dword [esp + 0x44]
add esp, 8
mov esi, eax
jmp 0x1008ded1
xor esi, esi
mov eax, dword [esp + 0x64]
mov dword [esp + 0x90], esi
cmp byte [eax + 0x53], 0
je 0x1008df20
test esi, esi
je 0x1008e376
mov edx, esi
mov ecx, eax
call fcn.10042580
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x3c], ecx
mov edx, eax
cmp ecx, dword [eax + 0xc]
jl 0x1008de90
mov ecx, dword [esi + 0xd8]
test ecx, ecx
jne 0x1008e37f
xor eax, eax
jmp 0x1008e3a5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1008df2d
mov dword [eax + 0xc], esi
mov esi, eax
lea eax, [ecx + 1]
push eax
push str.INDEX__d
push 1
push dword [esp + 0x18]
call fcn.10029900
push dword [esp + 0x90]
mov edx, dword [esp + 0x80]
push 0x20
push 0
push 0
push esi
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.10097a70
add esp, 0x24
mov dword [esp + 0x44], eax
test eax, eax
je 0x1008e357
mov edx, dword [esp + 0x6c]
lea ecx, [eax + 0x2f0]
push 0
push ecx
mov ecx, esi
call fcn.1008a7e0
mov eax, dword [esp + 0x5c]
add esp, 8
test byte [eax + 0x28], 0x10
jne 0x1008e20e
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
dec eax
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], esi
test byte [eax + 0x1c], 0x80
jne 0x1008e037
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x1008dfdd
mov edx, dword [esp + 0x14]
mov ecx, edi
push 0
push edx
push dword [esp + 0x40]
mov edx, 0x85
call fcn.10029250
add esp, 0xc
jmp 0x1008e010
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push esi
push dword [esp + 0x18]
mov edx, 0x2e
mov ecx, edi
push 0
push dword [esp + 0x34]
call fcn.10029b70
add esp, 0x10
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0xc]
jmp 0x1008e20e
mov esi, dword [eax + 8]
test esi, esi
je 0x1008e050
nop
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x1008e050
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x1008e040
movzx eax, word [esi + 0x32]
mov edx, eax
mov ecx, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], edx
cmp edx, 1
jne 0x1008e091
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x13]
test al, al
jne 0x1008e07c
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x34], eax
jmp 0x1008e0dc
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x34], eax
jmp 0x1008e0dc
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x58], eax
cmp edx, eax
jg 0x1008e0bc
lea eax, [edx + ecx]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x58]
sub eax, edx
mov dword [ecx + 0x1c], eax
jmp 0x1008e0d3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
add eax, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
xor eax, eax
cmp ax, word [esp + 0x48]
jae 0x1008e114
xor ecx, ecx
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
add eax, ecx
push eax
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
push dword [esp + 0x40]
call fcn.10046c60
mov ecx, dword [esp + 0x64]
add esp, 0xc
mov edx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, edx
jl 0x1008e0e2
cmp dword [esp + 0x4c], 0
mov esi, dword [esp + 0x34]
je 0x1008e145
push edx
push esi
push 0
push dword [esp + 0x34]
mov edx, 0x1f
mov ecx, edi
call fcn.10029b70
add esp, 0x10
mov dword [esp + 0x20], eax
cmp dword [esp + 0x4c], 0
jl 0x1008e1cd
mov ecx, dword [edi + 0x74]
mov edx, dword [esp + 0x5c]
cmp dword [edi + 0x78], ecx
jg 0x1008e168
push dword [esp + 0x14]
mov ecx, edi
push edx
push esi
mov edx, 0x5f
call fcn.10029250
add esp, 0xc
jmp 0x1008e193
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x5f
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x5c]
mov edx, 0x88
mov ecx, edi
push esi
push dword [esp + 0x1c]
push dword [esp + 0x34]
call fcn.10029b70
add esp, 0x10
cmp dword [esp + 0x4c], 0
je 0x1008e1cd
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x1008e1cd
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
cmp word [esp + 0x48], 1
jne 0x1008e1f9
test esi, esi
je 0x1008e02e
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x1008e20c
movzx eax, al
mov dword [ecx + eax*4 + 0x98], esi
mov esi, ecx
inc byte [esi + 0x13]
jmp 0x1008e20e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x5c]
cmp eax, dword [ecx + 0x1c]
jle 0x1008e20c
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], esi
mov esi, ecx
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x1008e237
push 0
push dword [esp + 0x88]
mov edx, 0xc
mov ecx, edi
push dword [esp + 0x84]
call fcn.10029250
add esp, 0xc
jmp 0x1008e26d
mov edx, dword [esp + 0x7c]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x84]
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 + 0x20]
test ecx, ecx
je 0x1008e298
mov edx, dword [edi + 0x74]
jns 0x1008e27d
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
je 0x1008e28c
mov eax, 0x1011f1ec
jmp 0x1008e295
mov eax, dword [edi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
mov eax, dword [ecx + 0x30]
test al, 2
cmovne edx, dword [esp + 0x9c]
mov dword [esp + 0x60], edx
mov edx, dword [ecx + 0x338]
mov ecx, eax
test dword [edx + 0x24], 0x200
je 0x1008e2f4
cmp dword [esp + 0x3c], 0
je 0x1008e2d6
mov esi, dword [esp + 0x68]
cmp dword [edx + 0x20], esi
mov esi, dword [esp + 0xc]
jne 0x1008e2f4
mov edi, dword [esp + 0x70]
test byte [edi + 0x1c], 0x80
mov edi, dword [esp + 0x78]
je 0x1008e320
mov edx, dword [edx + 0x20]
mov dword [esp + 0x68], edx
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
jne 0x1008e2fc
mov dword [esp + 0x68], 0
test cl, 1
je 0x1008e309
mov eax, dword [esp + 0x54]
or dword [eax + 0x30], 1
mov ecx, dword [esp + 0x44]
call fcn.10098760
mov ecx, dword [esi + 0xd8]
test ecx, ecx
jne 0x1008e32b
xor eax, eax
jmp 0x1008e351
mov ecx, eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x68], eax
jmp 0x1008e2fc
mov edx, dword [esi + 8]
test ecx, ecx
jns 0x1008e336
mov ecx, dword [edx + 0x74]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x53], 0
je 0x1008e345
mov eax, 0x1011f1ec
jmp 0x1008e34e
mov eax, dword [edx + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xd8], eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x1008def7
mov ecx, dword [esp + 0x64]
mov edx, eax
call fcn.10042580
jmp 0x1008def7
mov esi, dword [esp + 0xc]
jmp 0x1008defb
mov edx, dword [esi + 8]
test ecx, ecx
jns 0x1008e38a
mov ecx, dword [edx + 0x74]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x53], 0
je 0x1008e399
mov eax, 0x1011f1ec
jmp 0x1008e3a2
mov eax, dword [edx + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xd8], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
mov dword [esi + 0x40], eax
test eax, eax
je 0x1008e3c4
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1008e3de
mov ecx, dword [esp + 0x64]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.10042580
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 0x74]
test ecx, ecx
jns 0x1008e3ec
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
je 0x1008e3fb
mov eax, 0x1011f1ec
jmp 0x1008e404
mov eax, dword [edi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x74]
mov edx, dword [esi + 0xc]
cmp dword [edi + 0x78], ecx
jg 0x1008e428
push 0
push edx
push 0
mov edx, 0xb
mov ecx, edi
call fcn.10029250
add esp, 0xc
jmp 0x1008e457
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
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 [edi + 0xc]
mov edx, dword [esp + 0x84]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1008e478
push edx
mov edx, edi
call fcn.10029c70
add esp, 4
jmp 0x1008e481
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x74]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x2c], 1
jbe 0x1008e548
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x1008e548
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x1008e4f0
cmp dword [ecx + 0x210], 0
je 0x1008e4b8
mov edx, edi
call fcn.10004c70
jmp 0x1008e548
cmp edi, dword [ecx + 0x164]
jae 0x1008e4f0
cmp edi, dword [ecx + 0x15c]
jb 0x1008e4d8
mov eax, dword [ecx + 0x158]
mov dword [edi], eax
mov dword [ecx + 0x158], edi
jmp 0x1008e548
cmp edi, dword [ecx + 0x160]
jb 0x1008e4f0
mov eax, dword [ecx + 0x150]
mov dword [edi], eax
mov dword [ecx + 0x150], edi
jmp 0x1008e548
cmp dword [0x1011d0f8], 0
je 0x1008e53e
mov eax, dword [0x1011f3e8]
test eax, eax
je 0x1008e50c
push eax
call dword [0x1011d148]
add esp, 4
push edi
call dword [0x1011d124]
sub dword [0x1011f200], eax
add esp, 4
dec dword [0x1011f224]
push edi
call dword [0x1011d11c]
mov eax, dword [0x1011f3e8]
add esp, 4
test eax, eax
je 0x1008e548
push eax
call dword [0x1011d150]
jmp 0x1008e545
push edi
call dword [0x1011d11c]
add esp, 4
cmp dword [esp + 0x60], 0
jne 0x1008cbd8
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.1008ab40
jmp 0x1008cbd8
mov eax, dword [esp + 0x8c]
test byte [eax + 0x28], 0x20
jne 0x1008cbd0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
push esi
mov al, byte [ecx + 0x101188d8]
mov byte [edx + 0x35], al
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x38], eax
movzx edx, byte [ecx + 0x101183e0]
mov ecx, edi
push eax
call fcn.100293c0
mov ecx, dword [esp + 0x18]
add esp, 8
inc eax
mov dword [ecx + 0x3c], eax
mov byte [ecx + 0x37], 1
jmp 0x1008cbd8
mov ecx, dword [esp + 0x74]
jmp 0x1008cbda
mov eax, dword [esp + 0x8c]
mov ecx, dword [esi]
mov dword [esp + 0x9c], ecx
test byte [eax + 0x24], 8
je 0x1008e5d9
test byte [ecx + 4], 1
je 0x1008e755
mov eax, dword [esp + 0x80]
cmp eax, 1
jne 0x1008e654
mov eax, dword [esp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0xa0], edi
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0xa4], 0x10049e20
mov dword [esp + 0xb8], eax
test ecx, ecx
je 0x1008e63c
mov edx, ecx
lea ecx, [esp + 0xa0]
call fcn.1003d7d0
cmp word [esp + 0xb4], di
je 0x1008e659
mov eax, 2
mov dword [esp + 0x14], eax
jmp 0x1008e759
cmp eax, 3
jge 0x1008e67f
movzx edx, word [esi + 0xa]
test edx, 0x1000
je 0x1008e67f
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1008e759
mov eax, 3
mov dword [esp + 0x14], eax
jmp 0x1008e759
test edx, 0x200
je 0x1008e6f8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x1008e6f8
mov ecx, dword [esp + 0x78]
mov edx, eax
and eax, 1
shr edx, 1
mov edi, dword [ecx + 0x74]
lea eax, [eax*2 + 0x12]
mov dword [esp + 0x90], eax
cmp dword [ecx + 0x78], edi
jg 0x1008e6c6
push 0
push 0
push edx
mov edx, eax
call fcn.10029250
add esp, 0xc
mov edi, eax
jmp 0x1008e6f8
lea eax, [edi + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 4], edx
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x90]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
push 0x10
push dword [esp + 0x9c]
push dword [esp + 0xa4]
push dword [esp + 0x18]
call fcn.10049090
add esp, 0x10
test edi, edi
je 0x1008e750
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
mov ecx, dword [edx + 0x74]
mov dword [esp + 0x90], ecx
cmp byte [eax + 0x53], 0
je 0x1008e735
mov eax, 0x1011f1ec
jmp 0x1008e74d
lea eax, [ecx - 1]
test edi, edi
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x90]
mov dword [eax + 8], ecx
or word [esi + 0xa], 4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
add esi, 0x30
dec edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
test edx, edx
jg 0x1008cc10
mov edi, dword [esp + 0x88]
mov edx, dword [edi + 0xc]
mov esi, dword [edi + 0x14]
mov dword [esp + 0x34], edx
mov dword [esp + 0x80], eax
test eax, eax
jg 0x1008cbf0
test edx, edx
jle 0x1008e942
add esi, 0xc
mov dword [esp + 0x28], esi
test byte [esi - 2], 6
jne 0x1008e92e
movzx eax, word [esi]
mov edi, 0xb
test al, 0x82
setne cl
bt ax, di
setb al
test al, cl
je 0x1008e92e
mov eax, dword [esp + 0x38]
cmp dword [esi + 8], eax
jne 0x1008e92e
mov eax, dword [esp + 0x8c]
test byte [eax + 0x24], 8
jne 0x1008e92e
mov eax, dword [esi - 0xc]
xor edi, edi
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xf4], edi
mov word [esp + 0xf8], 0x100
mov dword [esp + 0xf0], edi
mov dword [esp + 0xfc], 0x83
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], ecx
mov byte [esp + 0xfa], 1
cmp eax, 0xfffffffe
je 0x1008e898
lea ecx, [esp + 0xe8]
mov word [esp + 0x130], ax
call fcn.10091950
mov esi, eax
test esi, esi
je 0x1008e898
mov edx, dword [esi + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0x14]
and eax, dword [ebp + 0x18]
or ecx, eax
jne 0x1008e886
or edx, dword [esi + 0x24]
jne 0x1008e881
test byte [esi + 0xc], 0x82
jne 0x1008e89a
test edi, edi
cmove edi, esi
lea ecx, [esp + 0xe8]
call fcn.10091950
mov esi, eax
test esi, esi
jne 0x1008e864
mov esi, edi
test esi, esi
je 0x1008e926
test byte [esi + 0xa], 4
jne 0x1008e926
test byte [esi + 0xc], 1
je 0x1008e8c4
mov eax, dword [esi]
test dword [eax + 4], 0x800
je 0x1008e8c4
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x1008e926
mov eax, dword [esi]
push 0x10
push dword [esp + 0x9c]
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 + 0x98]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x18]
call fcn.10049090
add esp, 0x10
or word [esi + 0xa], 4
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
dec edx
add esi, 0x30
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], esi
test edx, edx
jg 0x1008e7a0
mov edx, dword [esp + 0x10]
mov esi, dword [edx]
test esi, esi
je 0x1008ea06
mov edi, dword [esp + 0x78]
mov eax, dword [edi + 0x74]
mov dword [edx + 0x1c], eax
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x1008e97c
push 0
push esi
push 1
mov edx, 0x46
mov ecx, edi
call fcn.10029250
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x1008e9ab
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
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 eax, dword [esp + 0x88]
xor edi, edi
mov esi, dword [eax + 0x14]
cmp dword [eax + 0xc], edi
jle 0x1008ea06
nop dword [eax]
test byte [esi + 0xa], 6
jne 0x1008e9f2
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x50]
and eax, dword [edx + 0x54]
or ecx, eax
jne 0x1008e9f2
push 0x10
push dword [esp + 0x9c]
push dword [esi]
push dword [esp + 0x18]
call fcn.10049090
add esp, 0x10
or word [esi + 0xa], 4
mov edx, dword [esp + 0x88]
inc edi
add esi, 0x30
cmp edi, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
jl 0x1008e9c0
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x54]
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.10105304
mov esp, ebp
pop ebp
ret