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

Disassembly:
sub esp, 0x60
mov eax, dword [esp + 0x64]
push ebx
push ebp
push esi
mov ecx, dword [eax + 0x5c]
mov esi, dword [esp + 0x7c]
mov ebx, esi
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x80]
push edi
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x38], ebx
lea edi, [esi + ecx]
lea edx, [edi - 8]
mov dword [esp + 0x80], edi
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov edx, esi
sub edx, dword [esp + 0x24]
add edx, ecx
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x10], edx
mov edx, 1
shl edx, cl
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x10]
sub dword [esp + 0x10], edx
sub eax, ecx
cmp eax, edx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x10]
cmovbe eax, ecx
cmp dword [edx + 0x18], 0
cmovne eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
cmova ecx, eax
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 4]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x30], eax
cmp ecx, dword [esp + 0x10]
jne 0x465eb4
mov eax, dword [edx + 0xc8]
add eax, 0xfffffffc
cmp eax, 3
ja case.0x465e29.4
jmp dword [eax*4 + 0x4669b0]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edx
call fcn.004673c0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edx
call fcn.00467dd0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edx
call fcn.004687e0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edx
call fcn.00466a10
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
lea ecx, [edi - 8]
cmp esi, ecx
jae 0x466995
mov eax, 0x40
mov edi, 0x40
sub eax, dword [esp + 0x60]
mov ecx, 0x20
sub edi, dword [esp + 0x68]
sub ecx, dword [esp + 0x68]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x88]
add eax, 0xfffffffc
mov dword [esp + 0x84], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
cmp eax, 4
ja case.0x465efc.0
jmp dword [eax*4 + 0x4669c0]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.004df430
mov ecx, edi
call fcn.004df490
jmp 0x465f4c
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x465f0d
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x465f0d
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x465f0d
imul eax, dword [esi], 0x9e3779b1
shr eax, cl
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
push 0xcf1bbcdc
mov dword [esp + 0x40], eax
mov ecx, dword [edx + eax*4]
mov eax, ebp
cmp ecx, dword [esp + 0x78]
push 0xb7a56463
push dword [esi + 4]
cmovb eax, dword [esp + 0x34]
push dword [esi]
add eax, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
call fcn.004df430
mov ecx, dword [esp + 0x44]
call fcn.004df490
mov ecx, dword [esp + 0x48]
mov edi, ebp
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x74]
mov eax, esi
mov dword [esp + 0x68], edx
cmovb edi, dword [esp + 0x28]
sub eax, ebp
mov dword [esp + 0x34], eax
add edi, edx
sub eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x50], eax
mov eax, ebp
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x34]
cmovb eax, dword [esp + 0x28]
add eax, dword [esp + 0x50]
mov dword [ecx], ebp
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + eax*4], ebp
sub ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
inc ebp
cmp ebp, dword [esp + 0x18]
mov ebp, dword [esp + 0x78]
sbb ecx, ecx
sub eax, dword [esp + 0x50]
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
lea ecx, [esi + 1]
mov dword [esp + 0x3c], ecx
je 0x466139
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x466139
mov edx, dword [esp + 0x80]
mov ebx, edx
mov eax, dword [esp + 0x74]
mov ecx, edx
cmp dword [esp + 0x50], eax
mov edi, dword [esp + 0x60]
cmovb ebx, dword [esp + 0x40]
add esi, 5
add edi, 4
mov dword [esp + 0x68], esi
mov eax, esi
sub eax, edi
add eax, ebx
cmp eax, edx
cmovb ecx, eax
push ecx
push edi
push esi
call fcn.00462330
mov esi, eax
add esp, 0xc
lea eax, [esi + edi]
cmp eax, ebx
jne 0x466082
push dword [esp + 0x80]
mov eax, dword [esp + 0x6c]
push dword [esp + 0x20]
add eax, esi
push eax
call fcn.00462330
add esp, 0xc
add esi, eax
mov edx, dword [esp + 0x80]
lea edi, [esi + 4]
mov esi, dword [esp + 0x3c]
add edx, 0xffffffe0
mov ecx, dword [esp + 0x38]
mov ebx, esi
mov eax, dword [ebp + 0xc]
sub ebx, ecx
cmp esi, edx
ja 0x4660fa
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
cmp ebx, 0x10
jbe 0x466106
movups xmm0, xmmword [ecx + 0x10]
lea edx, [ecx + 0x10]
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
lea eax, [ebx - 0x10]
lea ebp, [ecx + eax]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x466106
mov eax, dword [esp + 0x68]
add ecx, 0x10
add edx, 0x10
nop word [eax + eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x4660e0
jmp 0x466106
push edx
push esi
push ecx
push eax
call fcn.0045ae30
add esp, 0x10
add dword [ebp + 0xc], ebx
cmp ebx, 0xffff
jbe 0x466124
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], bx
mov eax, dword [ebp + 4]
mov dword [eax], 1
jmp 0x46658a
cmp edx, dword [esp + 0x10]
mov edx, dword [esi]
jbe 0x4662bd
mov eax, dword [esi + 4]
cmp dword [edi], edx
jne 0x4662bd
cmp dword [edi + 4], eax
jne 0x4662bd
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
mov ebx, edx
cmovb ebx, dword [esp + 0x40]
mov ecx, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x54]
add edi, 8
mov dword [esp + 0x60], eax
lea eax, [esi + 8]
sub eax, edi
add eax, ebx
cmp eax, edx
cmovb ecx, eax
lea eax, [esi + 8]
push ecx
push edi
push eax
call fcn.00462330
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x5c], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x4661c7
push dword [esp + 0x80]
lea eax, [ecx + 8]
push dword [esp + 0x20]
add eax, esi
push eax
call fcn.00462330
mov ecx, dword [esp + 0x68]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x34]
lea edi, [ecx + 8]
sub eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x60], ebx
mov edx, dword [esp + 0x38]
sbb ecx, ecx
mov dword [esp + 0x68], eax
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x466212
mov ebp, dword [esp + 0x60]
mov al, byte [esi - 1]
dec ebx
cmp al, byte [ebx]
jne 0x46620e
dec esi
inc edi
cmp ebp, ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x4661f4
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov ebx, esi
mov ecx, dword [esp + 0x80]
sub ebx, edx
mov dword [esp + 0x30], eax
add ecx, 0xffffffe0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
cmp esi, ecx
ja 0x46628a
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
cmp ebx, 0x10
jbe 0x466296
mov ecx, dword [ebp + 0xc]
lea eax, [ebx - 0x10]
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea ebp, [ecx + eax]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x466296
mov eax, dword [esp + 0x6c]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x466270
jmp 0x466296
push ecx
push esi
push edx
push eax
call fcn.0045ae30
add esp, 0x10
add dword [ebp + 0xc], ebx
cmp ebx, 0xffff
jbe 0x4662b4
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov ecx, dword [esp + 0x68]
jmp 0x46657b
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x58], eax
jbe 0x466965
mov eax, dword [esp + 0x5c]
cmp dword [eax], edx
jne 0x466965
push 0xcf1bbcdc
push 0xb7a56463
push dword [ecx + 4]
push dword [ecx]
call fcn.004df430
mov ecx, dword [esp + 0x44]
call fcn.004df490
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x74]
mov edi, dword [esp + 0x24]
cmovb edi, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
add edi, edx
inc eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x50], edi
mov dword [ecx], eax
cmp edx, dword [esp + 0x10]
jbe 0x466412
mov ecx, dword [esp + 0x3c]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x466412
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 4]
jne 0x466412
mov edx, dword [esp + 0x80]
mov ebx, edx
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x74]
mov ecx, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x54]
cmovb ebx, dword [esp + 0x40]
add edi, 8
add esi, 9
mov dword [esp + 0x60], eax
mov eax, esi
mov dword [esp + 0x6c], esi
sub eax, edi
add eax, ebx
cmp eax, edx
cmovb ecx, eax
push ecx
push edi
push esi
call fcn.00462330
mov esi, eax
add esp, 0xc
lea eax, [esi + edi]
cmp eax, ebx
jne 0x4663aa
push dword [esp + 0x80]
mov eax, dword [esp + 0x70]
push dword [esp + 0x20]
add eax, esi
push eax
call fcn.00462330
add esp, 0xc
add esi, eax
mov eax, dword [esp + 0x34]
lea edi, [esi + 8]
sub eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x50]
inc eax
cmp dword [esp + 0x60], ebx
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
sbb ecx, ecx
neg ecx
mov dword [esp + 0x3c], eax
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x4664cf
nop dword [eax]
lea eax, [esi - 1]
mov dword [esp + 0x6c], eax
lea ecx, [ebx - 1]
mov al, byte [eax]
mov ebx, ecx
cmp al, byte [ecx]
jne 0x4664cf
mov esi, dword [esp + 0x6c]
inc edi
cmp dword [esp + 0x60], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x4663e0
jmp 0x4664cf
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
mov ebx, edx
cmovb ebx, dword [esp + 0x40]
mov ecx, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x68], eax
add edi, 4
lea eax, [esi + 4]
sub eax, edi
add eax, ebx
cmp eax, edx
cmovb ecx, eax
lea eax, [esi + 4]
push ecx
push edi
push eax
call fcn.00462330
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x6c], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x466484
push dword [esp + 0x80]
lea eax, [ecx + 4]
push dword [esp + 0x20]
add eax, esi
push eax
call fcn.00462330
mov ecx, dword [esp + 0x78]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x34]
lea edi, [ecx + 4]
sub eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x68], ebx
mov edx, dword [esp + 0x38]
sbb ecx, ecx
mov dword [esp + 0x3c], eax
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x4664cf
mov ebp, dword [esp + 0x68]
mov al, byte [esi - 1]
dec ebx
cmp al, byte [ebx]
jne 0x4664cb
dec esi
inc edi
cmp ebp, ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x4664b1
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov ebx, esi
mov ecx, dword [esp + 0x3c]
sub ebx, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
add eax, 0xffffffe0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
cmp esi, dword [esp + 0x68]
ja 0x46654a
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
cmp ebx, 0x10
jbe 0x46655d
mov ecx, dword [ebp + 0xc]
lea eax, [ebx - 0x10]
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea ebp, [ecx + eax]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x466559
mov eax, dword [esp + 0x6c]
add ecx, 0x10
add edx, 0x20
nop
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x466530
jmp 0x466559
push dword [esp + 0x68]
push esi
push edx
push eax
call fcn.0045ae30
add esp, 0x10
mov ecx, dword [esp + 0x3c]
add dword [ebp + 0xc], ebx
cmp ebx, 0xffff
jbe 0x46657b
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add ecx, 3
mov word [eax + 4], bx
mov eax, dword [ebp + 4]
mov dword [eax], ecx
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x4665a8
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add esi, edi
mov ebx, esi
mov dword [esp + 0x38], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
mov eax, dword [esp + 0x4c]
cmp esi, eax
ja 0x466975
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
add edi, 2
push 0xcf1bbcdc
push 0xb7a56463
push dword [edi + eax + 4]
push dword [edi + eax]
call fcn.004df430
mov ecx, dword [esp + 0x44]
call fcn.004df490
mov ecx, dword [esp + 0x48]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 2]
push dword [esi - 2]
call fcn.004df430
mov ecx, dword [esp + 0x44]
call fcn.004df490
mov edx, dword [esp + 0x24]
mov ecx, eax
mov ebp, dword [esp + 0x48]
mov eax, esi
sub eax, edx
mov dword [esp + 0x6c], eax
add eax, 0xfffffffe
mov dword [ebp + ecx*4], eax
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x78]
cmp eax, 4
ja case.0x466640.0
jmp dword [eax*4 + 0x4669d4]
push 0xcf1bbcdc
push 0xbb000000
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
jmp switch.0x00466736
push 0xcf1bbcdc
push 0xbf9b0000
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
jmp switch.0x00466736
push 0xcf1bbcdc
push 0xbfa56300
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
jmp switch.0x00466736
push 0xcf1bbcdc
push 0xb7a56463
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
jmp switch.0x00466736
imul eax, dword [edi + edx], 0x9e3779b1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
shr eax, cl
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x20]
cmp eax, 4
ja case.0x466736.0
jmp dword [eax*4 + 0x4669e8]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 3]
push dword [esi - 1]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
mov edx, eax
jmp 0x46678f
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x466747
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x466747
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x466747
imul edx, dword [esi - 1], 0x9e3779b1
shr edx, cl
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
dec eax
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x80]
add eax, 0xffffffe0
mov dword [esp + 0x68], eax
nop dword [eax]
mov edi, dword [esp + 0x28]
mov ecx, esi
sub ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
mov edx, ecx
sub edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x74]
mov dword [esp + 0x60], ecx
cmovae edi, dword [esp + 0x24]
sub ecx, dword [esp + 0x10]
add edi, edx
cmp ecx, dword [esp + 0x30]
sbb ecx, ecx
sub eax, edx
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
je 0x46696f
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x46696f
cmp edx, dword [esp + 0x74]
lea edx, [esi + 4]
mov ecx, dword [esp + 0x80]
mov eax, edx
mov ebx, ecx
cmovb ebx, dword [esp + 0x40]
add edi, 4
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.00462330
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x6c], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x466853
push dword [esp + 0x80]
lea eax, [ecx + 4]
push dword [esp + 0x20]
add eax, esi
push eax
call fcn.00462330
mov ecx, dword [esp + 0x78]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x30]
lea ebx, [ecx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
cmp esi, ecx
ja 0x466879
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
jmp 0x466885
push ecx
push esi
push esi
push eax
call fcn.0045ae30
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [ebx - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x4668b5
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
mov eax, dword [esp + 0x20]
cmp eax, 4
ja case.0x4668c9.0
jmp dword [eax*4 + 0x4669fc]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.004df430
mov ecx, dword [esp + 0x84]
call fcn.004df490
jmp 0x466922
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x4668da
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x4668da
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x4668da
imul eax, dword [esi], 0x9e3779b1
mov ecx, dword [esp + 0x2c]
shr eax, cl
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x60]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 4]
push dword [esi]
call fcn.004df430
mov ecx, dword [esp + 0x44]
call fcn.004df490
mov ecx, dword [esp + 0x48]
add esi, ebx
mov ebx, esi
mov dword [esp + 0x38], ebx
mov dword [ecx + eax*4], edi
cmp esi, dword [esp + 0x4c]
jbe 0x4667b0
jmp 0x46698a
mov eax, esi
sub eax, ebx
sar eax, 8
inc eax
add esi, eax
mov eax, dword [esp + 0x4c]
cmp esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x84]
jb 0x465ef7
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
sub edi, ebx
mov ecx, dword [esp + 0x18]
mov dword [edx + 4], eax
mov eax, edi
pop edi
pop esi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0x60
ret