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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x50e74c]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, edx
mov dword [esp + 0x58], 0
mov edx, ecx
mov dword [esp + 0x10], eax
shl eax, 6
push ebx
push esi
lea esi, [edx + 0x2d8]
mov dword [esp + 0x4c], edx
add esi, eax
lea ecx, [edx + 0x140]
push edi
mov edi, dword [edx]
mov dword [esp + 0x58], ecx
mov eax, dword [esi + 0x34]
mov dword [esp + 0x4c], eax
movzx eax, byte [esi + 0x20]
mov ecx, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x5c], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0x34], edi
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], esi
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
xor eax, eax
test edx, edx
jle 0x4664f8
mov ecx, dword [esp + 0x50]
add ecx, 0x40
lea esp, [esp]
mov edi, dword [esp + 0x40]
cmp dword [ecx], edi
mov edi, dword [esp + 0x34]
je 0x466741
inc eax
add ecx, 4
cmp eax, edx
jl 0x4664e0
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
not ecx
not edx
and ecx, dword [ebp + 8]
and edx, dword [ebp + 0xc]
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x3c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.004e0d10
mov ecx, dword [esp + 0x4c]
and eax, 1
mov dword [esp + 0x24], eax
test byte [ecx + 0x24], 0x40
je 0x466552
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], 1
test byte [eax + 0x22], 0x20
je 0x46655d
mov dword [esp + 0x80], 0
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4665b2
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00407290
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x4665ab
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00406fc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x4665c0
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x466624
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00407290
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x46661d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00406fc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x466632
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
cmp byte [esi + 0x20], 0
mov dword [esp + 0x7c], eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
jbe 0x4666ae
test byte [eax + 0x20], 8
je 0x4666ae
mov eax, dword [edi + 0x4c]
inc eax
mov dword [edi + 0x4c], eax
mov dword [esi], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x466676
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x4666aa
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
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 + 0x30]
test byte [eax + 0x24], 4
je 0x4667fc
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x4666ec
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x466720
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 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 [ebx + 0x1c]
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x466762
mov ecx, ebx
call fcn.00423c70
test eax, eax
je 0x46675b
mov edx, 1
jmp 0x46679a
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 0x466509
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x28], edx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x4667be
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x4667f3
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
inc eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov byte [esi + 0x21], 0xe
jmp 0x46787a
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 0x24]
test edx, 0x400
je 0x466ac5
movzx edx, word [ecx + 0x28]
mov ebx, dword [edi + 0x3c]
inc dword [edi + 0x60]
mov dword [esp + 0x18], edx
lea eax, [edx + 2]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x40]
cmp dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
jg 0x466849
add eax, 2
add eax, edx
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x3c]
sub eax, dword [esp + 0x14]
mov dword [edi + 0x3c], eax
jmp 0x46685f
mov eax, dword [edi + 0x4c]
lea ebx, [eax + 1]
mov dword [esp + 0x10], ebx
lea ebx, [edx + 2]
add eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x4668bf
xor ebx, ebx
lea esp, [esp]
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x4668b4
mov eax, dword [esp + 0x10]
mov ecx, edi
add eax, 2
add eax, ebx
test byte [edx + 0x12], 1
push eax
je 0x4668a3
push dword [esp + 0x28]
push ebx
push esi
call fcn.00465af0
mov eax, dword [esi + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x4668b0
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00437f80
add esp, 4
mov ecx, dword [esp + 0x4c]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x466870
mov ebx, dword [esp + 0x54]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x4668e7
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x46691b
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 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 [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x46693c
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x466971
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x4c]
mov edx, 0xfffffff5
mov ecx, 0xfffffffe
cmp byte [eax + 0x1c], 0
mov eax, dword [eax + 0x20]
cmovne ecx, edx
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x4669b9
mov ecx, ebx
call fcn.00423c70
test eax, eax
je 0x4669b2
mov edx, 1
jmp 0x4669f1
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x48]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x28]
mov ecx, ebx
push dword [esp + 0x30]
call fcn.00424350
mov ecx, dword [esp + 0x54]
add esp, 8
cmp dword [esp + 0x18], 0
mov byte [ecx + 0x1c], 0
jle 0x466a45
xor edi, edi
mov ebx, ecx
cmp edi, 0x10
jge 0x466a3d
mov ax, word [ebx + 0x1e]
mov cx, di
shr ax, cl
test al, 1
je 0x466a36
mov edx, dword [ebx + 0x2c]
mov ecx, esi
mov edx, dword [edx + edi*4]
call fcn.004659f0
inc edi
cmp edi, dword [esp + 0x18]
jl 0x466a16
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x24], eax
dec ecx
mov byte [esi + 0x21], 0x8b
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
mov esi, 0xa
mov eax, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x80], ecx
lea ecx, [edi + 0x78]
mov edx, dword [ecx]
cmp edx, eax
jl 0x466aa4
cmp edx, dword [esp + 0x80]
jg 0x466aa4
cmp byte [ecx - 8], 0
je 0x466a9e
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x466a96
movzx eax, al
mov dword [edi + eax*4 + 0x1c], edx
inc byte [edi + 0x13]
mov eax, dword [esp + 0x10]
mov byte [ecx - 8], 0
mov dword [ecx], 0
add ecx, 0x18
dec esi
jne 0x466a70
mov ecx, dword [esp + 0x14]
cmp ecx, dword [edi + 0x3c]
jle 0x466ab9
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x40], eax
mov ecx, edi
call fcn.00436a80
jmp 0x46787a
mov eax, edx
and eax, 0x100
je 0x466b68
test dl, 5
je 0x466b68
mov al, byte [edi + 0x13]
test al, al
jne 0x466aea
inc dword [edi + 0x4c]
mov edx, dword [edi + 0x4c]
jmp 0x466af6
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x1c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov dword [esp + 0x6c], edx
mov ecx, edi
mov edx, dword [eax]
push 0
push esi
call fcn.00465af0
mov esi, dword [esi + 0x10]
mov edi, eax
push esi
push edi
mov edx, 0x21
mov ecx, ebx
call fcn.00423e10
push edi
push esi
mov esi, dword [esp + 0x60]
mov edx, 0x3f
push esi
mov ecx, ebx
call fcn.00423cf0
mov ecx, dword [esp + 0x58]
add esp, 0x24
mov edx, edi
push 1
call fcn.00436a30
add esp, 4
mov edx, esi
push edi
mov edi, dword [esp + 0x38]
mov ecx, edi
push 0xffffffffffffffff
call fcn.004368f0
mov eax, dword [esp + 0x50]
add esp, 8
mov byte [eax + 0x21], 0x95
jmp 0x46787a
test eax, eax
je 0x466d6a
test dl, 2
je 0x466d6a
mov dword [esp + 0x20], 0x95
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
test dl, 0x20
je 0x466bb7
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x1c], 1
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test dl, 0x10
je 0x466bcc
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
jmp 0x466bce
xor ecx, ecx
cmp dword [esp + 0x24], 0
je 0x466be3
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
jmp 0x466be7
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x466c59
mov esi, dword [ecx]
lea eax, [esp + 0x80]
push eax
mov ecx, edi
mov dword [esp + 0x18], 0x3937383a
mov edx, dword [esi + 0x10]
call fcn.00437ee0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
push edi
push eax
movzx eax, byte [esi]
push dword [esp + 0x48]
movzx edx, byte [esp + eax - 0x2d]
call fcn.00423cf0
add esp, 0xc
mov edx, edi
mov edi, dword [esp + 0x34]
mov ecx, edi
push 1
call fcn.00436a30
mov edx, dword [esp + 0x84]
add esp, 4
mov ecx, edi
call fcn.00439200
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x3c]
call fcn.004659f0
jmp 0x466c7e
mov eax, dword [esp + 0x18]
mov edx, 0x65
cmp dword [esp + 0x24], 0
mov ecx, ebx
push eax
push dword [esp + 0x44]
mov eax, 0x62
cmovne edx, eax
call fcn.00423e10
add esp, 8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x466ce3
mov esi, dword [eax]
mov ecx, edi
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
call fcn.00437f80
mov al, byte [esi]
add esp, 4
cmp al, 0x4f
je 0x466cbe
cmp al, 0x4d
je 0x466cbe
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x4d]
jmp 0x466cd0
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x4e]
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
call fcn.004659f0
cmp dword [esp + 0x24], 0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
sete al
add al, 6
mov dword [esi + 0x24], edx
mov byte [esi + 0x21], al
mov dword [esi + 0x28], ecx
mov esi, dword [esp + 0x20]
cmp esi, 0x95
je 0x46787a
mov ecx, edi
call fcn.004391e0
push eax
push edx
mov edx, 0x60
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.00423e10
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.004368f0
push dword [esp + 0x74]
mov edx, esi
mov ecx, ebx
push dword [esp + 0x2c]
push dword [esp + 0x50]
call fcn.00423cf0
mov ecx, dword [ebx + 4]
add esp, 0x1c
test ecx, ecx
je 0x46787a
mov eax, dword [ebx + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x6b
jmp 0x46787a
test edx, 0x200
je 0x46729e
mov edi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x44], edi
mov edi, dword [esi + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
test byte [edi + 0x22], 1
mov edi, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0
je 0x466de9
mov edi, dword [esp + 0x50]
cmp byte [edi + 0x24], 0
mov edi, dword [esp + 0x34]
je 0x466de9
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x2e]
cmp eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jle 0x466de9
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], 1
mov dword [esp + 0x38], eax
test dl, 0x20
je 0x466e12
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x38], eax
mov eax, 1
jmp 0x466e16
mov eax, dword [esp + 0x1c]
test dl, 0x10
je 0x466e2e
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov eax, 1
lea ecx, [esp + 0x60]
mov edx, esi
push ecx
push eax
push dword [esp + 0x2c]
mov ecx, edi
call fcn.00465d70
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
call fcn.00407330
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
movzx edx, word [ecx + 0x2e]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
cmp eax, edx
jge 0x466ea5
mov ecx, dword [ecx + 0x1c]
xor edx, edx
cmp byte [eax + ecx], dl
mov ecx, dword [esp + 0x24]
sete dl
cmp ecx, edx
je 0x466e93
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x466eab
cmp edx, eax
jne 0x466eab
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], edx
jmp 0x466eb3
mov ecx, dword [esp + 0x24]
jmp 0x466e8b
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x466ec5
test byte [edx + 0x12], 0x28
mov dword [esp + 0x1c], 0
je 0x466ecd
mov dword [esp + 0x1c], 1
test ecx, ecx
je 0x466edf
test byte [ecx + 0x12], 0x28
mov dword [esp + 0x28], 0
je 0x466ee7
mov dword [esp + 0x28], 1
test edx, edx
jne 0x466f36
test eax, eax
jg 0x466f36
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x2c], 0
je 0x466ff5
add eax, dword [esp + 0x34]
mov edx, 0x18
push eax
push 0
mov ecx, ebx
call fcn.00423e10
mov eax, dword [esp + 0x18]
add esp, 8
inc eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 1
jmp 0x466ff9
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], eax
test edx, edx
je 0x466ef7
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov edx, ecx
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov ecx, edi
push eax
mov dword [esp + 0x30], eax
call fcn.00437f80
mov eax, dword [esp + 0x18]
add esp, 4
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x9d
je 0x466f7c
cmp cl, 0x9c
jne 0x466f81
mov eax, dword [eax + 0xc]
jmp 0x466f70
mov cl, byte [eax]
cmp cl, 0x84
jne 0x466f8b
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x466fac
cmp cl, 0x80
jbe 0x466f9a
cmp cl, 0x83
jbe 0x466fac
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00435780
add esp, 4
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x466fea
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov dl, byte [eax]
call fcn.00433f00
cmp al, 0x62
mov eax, dword [esp + 0x44]
jne 0x466fd4
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.004357d0
test eax, eax
je 0x466fea
mov eax, dword [esp + 0x44]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x14], eax
jmp 0x466ff9
mov eax, dword [esp + 0x14]
push dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
call fcn.00465a40
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
push dword [esp + 0x40]
push dword [esp + 0x30]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x2c]
movzx edx, byte [ecx + eax*2 + 0x4f7c00]
mov ecx, ebx
call fcn.00423f80
mov eax, dword [esp + 0x48]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x46711d
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, edi
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.00436a30
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, edi
push dword [esp + 0x2c]
call fcn.00437f80
mov eax, dword [esp + 0x18]
add esp, 4
mov cl, byte [eax]
cmp cl, 0x9d
je 0x467092
cmp cl, 0x9c
jne 0x467097
mov eax, dword [eax + 0xc]
jmp 0x467086
mov cl, byte [eax]
cmp cl, 0x84
jne 0x4670a1
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x4670c2
cmp cl, 0x80
jbe 0x4670b0
cmp cl, 0x83
jbe 0x4670c2
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00435780
add esp, 4
cmp dword [esp + 0x68], 0
je 0x467101
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dl, byte [eax]
call fcn.00433f00
cmp al, 0x62
mov eax, dword [esp + 0x1c]
jne 0x4670eb
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.004357d0
test eax, eax
je 0x467101
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x68]
mov edx, dword [esp + 0x38]
inc eax
push eax
mov dword [esp + 0x34], eax
call fcn.00465a40
add esp, 8
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
call fcn.00406fc0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
call fcn.00406fc0
cmp dword [esp + 0x30], 0
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
jne 0x46714f
cmp dword [esp + 0x10], 0
jne 0x46714f
xor ecx, ecx
jmp 0x467154
mov ecx, 1
mov eax, dword [esp + 0x24]
inc eax
imul eax, ecx
movzx edx, byte [eax + 0x4f64f4]
cmp edx, 0x95
je 0x4671a1
push dword [esp + 0x2c]
mov ecx, ebx
push dword [esp + 0x38]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.00423f80
mov edx, dword [ebx + 4]
add esp, 0x10
test edx, edx
je 0x4671a1
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
mov eax, dword [ebx + 0x1c]
setne cl
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], cl
mov al, byte [edi + 0x13]
test al, al
jne 0x4671b0
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
jmp 0x4671bc
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x1c]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
test byte [ecx + 0x24], 0x30
je 0x4671f9
push eax
push dword [esp + 0x14]
mov edx, 0x29
mov ecx, ebx
push dword [esp + 0x20]
call fcn.00423cf0
add esp, 0xc
mov edx, 0x49
mov ecx, ebx
push dword [esp + 0x7c]
push dword [esp + 0x20]
call fcn.00423e10
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.00439200
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.004659f0
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.004659f0
cmp dword [esp + 0x80], 0
jne 0x467268
mov ecx, edi
call fcn.004391e0
push eax
push dword [esp + 0x1c]
mov edx, 0x69
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.00423e10
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.004368f0
push dword [esp + 0x74]
mov edx, 0x3b
mov ecx, ebx
push dword [esp + 0x54]
call fcn.00423e10
add esp, 0x18
mov ecx, dword [esp + 0x4c]
test dword [ecx + 0x24], 0x1000
je 0x46727b
mov byte [esi + 0x21], 0x95
jmp 0x467288
cmp dword [esp + 0x24], 0
sete al
add al, 6
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x18]
mov dword [esi + 0x24], eax
test byte [ecx + 0x24], 0xf
jne 0x46787a
jmp 0x467876
test edx, 0x2000
je 0x467848
mov eax, dword [edi + 0x48]
mov ecx, ebx
inc dword [edi + 0x4c]
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], 0
call fcn.00423ff0
mov ecx, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x24], edx
mov ecx, dword [ecx + 0x2c]
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x50]
mov byte [esi + 0x21], 0x10
mov cl, byte [eax + 0x28]
cmp cl, 1
jbe 0x467416
movzx ecx, cl
sub ecx, dword [esp + 0x1c]
dec ecx
mov dword [esp + 0x80], ecx
lea ecx, [ecx + ecx*8]
lea edx, [ecx*8 + 0x50]
mov ecx, dword [esp + 0x5c]
call fcn.00407210
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x467363
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004c4eaf
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x80]
mov al, dl
inc al
mov byte [ecx + 1], al
mov byte [ecx], al
mov eax, dword [esp + 0x30]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx + 8], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ecx + 0x18], xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [ecx + 0x28], xmm0
movdqu xmm0, xmmword [eax + 0x30]
movdqu xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [esp + 0x50]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x28], eax
cmp edx, 1
jl 0x46741d
mov ebx, dword [esp + 0x28]
lea eax, [esi + 0x60]
add ecx, 0x50
mov esi, eax
movzx eax, byte [esi]
lea esi, [esi + 0x40]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movdqu xmm0, xmmword [ebx + eax*8]
movdqu xmmword [ecx - 0x48], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x10]
movdqu xmmword [ecx - 0x38], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x20]
movdqu xmmword [ecx - 0x28], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x30]
movdqu xmmword [ecx - 0x18], xmm0
movq xmm0, qword [ebx + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
dec edx
jne 0x4673c7
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
jmp 0x46741d
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x22], 8
jne 0x46744b
mov eax, dword [edi + 0x4c]
mov edx, 0x18
inc eax
push eax
push 0
mov dword [esp + 0x1c], eax
lea ecx, [eax + 1]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x4c], ecx
mov ecx, ebx
call fcn.00423e10
add esp, 8
push dword [esp + 0x38]
mov edx, 0x15
mov ecx, ebx
push 0
call fcn.00423e10
mov ecx, dword [esp + 0x60]
add esp, 8
mov dword [esp + 0x70], eax
mov ecx, dword [ecx + 0xc]
cmp ecx, 1
jle 0x4675be
xor edx, edx
mov dword [esp + 0x80], edx
test ecx, ecx
jle 0x4675be
mov edi, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x28], ecx
xor esi, esi
mov eax, dword [edi + 0x14]
add eax, ecx
mov ebx, dword [eax]
mov dword [esp + 0x20], ebx
cmp eax, dword [esp + 0x4c]
je 0x4674e6
test byte [ebx + 4], 1
jne 0x4674e6
test byte [eax + 0x14], 0x10
jne 0x4674e6
mov ebx, 0xfff
test word [eax + 0x12], bx
je 0x4674e6
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
push 0
push 0
call fcn.00434a60
mov ecx, dword [esp + 0x64]
mov edx, esi
push eax
call fcn.00434550
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x80]
mov esi, eax
inc edx
add ecx, 0x30
mov dword [esp + 0x80], edx
mov dword [esp + 0x28], ecx
cmp edx, dword [edi + 0xc]
jl 0x467491
mov ebx, dword [esp + 0x54]
mov ecx, esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x48]
test ecx, ecx
je 0x4675c0
mov ecx, dword [edi]
mov edx, 0x30
call fcn.00407210
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x46754c
push 0x30
push 0
push ecx
call fcn.004cb700
mov ecx, dword [esp + 0x2c]
add esp, 0xc
or eax, 0xffffffff
mov byte [ecx], 0x45
mov word [ecx + 0x22], ax
mov dword [ecx + 0x18], 1
mov eax, dword [edi]
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x46757e
xor edx, edx
mov ecx, eax
call fcn.00434930
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
call fcn.00434930
mov eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4675c0
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x100
or dword [ecx + 4], eax
call fcn.004341e0
mov eax, dword [edi]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], ecx
jle 0x4675b6
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00409410
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4675c0
xor ecx, ecx
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edx + 0xc], eax
jle 0x467772
mov dword [esp + 0x80], 0x200
mov dword [esp + 0x6c], 1
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x40]
cmp dword [eax + 8], edx
je 0x467609
mov edx, dword [esp + 0x80]
test word [eax + 0x12], dx
je 0x467754
mov eax, dword [eax]
test ecx, ecx
je 0x46761a
test byte [eax + 4], 1
jne 0x46761a
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0xf0
push 0
push 0
push eax
call fcn.0046a5d0
add esp, 0x14
mov dword [esp + 0x34], eax
test eax, eax
je 0x467754
movzx ecx, byte [esi + 0x20]
mov edx, dword [esp + 0x18]
push 0
push ecx
push dword [esp + 0x24]
lea ecx, [eax + 0x2d8]
push ecx
mov ecx, edi
call fcn.00466220
mov eax, dword [esp + 0x60]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x4676bb
mov eax, dword [esp + 0x68]
mov ecx, edi
mov esi, dword [esp + 0x20]
push 0
push dword [esp + 0x30]
mov eax, dword [eax + 0xc]
push dword [esp + 0x48]
dec eax
cmp esi, eax
mov eax, 0xffffffff
push eax
cmove esi, eax
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x10]
call fcn.00436c10
push esi
push eax
mov eax, dword [ebx + 0x1c]
mov edx, 0x78
add eax, 2
mov ecx, ebx
push eax
push dword [esp + 0x30]
call fcn.00423f80
mov esi, dword [esp + 0x68]
add esp, 0x20
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x4676d6
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x46770a
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 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 [esp + 0x34]
mov eax, dword [esp + 0x44]
cmp byte [ecx + 0x26], 0
cmovne eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x30c]
test dword [eax + 0x24], 0x200
je 0x467747
cmp dword [esp + 0x20], 0
je 0x46773e
mov edx, dword [esp + 0x60]
cmp dword [eax + 0x1c], edx
jne 0x467747
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
jmp 0x46774f
mov dword [esp + 0x60], 0
call fcn.0046aec0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
jl 0x4675e6
mov eax, dword [esp + 0x60]
mov dword [esi + 0x2c], eax
test eax, eax
je 0x467784
mov eax, dword [esp + 0x3c]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x46779c
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0xc], 0
call fcn.00434930
mov edx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x70]
cmp edx, eax
jbe 0x4677b1
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x70], eax
cmp dword [ebx + 0x20], eax
jg 0x4677d3
mov ecx, ebx
call fcn.00423c70
test eax, eax
jne 0x467807
mov eax, dword [esp + 0x70]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
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
or edx, 0xffffffff
sub edx, dword [esp + 0x10]
js 0x46781d
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x46781d
mov eax, dword [ebx + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x28], 1
jbe 0x467834
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
call fcn.00406fc0
cmp dword [esp + 0x44], 0
jne 0x46787a
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.004659f0
jmp 0x46787a
mov ecx, dword [esp + 0x24]
push dword [esp + 0x18]
mov al, byte [ecx + 0x4f49c4]
movzx edx, byte [ecx + 0x4f4638]
mov ecx, ebx
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x44]
push eax
mov dword [esi + 0x24], eax
call fcn.00423e10
add esp, 8
inc eax
mov dword [esi + 0x28], eax
mov byte [esi + 0x22], 1
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x14]
mov dword [esp + 0x80], edx
test edx, edx
jle 0x4678f7
mov ebx, dword [esp + 0x48]
test byte [esi + 0x14], 6
jne 0x4678e0
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x38]
and eax, dword [ebx + 0x3c]
or ecx, eax
je 0x4678b3
mov eax, dword [esp + 0x50]
mov byte [eax + 0x26], 1
jmp 0x4678e0
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x4678c0
test byte [eax + 4], 1
je 0x4678e0
push 8
push dword [esp + 0x80]
mov edx, eax
mov ecx, edi
call fcn.00438790
mov edx, dword [esp + 0x88]
add esp, 8
or byte [esi + 0x14], 4
dec edx
add esi, 0x30
mov dword [esp + 0x80], edx
test edx, edx
jg 0x467893
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x4679f2
mov ebx, dword [esp + 0x48]
mov ecx, 0x402
test byte [esi + 0x14], 6
jne 0x4679de
cmp word [esi + 0x12], cx
jne 0x4679de
mov ecx, dword [esp + 0x40]
cmp dword [esi + 8], ecx
jne 0x4679d9
cmp dword [ebx], 0
jne 0x4679d9
mov eax, dword [esi]
mov edx, ecx
mov ecx, dword [esp + 0x58]
push 0
push 3
push dword [ebp + 0xc]
mov dword [esp + 0x78], eax
push dword [ebp + 8]
push dword [esi + 0xc]
call fcn.00463720
add esp, 0x14
mov dword [esp + 0x70], eax
test eax, eax
je 0x4679d5
test byte [eax + 0x14], 4
jne 0x4679d5
mov ecx, dword [esp + 0x5c]
mov edx, 0x30
call fcn.00407210
mov edx, eax
mov dword [esp + 0x80], edx
test edx, edx
je 0x4679d5
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push 8
push dword [esp + 0x80]
mov ecx, dword [ecx]
movdqu xmm0, xmmword [ecx]
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movdqu xmmword [edx + 0x10], xmm0
movdqu xmm0, xmmword [ecx + 0x20]
mov ecx, edi
movdqu xmmword [edx + 0x20], xmm0
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
call fcn.00438790
mov edx, dword [esp + 0x88]
add esp, 8
mov ecx, dword [esp + 0x5c]
call fcn.00406fc0
mov eax, dword [esp + 0x18]
mov ecx, 0x402
dec eax
add esi, 0x30
mov dword [esp + 0x18], eax
test eax, eax
jg 0x467912
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x467b1a
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x18], eax
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x70], ecx
cmp eax, ecx
jg 0x467a7e
test eax, eax
je 0x467a20
add eax, eax
jmp 0x467a25
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ebx]
shl eax, 2
push eax
call fcn.00407290
mov esi, eax
add esp, 4
test esi, esi
je 0x467ab2
mov eax, dword [ebx]
test eax, eax
je 0x467a5e
cmp esi, dword [eax + 0x10c]
jb 0x467a5e
cmp esi, dword [eax + 0x110]
jae 0x467a5e
movzx ecx, word [eax + 0xf0]
jmp 0x467a6a
push esi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [ebx + 4], esi
mul ecx
mov ecx, dword [esp + 0x70]
shr edx, 4
mov dword [ebx + 0x20], edx
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
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, edi
call fcn.00436cb0
mov edx, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [edx + 0x14]
cmp dword [edx + 0xc], ebx
jle 0x467b16
mov eax, edx
lea esp, [esp]
test byte [esi + 0x14], 6
mov edx, dword [esp + 0x48]
jne 0x467b0b
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x38]
and eax, dword [edx + 0x3c]
or ecx, eax
jne 0x467b07
mov edx, dword [esi]
mov ecx, edi
push 8
push dword [esp + 0x80]
call fcn.00438790
mov edx, dword [esp + 0x50]
add esp, 8
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x58]
inc ebx
add esi, 0x30
cmp ebx, dword [eax + 0xc]
jl 0x467ad0
jmp 0x467b1a
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x64]
test esi, esi
je 0x467b4e
mov bl, byte [edi + 0x13]
cmp bl, 8
jae 0x467b4e
xor ecx, ecx
lea eax, [edi + 0x68]
nop
cmp dword [eax + 0x10], esi
je 0x467b4a
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x467b30
movzx eax, bl
mov dword [edi + eax*4 + 0x1c], esi
inc byte [edi + 0x13]
jmp 0x467b4e
mov byte [eax + 8], 1
mov ecx, dword [esp + 0x84]
mov eax, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c4eaf
mov esp, ebp
pop ebp
ret